/* DO NOT EDIT
	This file was automatically generated by Pidl
	from drsuapi.idl and drsuapi.cnf.

	Pidl is a perl based IDL compiler for DCE/RPC idl files.
	It is maintained by the Samba team, not the Wireshark team.
	Instructions on how to download and install Pidl can be
	found at https://gitlab.com/wireshark/wireshark/-/wikis/Pidl
*/


#include "config.h"
#include <glib.h>
#include <string.h>
#include <epan/packet.h>

#include "packet-dcerpc.h"
#include "packet-dcerpc-nt.h"
#include "packet-windows-common.h"
#include "packet-dcerpc-drsuapi.h"
void proto_register_dcerpc_drsuapi(void);
void proto_reg_handoff_dcerpc_drsuapi(void);

/* Ett declarations */
static gint ett_dcerpc_drsuapi = -1;
static gint ett_drsuapi_security_GroupAttrs = -1;
static gint ett_drsuapi_drsuapi_DrsOptions = -1;
static gint ett_drsuapi_drsuapi_DrsMoreOptions = -1;
static gint ett_drsuapi_drsuapi_DrsUpdate = -1;
static gint ett_drsuapi_drsuapi_SupportedExtensions = -1;
static gint ett_drsuapi_drsuapi_SupportedExtensionsExt = -1;
static gint ett_drsuapi_drsuapi_DsBindInfo24 = -1;
static gint ett_drsuapi_drsuapi_DsBindInfo28 = -1;
static gint ett_drsuapi_drsuapi_DsBindInfo32 = -1;
static gint ett_drsuapi_drsuapi_DsBindInfo48 = -1;
static gint ett_drsuapi_drsuapi_DsBindInfo52 = -1;
static gint ett_drsuapi_drsuapi_DsBindInfoFallBack = -1;
static gint ett_drsuapi_drsuapi_DsBindInfo = -1;
static gint ett_drsuapi_drsuapi_DsBindInfoCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier = -1;
static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaHighWaterMark = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursor = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursorCtrEx = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest5 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaOID = -1;
static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping = -1;
static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr = -1;
static gint ett_drsuapi_drsuapi_DsPartialAttributeSet = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest8 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest10 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursor2 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx = -1;
static gint ett_drsuapi_drsuapi_DsAttributeValue = -1;
static gint ett_drsuapi_drsuapi_DsAttributeValueCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAttribute = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAttributeCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectFlags = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObject = -1;
static gint ett_drsuapi_drsuapi_DsReplicaMetaData = -1;
static gint ett_drsuapi_drsuapi_DsReplicaMetaDataCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectListItemEx = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1 = -1;
static gint ett_drsuapi_drsuapi_DsLinkedAttributeFlags = -1;
static gint ett_drsuapi_drsuapi_DsReplicaLinkedAttribute = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr2 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr7 = -1;
static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAddRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAddRequest2 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAddRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaDelRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaDelRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaModRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaModRequest = -1;
static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr1 = -1;
static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr = -1;
static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest = -1;
static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags = -1;
static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest = -1;
static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1 = -1;
static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo = -1;
static gint ett_drsuapi_drsuapi_DsNameString = -1;
static gint ett_drsuapi_drsuapi_DsNameRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsNameRequest = -1;
static gint ett_drsuapi_drsuapi_DsNameInfo1 = -1;
static gint ett_drsuapi_drsuapi_DsNameCtr1 = -1;
static gint ett_drsuapi_drsuapi_DsNameCtr = -1;
static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest = -1;
static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult1 = -1;
static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult = -1;
static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest = -1;
static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult1 = -1;
static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfo1 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr1 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfo2 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr2 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfo3 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr3 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCConnection01 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCConnectionCtr01 = -1;
static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectListItem = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryRequest2 = -1;
static gint ett_drsuapi_drsuapi_SecBuffer = -1;
static gint ett_drsuapi_drsuapi_SecBufferDesc = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryRequest3 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryRequest = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfoX = -1;
static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1 = -1;
static gint ett_drsuapi_drsuapi_NameResOp_V1 = -1;
static gint ett_drsuapi_drsuapi_DsaAddressListItem_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo = -1;
static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryCtr2 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryCtr3 = -1;
static gint ett_drsuapi_drsuapi_DsAddEntryCtr = -1;
static gint ett_drsuapi_drsuapi_DsExecuteKCCFlags = -1;
static gint ett_drsuapi_drsuapi_DsExecuteKCC1 = -1;
static gint ett_drsuapi_drsuapi_DsExecuteKCCRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest = -1;
static gint ett_drsuapi_drsuapi_DsReplicaNeighbour = -1;
static gint ett_drsuapi_drsuapi_DsReplicaNeighbourCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursorCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailure = -1;
static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaOp = -1;
static gint ett_drsuapi_drsuapi_DsReplicaOpCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursor2Ctr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursor3 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaCursor3Ctr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaConnection04 = -1;
static gint ett_drsuapi_drsuapi_DsReplicaConnection04Ctr = -1;
static gint ett_drsuapi_drsuapi_DsReplica06 = -1;
static gint ett_drsuapi_drsuapi_DsReplica06Ctr = -1;
static gint ett_drsuapi_drsuapi_DsReplicaInfo = -1;
static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr1 = -1;
static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr = -1;
static gint ett_drsuapi_drsuapi_DsGetMemberships2Request1 = -1;
static gint ett_drsuapi_drsuapi_DsGetMemberships2Request = -1;
static gint ett_drsuapi_drsuapi_DsSiteCostInfo = -1;
static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr1 = -1;
static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr = -1;
static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest1 = -1;
static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest = -1;
static gint ett_drsuapi_drsuapi_ReadNgcKeyReqV1 = -1;
static gint ett_drsuapi_drsuapi_ReadNgcKeyReq = -1;
static gint ett_drsuapi_drsuapi_ReadNgcKeyReplyV1 = -1;
static gint ett_drsuapi_drsuapi_ReadNgcKeyReply = -1;


/* Header field declarations */
static gint hf_drsuapi_drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION = -1;
static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP = -1;
static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS = -1;
static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS = -1;
static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_count = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_id = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_objects = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_problem = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_count = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_id = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_objects = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2 = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3 = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req2 = -1;
static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req3 = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1 = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_ctr = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_level = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_level_out = -1;
static gint hf_drsuapi_drsuapi_DsAddEntry_req = -1;
static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values = -1;
static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_values = -1;
static gint hf_drsuapi_drsuapi_DsAttributeValue___ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsAttributeValue_blob = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo24_pid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo24_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo28_pid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo28_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo32_pid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo32_repl_epoch = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo32_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions_ext = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo48_pid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo48_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_config_dn_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_pid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_repl_epoch = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_capabilities_ext = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions_ext = -1;
static gint hf_drsuapi_drsuapi_DsBindInfoCtr_info = -1;
static gint hf_drsuapi_drsuapi_DsBindInfoCtr_length = -1;
static gint hf_drsuapi_drsuapi_DsBindInfoFallBack_info = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo_Fallback = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo_info24 = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo_info28 = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo_info32 = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo_info48 = -1;
static gint hf_drsuapi_drsuapi_DsBindInfo_info52 = -1;
static gint hf_drsuapi_drsuapi_DsBind_bind_guid = -1;
static gint hf_drsuapi_drsuapi_DsBind_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsBind_bind_info = -1;
static gint hf_drsuapi_drsuapi_DsCrackNames_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsCrackNames_ctr = -1;
static gint hf_drsuapi_drsuapi_DsCrackNames_level = -1;
static gint hf_drsuapi_drsuapi_DsCrackNames_level_out = -1;
static gint hf_drsuapi_drsuapi_DsCrackNames_req = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCC1_flags = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCC1_taskID = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCC_level = -1;
static gint hf_drsuapi_drsuapi_DsExecuteKCC_req = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_account = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array = -1;
static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo1_site_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3 = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level = -1;
static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level = -1;
static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out = -1;
static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2Request_req1 = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2_level = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2_level_out = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships2_req = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type = -1;
static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships_level = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships_level_out = -1;
static gint hf_drsuapi_drsuapi_DsGetMemberships_req = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_ = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_ = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8 = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_ = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_ = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChanges_ctr = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChanges_level = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChanges_level_out = -1;
static gint hf_drsuapi_drsuapi_DsGetNCChanges_req = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out = -1;
static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req = -1;
static gint hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE = -1;
static gint hf_drsuapi_drsuapi_DsNameCtr1_array = -1;
static gint hf_drsuapi_drsuapi_DsNameCtr1_count = -1;
static gint hf_drsuapi_drsuapi_DsNameCtr_ctr1 = -1;
static gint hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name = -1;
static gint hf_drsuapi_drsuapi_DsNameInfo1_result_name = -1;
static gint hf_drsuapi_drsuapi_DsNameInfo1_status = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_codepage = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_count = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_format_desired = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_format_flags = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_format_offered = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_language = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest1_names = -1;
static gint hf_drsuapi_drsuapi_DsNameRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsNameString_str = -1;
static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_attids = -1;
static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids = -1;
static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1 = -1;
static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_version = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1 = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level_out = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServer_req = -1;
static gint hf_drsuapi_drsuapi_DsRemoveDSServer_res = -1;
static gint hf_drsuapi_drsuapi_DsReplica06Ctr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplica06Ctr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplica06Ctr_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_str1 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u1 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u2 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u3 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u4 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u5 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u6 = -1;
static gint hf_drsuapi_drsuapi_DsReplica06_u7 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAdd_level = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAdd_req = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttribute_attid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u3 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u5 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDelRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDel_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDel_level = -1;
static gint hf_drsuapi_drsuapi_DsReplicaDel_req = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_level = -1;
static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_req = -1;
static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_clientctx = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors3 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_neighbours = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_pendingops = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_repsto = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls = -1;
static gint hf_drsuapi_drsuapi_DsReplicaInfo_udv1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags = -1;
static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier = -1;
static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data = -1;
static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMetaData_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaModRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMod_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMod_level = -1;
static gint hf_drsuapi_drsuapi_DsReplicaMod_req = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOID_binary_oid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOID_length = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_object = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObject_flags = -1;
static gint hf_drsuapi_drsuapi_DsReplicaObject_identifier = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_array = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_count = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_time = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_start = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_type = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_priority = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaOp_serial_num = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSync_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSync_req = -1;
static gint hf_drsuapi_drsuapi_DsReplicaSync_version = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level = -1;
static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req = -1;
static gint hf_drsuapi_drsuapi_DsSiteCostInfo_error_code = -1;
static gint hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost = -1;
static gint hf_drsuapi_drsuapi_DsUnbind_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1 = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1 = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_req = -1;
static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_res = -1;
static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_address = -1;
static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_next = -1;
static gint hf_drsuapi_drsuapi_NameResOp_V1_name_res = -1;
static gint hf_drsuapi_drsuapi_NameResOp_V1_next_rdn = -1;
static gint hf_drsuapi_drsuapi_NameResOp_V1_unused_pad = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1 = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1 = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCost_ctr = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCost_level = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCost_level_out = -1;
static gint hf_drsuapi_drsuapi_QuerySitesByCost_req = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_cNgcKey = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_pNgcKey = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_retVal = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKeyReply_V1 = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKeyReqV1_pwszAccount = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKeyReq_V1 = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKey_hDrs = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKey_inVersion = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKey_ngcReply = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKey_ngcReq = -1;
static gint hf_drsuapi_drsuapi_ReadNgcKey_pOutVersion = -1;
static gint hf_drsuapi_drsuapi_SecBufferDesc_buff_count = -1;
static gint hf_drsuapi_drsuapi_SecBufferDesc_buffers = -1;
static gint hf_drsuapi_drsuapi_SecBufferDesc_version = -1;
static gint hf_drsuapi_drsuapi_SecBuffer_buf_size = -1;
static gint hf_drsuapi_drsuapi_SecBuffer_buf_type = -1;
static gint hf_drsuapi_drsuapi_SecBuffer_buffer = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = -1;
static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = -1;
static gint hf_drsuapi_opnum = -1;
static gint hf_drsuapi_werror = -1;

static gint proto_dcerpc_drsuapi = -1;
/* Version information */


static e_guid_t uuid_dcerpc_drsuapi = {
	0xe3514235, 0x4b06, 0x11d1,
	{ 0xab, 0x04, 0x00, 0xc0, 0x4f, 0xc2, 0xdc, 0xd2 }
};
static guint16 ver_dcerpc_drsuapi = 4;

static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP_tfs = {
   "DRSUAPI_DRS_ASYNC_OP is SET",
   "DRSUAPI_DRS_ASYNC_OP is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK_tfs = {
   "DRSUAPI_DRS_GETCHG_CHECK is SET",
   "DRSUAPI_DRS_GETCHG_CHECK is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION_tfs = {
   "DRSUAPI_DRS_UPDATE_NOTIFICATION is SET",
   "DRSUAPI_DRS_UPDATE_NOTIFICATION is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF_tfs = {
   "DRSUAPI_DRS_ADD_REF is SET",
   "DRSUAPI_DRS_ADD_REF is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL_tfs = {
   "DRSUAPI_DRS_SYNC_ALL is SET",
   "DRSUAPI_DRS_SYNC_ALL is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF_tfs = {
   "DRSUAPI_DRS_DEL_REF is SET",
   "DRSUAPI_DRS_DEL_REF is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP_tfs = {
   "DRSUAPI_DRS_WRIT_REP is SET",
   "DRSUAPI_DRS_WRIT_REP is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_tfs = {
   "DRSUAPI_DRS_INIT_SYNC is SET",
   "DRSUAPI_DRS_INIT_SYNC is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC_tfs = {
   "DRSUAPI_DRS_PER_SYNC is SET",
   "DRSUAPI_DRS_PER_SYNC is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP_tfs = {
   "DRSUAPI_DRS_MAIL_REP is SET",
   "DRSUAPI_DRS_MAIL_REP is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP_tfs = {
   "DRSUAPI_DRS_ASYNC_REP is SET",
   "DRSUAPI_DRS_ASYNC_REP is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR_tfs = {
   "DRSUAPI_DRS_IGNORE_ERROR is SET",
   "DRSUAPI_DRS_IGNORE_ERROR is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC_tfs = {
   "DRSUAPI_DRS_TWOWAY_SYNC is SET",
   "DRSUAPI_DRS_TWOWAY_SYNC is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY_tfs = {
   "DRSUAPI_DRS_CRITICAL_ONLY is SET",
   "DRSUAPI_DRS_CRITICAL_ONLY is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC_tfs = {
   "DRSUAPI_DRS_GET_ANC is SET",
   "DRSUAPI_DRS_GET_ANC is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE_tfs = {
   "DRSUAPI_DRS_GET_NC_SIZE is SET",
   "DRSUAPI_DRS_GET_NC_SIZE is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY_tfs = {
   "DRSUAPI_DRS_LOCAL_ONLY is SET",
   "DRSUAPI_DRS_LOCAL_ONLY is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP_tfs = {
   "DRSUAPI_DRS_NONGC_RO_REP is SET",
   "DRSUAPI_DRS_NONGC_RO_REP is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME_tfs = {
   "DRSUAPI_DRS_SYNC_BYNAME is SET",
   "DRSUAPI_DRS_SYNC_BYNAME is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK_tfs = {
   "DRSUAPI_DRS_REF_OK is SET",
   "DRSUAPI_DRS_REF_OK is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW_tfs = {
   "DRSUAPI_DRS_FULL_SYNC_NOW is SET",
   "DRSUAPI_DRS_FULL_SYNC_NOW is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE_tfs = {
   "DRSUAPI_DRS_NO_SOURCE is SET",
   "DRSUAPI_DRS_NO_SOURCE is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS_tfs = {
   "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS is SET",
   "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET_tfs = {
   "DRSUAPI_DRS_FULL_SYNC_PACKET is SET",
   "DRSUAPI_DRS_FULL_SYNC_PACKET is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE_tfs = {
   "DRSUAPI_DRS_SYNC_REQUEUE is SET",
   "DRSUAPI_DRS_SYNC_REQUEUE is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT_tfs = {
   "DRSUAPI_DRS_SYNC_URGENT is SET",
   "DRSUAPI_DRS_SYNC_URGENT is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN_tfs = {
   "DRSUAPI_DRS_REF_GCSPN is SET",
   "DRSUAPI_DRS_REF_GCSPN is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD_tfs = {
   "DRSUAPI_DRS_NO_DISCARD is SET",
   "DRSUAPI_DRS_NO_DISCARD is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED_tfs = {
   "DRSUAPI_DRS_NEVER_SYNCED is SET",
   "DRSUAPI_DRS_NEVER_SYNCED is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING_tfs = {
   "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING is SET",
   "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW_tfs = {
   "DRSUAPI_DRS_INIT_SYNC_NOW is SET",
   "DRSUAPI_DRS_INIT_SYNC_NOW is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED_tfs = {
   "DRSUAPI_DRS_PREEMPTED is SET",
   "DRSUAPI_DRS_PREEMPTED is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED_tfs = {
   "DRSUAPI_DRS_SYNC_FORCED is SET",
   "DRSUAPI_DRS_SYNC_FORCED is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC_tfs = {
   "DRSUAPI_DRS_DISABLE_AUTO_SYNC is SET",
   "DRSUAPI_DRS_DISABLE_AUTO_SYNC is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC_tfs = {
   "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC is SET",
   "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION_tfs = {
   "DRSUAPI_DRS_USE_COMPRESSION is SET",
   "DRSUAPI_DRS_USE_COMPRESSION is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY_tfs = {
   "DRSUAPI_DRS_NEVER_NOTIFY is SET",
   "DRSUAPI_DRS_NEVER_NOTIFY is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS_tfs = {
   "DRSUAPI_DRS_SYNC_PAS is SET",
   "DRSUAPI_DRS_SYNC_PAS is NOT SET",
};
static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP_tfs = {
   "DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP is SET",
   "DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP is NOT SET",
};
static const true_false_string drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT_tfs = {
   "DRSUAPI_DRS_GET_TGT is SET",
   "DRSUAPI_DRS_GET_TGT is NOT SET",
};
static const true_false_string drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS_tfs = {
   "DRSUAPI_DRS_UPDATE_FLAGS is SET",
   "DRSUAPI_DRS_UPDATE_FLAGS is NOT SET",
};
static const true_false_string drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS_tfs = {
   "DRSUAPI_DRS_UPDATE_ADDRESS is SET",
   "DRSUAPI_DRS_UPDATE_ADDRESS is NOT SET",
};
static const true_false_string drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE_tfs = {
   "DRSUAPI_DRS_UPDATE_SCHEDULE is SET",
   "DRSUAPI_DRS_UPDATE_SCHEDULE is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_BASE is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_BASE is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_ADAM is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_ADAM is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 is NOT SET",
};
static const true_false_string drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN_tfs = {
   "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN is SET",
   "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN is NOT SET",
};
static int drsuapi_dissect_element_DsBindInfo24_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo24_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo24_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo28_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo28_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo28_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo28_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo32_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo32_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo32_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo32_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo32_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo48_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo48_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo48_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo48_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo48_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo48_config_dn_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_config_dn_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo52_supported_capabilities_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfoFallBack_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo_info28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo_info32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo_info48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo_info52(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfo_Fallback(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBindInfoCtr_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint3264 *length);
static int drsuapi_dissect_element_DsBindInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint3264 *length);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSyncRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaHighWaterMark_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaHighWaterMark_reserved_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaHighWaterMark_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsExtendedOperation_vals[] = {
	{ DRSUAPI_EXOP_NONE, "DRSUAPI_EXOP_NONE" },
	{ DRSUAPI_EXOP_FSMO_REQ_ROLE, "DRSUAPI_EXOP_FSMO_REQ_ROLE" },
	{ DRSUAPI_EXOP_FSMO_RID_ALLOC, "DRSUAPI_EXOP_FSMO_RID_ALLOC" },
	{ DRSUAPI_EXOP_FSMO_RID_REQ_ROLE, "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE" },
	{ DRSUAPI_EXOP_FSMO_REQ_PDC, "DRSUAPI_EXOP_FSMO_REQ_PDC" },
	{ DRSUAPI_EXOP_FSMO_ABANDON_ROLE, "DRSUAPI_EXOP_FSMO_ABANDON_ROLE" },
	{ DRSUAPI_EXOP_REPL_OBJ, "DRSUAPI_EXOP_REPL_OBJ" },
	{ DRSUAPI_EXOP_REPL_SECRET, "DRSUAPI_EXOP_REPL_SECRET" },
{ 0, NULL }
};
const value_string drsuapi_drsuapi_DsExtendedError_vals[] = {
	{ DRSUAPI_EXOP_ERR_NONE, "DRSUAPI_EXOP_ERR_NONE" },
	{ DRSUAPI_EXOP_ERR_SUCCESS, "DRSUAPI_EXOP_ERR_SUCCESS" },
	{ DRSUAPI_EXOP_ERR_UNKNOWN_OP, "DRSUAPI_EXOP_ERR_UNKNOWN_OP" },
	{ DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER, "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER" },
	{ DRSUAPI_EXOP_ERR_UPDATE_ERR, "DRSUAPI_EXOP_ERR_UPDATE_ERR" },
	{ DRSUAPI_EXOP_ERR_EXCEPTION, "DRSUAPI_EXOP_ERR_EXCEPTION" },
	{ DRSUAPI_EXOP_ERR_UNKNOWN_CALLER, "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER" },
	{ DRSUAPI_EXOP_ERR_RID_ALLOC, "DRSUAPI_EXOP_ERR_RID_ALLOC" },
	{ DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED, "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED" },
	{ DRSUAPI_EXOP_ERR_FMSO_PENDING_OP, "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP" },
	{ DRSUAPI_EXOP_ERR_MISMATCH, "DRSUAPI_EXOP_ERR_MISMATCH" },
	{ DRSUAPI_EXOP_ERR_COULDNT_CONTACT, "DRSUAPI_EXOP_ERR_COULDNT_CONTACT" },
	{ DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES, "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES" },
	{ DRSUAPI_EXOP_ERR_DIR_ERROR, "DRSUAPI_EXOP_ERR_DIR_ERROR" },
	{ DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS, "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS" },
	{ DRSUAPI_EXOP_ERR_ACCESS_DENIED, "DRSUAPI_EXOP_ERR_ACCESS_DENIED" },
	{ DRSUAPI_EXOP_ERR_PARAM_ERROR, "DRSUAPI_EXOP_ERR_PARAM_ERROR" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsGetNCChangesRequest5_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOID_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOID_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOID_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsObjectClassId_vals[] = {
	{ DRSUAPI_OBJECTCLASS_top, "DRSUAPI_OBJECTCLASS_top" },
	{ DRSUAPI_OBJECTCLASS_classSchema, "DRSUAPI_OBJECTCLASS_classSchema" },
	{ DRSUAPI_OBJECTCLASS_attributeSchema, "DRSUAPI_OBJECTCLASS_attributeSchema" },
{ 0, NULL }
};
const value_string drsuapi_drsuapi_DsAttributeId_vals[] = {
	{ DRSUAPI_ATTID_objectClass, "DRSUAPI_ATTID_objectClass" },
	{ DRSUAPI_ATTID_cn, "DRSUAPI_ATTID_cn" },
	{ DRSUAPI_ATTID_ou, "DRSUAPI_ATTID_ou" },
	{ DRSUAPI_ATTID_description, "DRSUAPI_ATTID_description" },
	{ DRSUAPI_ATTID_member, "DRSUAPI_ATTID_member" },
	{ DRSUAPI_ATTID_distinguishedName, "DRSUAPI_ATTID_distinguishedName" },
	{ DRSUAPI_ATTID_instanceType, "DRSUAPI_ATTID_instanceType" },
	{ DRSUAPI_ATTID_whenCreated, "DRSUAPI_ATTID_whenCreated" },
	{ DRSUAPI_ATTID_possSuperiors, "DRSUAPI_ATTID_possSuperiors" },
	{ DRSUAPI_ATTID_displayName, "DRSUAPI_ATTID_displayName" },
	{ DRSUAPI_ATTID_hasMasterNCs, "DRSUAPI_ATTID_hasMasterNCs" },
	{ DRSUAPI_ATTID_nCName, "DRSUAPI_ATTID_nCName" },
	{ DRSUAPI_ATTID_subClassOf, "DRSUAPI_ATTID_subClassOf" },
	{ DRSUAPI_ATTID_governsID, "DRSUAPI_ATTID_governsID" },
	{ DRSUAPI_ATTID_mustContain, "DRSUAPI_ATTID_mustContain" },
	{ DRSUAPI_ATTID_mayContain, "DRSUAPI_ATTID_mayContain" },
	{ DRSUAPI_ATTID_rDNAttId, "DRSUAPI_ATTID_rDNAttId" },
	{ DRSUAPI_ATTID_attributeID, "DRSUAPI_ATTID_attributeID" },
	{ DRSUAPI_ATTID_attributeSyntax, "DRSUAPI_ATTID_attributeSyntax" },
	{ DRSUAPI_ATTID_isSingleValued, "DRSUAPI_ATTID_isSingleValued" },
	{ DRSUAPI_ATTID_rangeLower, "DRSUAPI_ATTID_rangeLower" },
	{ DRSUAPI_ATTID_rangeUpper, "DRSUAPI_ATTID_rangeUpper" },
	{ DRSUAPI_ATTID_dMDLocation, "DRSUAPI_ATTID_dMDLocation" },
	{ DRSUAPI_ATTID_isDeleted, "DRSUAPI_ATTID_isDeleted" },
	{ DRSUAPI_ATTID_objectVersion, "DRSUAPI_ATTID_objectVersion" },
	{ DRSUAPI_ATTID_invocationId, "DRSUAPI_ATTID_invocationId" },
	{ DRSUAPI_ATTID_showInAdvancedViewOnly, "DRSUAPI_ATTID_showInAdvancedViewOnly" },
	{ DRSUAPI_ATTID_adminDisplayName, "DRSUAPI_ATTID_adminDisplayName" },
	{ DRSUAPI_ATTID_adminDescription, "DRSUAPI_ATTID_adminDescription" },
	{ DRSUAPI_ATTID_oMSyntax, "DRSUAPI_ATTID_oMSyntax" },
	{ DRSUAPI_ATTID_ntSecurityDescriptor, "DRSUAPI_ATTID_ntSecurityDescriptor" },
	{ DRSUAPI_ATTID_searchFlags, "DRSUAPI_ATTID_searchFlags" },
	{ DRSUAPI_ATTID_auxiliaryClass, "DRSUAPI_ATTID_auxiliaryClass" },
	{ DRSUAPI_ATTID_lDAPDisplayName, "DRSUAPI_ATTID_lDAPDisplayName" },
	{ DRSUAPI_ATTID_name, "DRSUAPI_ATTID_name" },
	{ DRSUAPI_ATTID_objectGUID, "DRSUAPI_ATTID_objectGUID" },
	{ DRSUAPI_ATTID_replPropertyMetaData, "DRSUAPI_ATTID_replPropertyMetaData" },
	{ DRSUAPI_ATTID_userAccountControl, "DRSUAPI_ATTID_userAccountControl" },
	{ DRSUAPI_ATTID_badPwdCount, "DRSUAPI_ATTID_badPwdCount" },
	{ DRSUAPI_ATTID_codePage, "DRSUAPI_ATTID_codePage" },
	{ DRSUAPI_ATTID_countryCode, "DRSUAPI_ATTID_countryCode" },
	{ DRSUAPI_ATTID_currentValue, "DRSUAPI_ATTID_currentValue" },
	{ DRSUAPI_ATTID_homeDirectory, "DRSUAPI_ATTID_homeDirectory" },
	{ DRSUAPI_ATTID_homeDrive, "DRSUAPI_ATTID_homeDrive" },
	{ DRSUAPI_ATTID_lastLogoff, "DRSUAPI_ATTID_lastLogoff" },
	{ DRSUAPI_ATTID_lastLogon, "DRSUAPI_ATTID_lastLogon" },
	{ DRSUAPI_ATTID_dBCSPwd, "DRSUAPI_ATTID_dBCSPwd" },
	{ DRSUAPI_ATTID_scriptPath, "DRSUAPI_ATTID_scriptPath" },
	{ DRSUAPI_ATTID_logonHours, "DRSUAPI_ATTID_logonHours" },
	{ DRSUAPI_ATTID_userWorkstations, "DRSUAPI_ATTID_userWorkstations" },
	{ DRSUAPI_ATTID_unicodePwd, "DRSUAPI_ATTID_unicodePwd" },
	{ DRSUAPI_ATTID_ntPwdHistory, "DRSUAPI_ATTID_ntPwdHistory" },
	{ DRSUAPI_ATTID_pwdLastSet, "DRSUAPI_ATTID_pwdLastSet" },
	{ DRSUAPI_ATTID_primaryGroupID, "DRSUAPI_ATTID_primaryGroupID" },
	{ DRSUAPI_ATTID_priorValue, "DRSUAPI_ATTID_priorValue" },
	{ DRSUAPI_ATTID_supplementalCredentials, "DRSUAPI_ATTID_supplementalCredentials" },
	{ DRSUAPI_ATTID_trustAuthIncoming, "DRSUAPI_ATTID_trustAuthIncoming" },
	{ DRSUAPI_ATTID_trustDirection, "DRSUAPI_ATTID_trustDirection" },
	{ DRSUAPI_ATTID_trustPartner, "DRSUAPI_ATTID_trustPartner" },
	{ DRSUAPI_ATTID_trustPosixOffset, "DRSUAPI_ATTID_trustPosixOffset" },
	{ DRSUAPI_ATTID_trustAuthOutgoing, "DRSUAPI_ATTID_trustAuthOutgoing" },
	{ DRSUAPI_ATTID_trustType, "DRSUAPI_ATTID_trustType" },
	{ DRSUAPI_ATTID_userParameters, "DRSUAPI_ATTID_userParameters" },
	{ DRSUAPI_ATTID_profilePath, "DRSUAPI_ATTID_profilePath" },
	{ DRSUAPI_ATTID_operatorCount, "DRSUAPI_ATTID_operatorCount" },
	{ DRSUAPI_ATTID_objectSid, "DRSUAPI_ATTID_objectSid" },
	{ DRSUAPI_ATTID_schemaIDGUID, "DRSUAPI_ATTID_schemaIDGUID" },
	{ DRSUAPI_ATTID_adminCount, "DRSUAPI_ATTID_adminCount" },
	{ DRSUAPI_ATTID_comment, "DRSUAPI_ATTID_comment" },
	{ DRSUAPI_ATTID_accountExpires, "DRSUAPI_ATTID_accountExpires" },
	{ DRSUAPI_ATTID_lmPwdHistory, "DRSUAPI_ATTID_lmPwdHistory" },
	{ DRSUAPI_ATTID_logonCount, "DRSUAPI_ATTID_logonCount" },
	{ DRSUAPI_ATTID_systemPossSuperiors, "DRSUAPI_ATTID_systemPossSuperiors" },
	{ DRSUAPI_ATTID_systemMayContain, "DRSUAPI_ATTID_systemMayContain" },
	{ DRSUAPI_ATTID_systemMustContain, "DRSUAPI_ATTID_systemMustContain" },
	{ DRSUAPI_ATTID_systemAuxiliaryClass, "DRSUAPI_ATTID_systemAuxiliaryClass" },
	{ DRSUAPI_ATTID_sAMAccountName, "DRSUAPI_ATTID_sAMAccountName" },
	{ DRSUAPI_ATTID_sAMAccountType, "DRSUAPI_ATTID_sAMAccountType" },
	{ DRSUAPI_ATTID_options, "DRSUAPI_ATTID_options" },
	{ DRSUAPI_ATTID_fSMORoleOwner, "DRSUAPI_ATTID_fSMORoleOwner" },
	{ DRSUAPI_ATTID_systemFlags, "DRSUAPI_ATTID_systemFlags" },
	{ DRSUAPI_ATTID_trustAttributes, "DRSUAPI_ATTID_trustAttributes" },
	{ DRSUAPI_ATTID_trustParent, "DRSUAPI_ATTID_trustParent" },
	{ DRSUAPI_ATTID_flatName, "DRSUAPI_ATTID_flatName" },
	{ DRSUAPI_ATTID_serverReference, "DRSUAPI_ATTID_serverReference" },
	{ DRSUAPI_ATTID_serverReferenceBL, "DRSUAPI_ATTID_serverReferenceBL" },
	{ DRSUAPI_ATTID_nonSecurityMember, "DRSUAPI_ATTID_nonSecurityMember" },
	{ DRSUAPI_ATTID_initialAuthIncoming, "DRSUAPI_ATTID_initialAuthIncoming" },
	{ DRSUAPI_ATTID_initialAuthOutgoing, "DRSUAPI_ATTID_initialAuthOutgoing" },
	{ DRSUAPI_ATTID_wellKnownObjects, "DRSUAPI_ATTID_wellKnownObjects" },
	{ DRSUAPI_ATTID_dNSHostName, "DRSUAPI_ATTID_dNSHostName" },
	{ DRSUAPI_ATTID_isMemberOfPartialAttributeSet, "DRSUAPI_ATTID_isMemberOfPartialAttributeSet" },
	{ DRSUAPI_ATTID_managedBy, "DRSUAPI_ATTID_managedBy" },
	{ DRSUAPI_ATTID_userPrincipalName, "DRSUAPI_ATTID_userPrincipalName" },
	{ DRSUAPI_ATTID_groupType, "DRSUAPI_ATTID_groupType" },
	{ DRSUAPI_ATTID_servicePrincipalName, "DRSUAPI_ATTID_servicePrincipalName" },
	{ DRSUAPI_ATTID_lastKnownParent, "DRSUAPI_ATTID_lastKnownParent" },
	{ DRSUAPI_ATTID_objectCategory, "DRSUAPI_ATTID_objectCategory" },
	{ DRSUAPI_ATTID_gPLink, "DRSUAPI_ATTID_gPLink" },
	{ DRSUAPI_ATTID_transportAddressAttribute, "DRSUAPI_ATTID_transportAddressAttribute" },
	{ DRSUAPI_ATTID_schemaInfo, "DRSUAPI_ATTID_schemaInfo" },
	{ DRSUAPI_ATTID_msDS_Behavior_Version, "DRSUAPI_ATTID_msDS_Behavior_Version" },
	{ DRSUAPI_ATTID_msDS_TrustForestTrustInfo, "DRSUAPI_ATTID_msDS_TrustForestTrustInfo" },
	{ DRSUAPI_ATTID_msDS_KeyVersionNumber, "DRSUAPI_ATTID_msDS_KeyVersionNumber" },
	{ DRSUAPI_ATTID_msDS_NonMembers, "DRSUAPI_ATTID_msDS_NonMembers" },
	{ DRSUAPI_ATTID_msDS_MembersForAzRole, "DRSUAPI_ATTID_msDS_MembersForAzRole" },
	{ DRSUAPI_ATTID_msDS_HasDomainNCs, "DRSUAPI_ATTID_msDS_HasDomainNCs" },
	{ DRSUAPI_ATTID_msDS_hasMasterNCs, "DRSUAPI_ATTID_msDS_hasMasterNCs" },
	{ DRSUAPI_ATTID_msDS_NeverRevealGroup, "DRSUAPI_ATTID_msDS_NeverRevealGroup" },
	{ DRSUAPI_ATTID_msDS_RevealOnDemandGroup, "DRSUAPI_ATTID_msDS_RevealOnDemandGroup" },
	{ DRSUAPI_ATTID_msDS_SupportedEncryptionTypes, "DRSUAPI_ATTID_msDS_SupportedEncryptionTypes" },
	{ DRSUAPI_ATTID_msDS_HostServiceAccount, "DRSUAPI_ATTID_msDS_HostServiceAccount" },
	{ DRSUAPI_ATTID_isRecycled, "DRSUAPI_ATTID_isRecycled" },
	{ DRSUAPI_ATTID_INVALID, "DRSUAPI_ATTID_INVALID" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsPartialAttributeSet_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsPartialAttributeSet_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsPartialAttributeSet_num_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsPartialAttributeSet_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsPartialAttributeSet_attids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest8_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest10_more_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest_req5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest_req8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesRequest_req10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValue___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValue_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValueCtr_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValueCtr_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValueCtr_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAttributeValueCtr_values__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttribute_value_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttributeCtr_num_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttributeCtr_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttributeCtr_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttributeCtr_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static const true_false_string drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER_tfs = {
   "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER is SET",
   "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER is NOT SET",
};
static const true_false_string drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC_tfs = {
   "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC is SET",
   "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC is NOT SET",
};
static const true_false_string drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY_tfs = {
   "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY is SET",
   "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY is NOT SET",
};
static int drsuapi_dissect_element_DsReplicaObject_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObject_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObject_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObject_attribute_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_is_nc_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static const true_false_string drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE_tfs = {
   "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE is SET",
   "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE is NOT SET",
};
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_originating_add_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaLinkedAttribute_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_nc_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_nc_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6_drs_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsGetNCChangesCompressionType_vals[] = {
	{ DRSUAPI_COMPRESSION_TYPE_MSZIP, "DRSUAPI_COMPRESSION_TYPE_MSZIP" },
	{ DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2, "DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr2_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr7_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr7_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr7_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest2_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAddRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDelRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDelRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDelRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDelRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaModRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsMembershipType_vals[] = {
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS" },
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS" },
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS" },
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2" },
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS" },
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS, "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS" },
	{ DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsGetMembershipsCtr1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_num_memberships(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest1_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMembershipsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static const true_false_string drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG_tfs = {
   "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG is SET",
   "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG is NOT SET",
};
static const true_false_string drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS_tfs = {
   "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS is SET",
   "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS is NOT SET",
};
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsNameStatus_vals[] = {
	{ DRSUAPI_DS_NAME_STATUS_OK, "DRSUAPI_DS_NAME_STATUS_OK" },
	{ DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR, "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR" },
	{ DRSUAPI_DS_NAME_STATUS_NOT_FOUND, "DRSUAPI_DS_NAME_STATUS_NOT_FOUND" },
	{ DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE, "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE" },
	{ DRSUAPI_DS_NAME_STATUS_NO_MAPPING, "DRSUAPI_DS_NAME_STATUS_NO_MAPPING" },
	{ DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY, "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY" },
	{ DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING, "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING" },
	{ DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL, "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL" },
{ 0, NULL }
};
const value_string drsuapi_drsuapi_DsNameFlags_vals[] = {
	{ DRSUAPI_DS_NAME_FLAG_NO_FLAGS, "DRSUAPI_DS_NAME_FLAG_NO_FLAGS" },
	{ DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY, "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY" },
	{ DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC, "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC" },
	{ DRSUAPI_DS_NAME_FLAG_GCVERIFY, "DRSUAPI_DS_NAME_FLAG_GCVERIFY" },
	{ DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL, "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL" },
{ 0, NULL }
};
const value_string drsuapi_drsuapi_DsNameFormat_vals[] = {
	{ DRSUAPI_DS_NAME_FORMAT_UNKNOWN, "DRSUAPI_DS_NAME_FORMAT_UNKNOWN" },
	{ DRSUAPI_DS_NAME_FORMAT_FQDN_1779, "DRSUAPI_DS_NAME_FORMAT_FQDN_1779" },
	{ DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT, "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT" },
	{ DRSUAPI_DS_NAME_FORMAT_DISPLAY, "DRSUAPI_DS_NAME_FORMAT_DISPLAY" },
	{ DRSUAPI_DS_NAME_FORMAT_GUID, "DRSUAPI_DS_NAME_FORMAT_GUID" },
	{ DRSUAPI_DS_NAME_FORMAT_CANONICAL, "DRSUAPI_DS_NAME_FORMAT_CANONICAL" },
	{ DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL, "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL" },
	{ DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX, "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX" },
	{ DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL, "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL" },
	{ DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY, "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY" },
	{ DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN, "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN" },
	{ DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID, "DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID" },
	{ DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX, "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS, "DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS" },
	{ DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON, "DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE" },
	{ DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME, "DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME" },
	{ DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME, "DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_NCS, "DRSUAPI_DS_NAME_FORMAT_LIST_NCS" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS, "DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS" },
	{ DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID, "DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID" },
	{ DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN, "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_ROLES, "DRSUAPI_DS_NAME_FORMAT_LIST_ROLES" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER, "DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE" },
	{ DRSUAPI_DS_NAME_FORMAT_LIST_SITES, "DRSUAPI_DS_NAME_FORMAT_LIST_SITES" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsNameString_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameString_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_format_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_format_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_format_desired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest1_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameInfo1_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameInfo1_dns_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameInfo1_result_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameInfo1_result_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsNameCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsSpnOperation_vals[] = {
	{ DRSUAPI_DS_SPN_OPERATION_ADD, "DRSUAPI_DS_SPN_OPERATION_ADD" },
	{ DRSUAPI_DS_SPN_OPERATION_REPLACE, "DRSUAPI_DS_SPN_OPERATION_REPLACE" },
	{ DRSUAPI_DS_SPN_OPERATION_DELETE, "DRSUAPI_DS_SPN_OPERATION_DELETE" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnResult1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpnResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerRequest1_commit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerResult1_last_dc_in_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServerResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals[] = {
	{ DRSUAPI_DC_INFO_CTR_1, "DRSUAPI_DC_INFO_CTR_1" },
	{ DRSUAPI_DC_INFO_CTR_2, "DRSUAPI_DC_INFO_CTR_2" },
	{ DRSUAPI_DC_INFO_CTR_3, "DRSUAPI_DC_INFO_CTR_3" },
	{ DRSUAPI_DC_CONNECTION_CTR_01, "DRSUAPI_DC_CONNECTION_CTR_01" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoRequest1_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo1_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo2_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_is_rodc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfo3_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_connection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_client_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnection01_client_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnectionCtr01_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnectionCtr01_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnectionCtr01_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCConnectionCtr01_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItem_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItem_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectListItem_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsAddEntry_DirErr_vals[] = {
	{ DRSUAPI_DIRERR_OK, "DRSUAPI_DIRERR_OK" },
	{ DRSUAPI_DIRERR_ATTRIBUTE, "DRSUAPI_DIRERR_ATTRIBUTE" },
	{ DRSUAPI_DIRERR_NAME, "DRSUAPI_DIRERR_NAME" },
	{ DRSUAPI_DIRERR_REFERRAL, "DRSUAPI_DIRERR_REFERRAL" },
	{ DRSUAPI_DIRERR_SECURITY, "DRSUAPI_DIRERR_SECURITY" },
	{ DRSUAPI_DIRERR_SERVICE, "DRSUAPI_DIRERR_SERVICE" },
	{ DRSUAPI_DIRERR_UPDATE, "DRSUAPI_DIRERR_UPDATE" },
	{ DRSUAPI_DIRERR_SYSTEM, "DRSUAPI_DIRERR_SYSTEM" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsAddEntryRequest2_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_SecBufferType_vals[] = {
	{ DRSUAPI_SECBUFFER_EMPTY, "DRSUAPI_SECBUFFER_EMPTY" },
	{ DRSUAPI_SECBUFFER_DATA, "DRSUAPI_SECBUFFER_DATA" },
	{ DRSUAPI_SECBUFFER_TOKEN, "DRSUAPI_SECBUFFER_TOKEN" },
	{ DRSUAPI_SECBUFFER_PKG_PARAMS, "DRSUAPI_SECBUFFER_PKG_PARAMS" },
	{ DRSUAPI_SECBUFFER_MISSING, "DRSUAPI_SECBUFFER_MISSING" },
	{ DRSUAPI_SECBUFFER_EXTRA, "DRSUAPI_SECBUFFER_EXTRA" },
	{ DRSUAPI_SECBUFFER_STREAM_TRAILER, "DRSUAPI_SECBUFFER_STREAM_TRAILER" },
	{ DRSUAPI_SECBUFFER_STREAM_HEADER, "DRSUAPI_SECBUFFER_STREAM_HEADER" },
	{ DRSUAPI_SECBUFFER_READONLY, "DRSUAPI_SECBUFFER_READONLY" },
{ 0, NULL }
};
static int drsuapi_dissect_element_SecBuffer_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBuffer_buf_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBuffer_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBuffer_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBufferDesc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBufferDesc_buff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBufferDesc_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBufferDesc_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_SecBufferDesc_buffers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryRequest3_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryRequest3_client_creds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryRequest3_client_creds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryRequest_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfoX_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfoX_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_is_val_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attr_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_first(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_NameResOp_V1_name_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_NameResOp_V1_unused_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_NameResOp_V1_next_rdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsAddEntry_RefType_vals[] = {
	{ DRSUAPI_CH_REFTYPE_SUPERIOR, "DRSUAPI_CH_REFTYPE_SUPERIOR" },
	{ DRSUAPI_CH_REFTYPE_SUBORDINATE, "DRSUAPI_CH_REFTYPE_SUBORDINATE" },
	{ DRSUAPI_CH_REFTYPE_NSSR, "DRSUAPI_CH_REFTYPE_NSSR" },
	{ DRSUAPI_CH_REFTYPE_CROSS, "DRSUAPI_CH_REFTYPE_CROSS" },
{ 0, NULL }
};
const value_string drsuapi_drsuapi_DsAddEntry_ChoiceType_vals[] = {
	{ DRSUAPI_SE_CHOICE_BASE_ONLY, "DRSUAPI_SE_CHOICE_BASE_ONLY" },
	{ DRSUAPI_SE_CHOICE_IMMED_CHLDRN, "DRSUAPI_SE_CHOICE_IMMED_CHLDRN" },
	{ DRSUAPI_SE_CHOICE_WHOLE_SUBTREE, "DRSUAPI_SE_CHOICE_WHOLE_SUBTREE" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsaAddressListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsaAddressListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsaAddressListItem_V1_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsaAddressListItem_V1_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_op_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_ref_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_is_choice_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_choice(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_refer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_attr_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_name_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_referral_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_security_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_service_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_update_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryErrorInfo_system_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *dir_err);
static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *dir_err);
static int drsuapi_dissect_element_DsAddEntry_ErrData_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier2_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjectIdentifier2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr2_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr3_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr3_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr3_err_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *err_ver);
static int drsuapi_dissect_element_DsAddEntryCtr3_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *err_ver);
static int drsuapi_dissect_element_DsAddEntryCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr3_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr3_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr3_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntryCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static const true_false_string drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION_tfs = {
   "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION is SET",
   "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION is NOT SET",
};
static const true_false_string drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED_tfs = {
   "DRSUAPI_DS_EXECUTE_KCC_DAMPED is SET",
   "DRSUAPI_DS_EXECUTE_KCC_DAMPED is NOT SET",
};
static int drsuapi_dissect_element_DsExecuteKCC1_taskID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCC1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCCRequest_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsReplicaGetInfoLevel_vals[] = {
	{ DRSUAPI_DS_REPLICA_GET_INFO, "DRSUAPI_DS_REPLICA_GET_INFO" },
	{ DRSUAPI_DS_REPLICA_GET_INFO2, "DRSUAPI_DS_REPLICA_GET_INFO2" },
{ 0, NULL }
};
const value_string drsuapi_drsuapi_DsReplicaInfoType_vals[] = {
	{ DRSUAPI_DS_REPLICA_INFO_NEIGHBORS, "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS" },
	{ DRSUAPI_DS_REPLICA_INFO_CURSORS, "DRSUAPI_DS_REPLICA_INFO_CURSORS" },
	{ DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA, "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA" },
	{ DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES, "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES" },
	{ DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES, "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES" },
	{ DRSUAPI_DS_REPLICA_INFO_PENDING_OPS, "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS" },
	{ DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA, "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA" },
	{ DRSUAPI_DS_REPLICA_INFO_CURSORS2, "DRSUAPI_DS_REPLICA_INFO_CURSORS2" },
	{ DRSUAPI_DS_REPLICA_INFO_CURSORS3, "DRSUAPI_DS_REPLICA_INFO_CURSORS3" },
	{ DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2, "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2" },
	{ DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2, "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2" },
	{ DRSUAPI_DS_REPLICA_INFO_REPSTO, "DRSUAPI_DS_REPLICA_INFO_REPSTO" },
	{ DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS, "DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS" },
	{ DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1, "DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1" },
	{ DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS, "DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfoRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_naming_context_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbour_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbourCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbourCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbourCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaNeighbourCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursorCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailure_first_failure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailure_num_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailure_last_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
const value_string drsuapi_drsuapi_DsReplicaOpType_vals[] = {
	{ DRSUAPI_DS_REPLICA_OP_TYPE_SYNC, "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC" },
	{ DRSUAPI_DS_REPLICA_OP_TYPE_ADD, "DRSUAPI_DS_REPLICA_OP_TYPE_ADD" },
	{ DRSUAPI_DS_REPLICA_OP_TYPE_DELETE, "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE" },
	{ DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY, "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY" },
	{ DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS, "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS" },
{ 0, NULL }
};
static int drsuapi_dissect_element_DsReplicaOp_operation_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_serial_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_operation_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_nc_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_nc_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_nc_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOpCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOpCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOpCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaOpCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaCursor3Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_bind_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaConnection04Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_str1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_str1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06_u7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplica06Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_neighbours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_neighbours_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_objmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_objmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_connectfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_connectfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_linkfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_linkfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_pendingops(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_pendingops_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_cursors2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_cursors2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_cursors3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_cursors3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_objmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_objmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_repsto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_repsto_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_clientctx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_clientctx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_udv1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_udv1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Ctr1_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Ctr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Request1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2Request_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsSiteCostInfo_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsSiteCostInfo_site_cost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostCtr1_num_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostCtr1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostCtr1_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostCtr1_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostCtr1_flags_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_from_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCostRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReqV1_pwszAccount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReqV1_pwszAccount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReq_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReplyV1_retVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReplyV1_cNgcKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReplyV1_pNgcKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReplyV1_pNgcKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKeyReply_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBind_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBind_bind_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBind_bind_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBind_bind_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsBind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsUnbind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsUnbind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSync_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSync_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSync_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSync_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaSync_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNCChanges_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaUpdateRefs_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAdd_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAdd_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaAdd_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDel_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDel_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDel_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaDel_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMod_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMod_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMod_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaMod_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetNT4ChangeLog_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsCrackNames_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsWriteAccountSpn_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsRemoveDSServer_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetDomainControllerInfo_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsAddEntry_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCC_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCC_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCC_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCC_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsExecuteKCC_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_info_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsReplicaGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_DsGetMemberships2_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_QuerySitesByCost_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_hDrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_hDrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_inVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_ngcReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_ngcReq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_pOutVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_pOutVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_ngcReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int drsuapi_dissect_element_ReadNgcKey_ngcReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
static int
drsuapi_dissect_element_DsBindInfoCtr_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint3264 *length _U_)
{
	offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfoCtr_length, NULL);
	return offset;
}
static int
drsuapi_dissect_DsBindInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
static int
drsuapi_dissect_element_DsBindInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint3264 *length)
{
	if(di->conformant_run){
		return offset;
	}
	offset = drsuapi_dissect_DsBindInfo(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfoCtr_info, (guint32)*length);
	return offset;
}
static int
drsuapi_dissect_DsNameCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
static int
drsuapi_dissect_element_DsCrackNames_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	ALIGN_TO_5_BYTES;
	offset = drsuapi_dissect_DsNameCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsCrackNames_ctr, 0);
	return offset;
}
static int
drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntry_AttrErrListItem_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next,0);
	return offset;
}
static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object,0);
	return offset;
}
static int
drsuapi_dissect_element_DsReplicaObjectListItem_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectListItem(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object,0);
	return offset;
}
static int
drsuapi_dissect_element_DsaAddressListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsaAddressListItem_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list,0);
	return offset;
}
static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntry_RefErrListItem_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer,0);
	return offset;
}
static int
drsuapi_dissect_ReadNgcKeyReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;
	ALIGN_TO_5_BYTES;
	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_ReadNgcKeyReply, &item, "drsuapi_ReadNgcKeyReply");
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;
	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_ReadNgcKeyReply_V1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);
	return offset;
}


/* IDL: bitmap { */
/* IDL: } */

int
drsuapi_dissect_bitmap_security_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	guint32 flags;
	ALIGN_TO_4_BYTES;

	proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_DRS_ASYNC_OP =  0x00000001 , */
/* IDL: 	DRSUAPI_DRS_GETCHG_CHECK =  0x00000002 , */
/* IDL: 	DRSUAPI_DRS_UPDATE_NOTIFICATION =  0x00000002 , */
/* IDL: 	DRSUAPI_DRS_ADD_REF =  0x00000004 , */
/* IDL: 	DRSUAPI_DRS_SYNC_ALL =  0x00000008 , */
/* IDL: 	DRSUAPI_DRS_DEL_REF =  0x00000008 , */
/* IDL: 	DRSUAPI_DRS_WRIT_REP =  0x00000010 , */
/* IDL: 	DRSUAPI_DRS_INIT_SYNC =  0x00000020 , */
/* IDL: 	DRSUAPI_DRS_PER_SYNC =  0x00000040 , */
/* IDL: 	DRSUAPI_DRS_MAIL_REP =  0x00000080 , */
/* IDL: 	DRSUAPI_DRS_ASYNC_REP =  0x00000100 , */
/* IDL: 	DRSUAPI_DRS_IGNORE_ERROR =  0x00000100 , */
/* IDL: 	DRSUAPI_DRS_TWOWAY_SYNC =  0x00000200 , */
/* IDL: 	DRSUAPI_DRS_CRITICAL_ONLY =  0x00000400 , */
/* IDL: 	DRSUAPI_DRS_GET_ANC =  0x00000800 , */
/* IDL: 	DRSUAPI_DRS_GET_NC_SIZE =  0x00001000 , */
/* IDL: 	DRSUAPI_DRS_LOCAL_ONLY =  0x00001000 , */
/* IDL: 	DRSUAPI_DRS_NONGC_RO_REP =  0x00002000 , */
/* IDL: 	DRSUAPI_DRS_SYNC_BYNAME =  0x00004000 , */
/* IDL: 	DRSUAPI_DRS_REF_OK =  0x00004000 , */
/* IDL: 	DRSUAPI_DRS_FULL_SYNC_NOW =  0x00008000 , */
/* IDL: 	DRSUAPI_DRS_NO_SOURCE =  0x00008000 , */
/* IDL: 	DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS =  0x00010000 , */
/* IDL: 	DRSUAPI_DRS_FULL_SYNC_PACKET =  0x00020000 , */
/* IDL: 	DRSUAPI_DRS_SYNC_REQUEUE =  0x00040000 , */
/* IDL: 	DRSUAPI_DRS_SYNC_URGENT =  0x00080000 , */
/* IDL: 	DRSUAPI_DRS_REF_GCSPN =  0x00100000 , */
/* IDL: 	DRSUAPI_DRS_NO_DISCARD =  0x00100000 , */
/* IDL: 	DRSUAPI_DRS_NEVER_SYNCED =  0x00200000 , */
/* IDL: 	DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING =  0x00400000 , */
/* IDL: 	DRSUAPI_DRS_INIT_SYNC_NOW =  0x00800000 , */
/* IDL: 	DRSUAPI_DRS_PREEMPTED =  0x01000000 , */
/* IDL: 	DRSUAPI_DRS_SYNC_FORCED =  0x02000000 , */
/* IDL: 	DRSUAPI_DRS_DISABLE_AUTO_SYNC =  0x04000000 , */
/* IDL: 	DRSUAPI_DRS_DISABLE_PERIODIC_SYNC =  0x08000000 , */
/* IDL: 	DRSUAPI_DRS_USE_COMPRESSION =  0x10000000 , */
/* IDL: 	DRSUAPI_DRS_NEVER_NOTIFY =  0x20000000 , */
/* IDL: 	DRSUAPI_DRS_SYNC_PAS =  0x40000000 , */
/* IDL: 	DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP =  0x80000000 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DrsOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DrsOptions_fields[] = {
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS,
		&hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DrsOptions, drsuapi_drsuapi_DrsOptions_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x10010d109)) {
		flags &= (~0x10010d109);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_DRS_GET_TGT =  0x00000001 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DrsMoreOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DrsMoreOptions_fields[] = {
		&hf_drsuapi_drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DrsMoreOptions, drsuapi_drsuapi_DrsMoreOptions_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000001)) {
		flags &= (~0x00000001);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_DRS_UPDATE_FLAGS =  0x00000001 , */
/* IDL: 	DRSUAPI_DRS_UPDATE_ADDRESS =  0x00000002 , */
/* IDL: 	DRSUAPI_DRS_UPDATE_SCHEDULE =  0x00000004 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DrsUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DrsUpdate_fields[] = {
		&hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS,
		&hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS,
		&hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DrsUpdate, drsuapi_drsuapi_DrsUpdate_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000007)) {
		flags &= (~0x00000007);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_BASE =  0x00000001 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION =  0x00000002 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI =  0x00000004 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 =  0x00000008 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS =  0x00000010 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 =  0x00000020 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION =  0x00000040 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY =  0x00000080 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE =  0x00000100 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 =  0x00000200 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION =  0x00000400 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 =  0x00000800 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD =  0x00001000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND =  0x00002000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO =  0x00004000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION =  0x00008000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 =  0x00010000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP =  0x00020000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY =  0x00040000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 =  0x00080000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 =  0x00100000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 =  0x00200000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 =  0x00400000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS =  0x00800000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 =  0x01000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 =  0x02000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 =  0x04000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 =  0x08000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 =  0x08000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT =  0x08000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS =  0x10000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 =  0x20000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 =  0x40000000 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 =  0x80000000 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_SupportedExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_SupportedExtensions_fields[] = {
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2,
		&hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_SupportedExtensions, drsuapi_drsuapi_SupportedExtensions_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x10fffffff)) {
		flags &= (~0x10fffffff);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_ADAM =  0x00000001 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 =  0x00000002 , */
/* IDL: 	DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN =  0x00000004 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_SupportedExtensionsExt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_SupportedExtensionsExt_fields[] = {
		&hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM,
		&hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2,
		&hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_SupportedExtensionsExt, drsuapi_drsuapi_SupportedExtensionsExt_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000007)) {
		flags &= (~0x00000007);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_SupportedExtensions supported_extensions; */
/* IDL: 	GUID site_guid; */
/* IDL: 	uint32 pid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfo24_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo24_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo24_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo24_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo24_pid, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsBindInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo24);
	}

	offset = drsuapi_dissect_element_DsBindInfo24_supported_extensions(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo24_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo24_pid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_SupportedExtensions supported_extensions; */
/* IDL: 	GUID site_guid; */
/* IDL: 	uint32 pid; */
/* IDL: 	uint32 repl_epoch; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfo28_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo28_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo28_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo28_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo28_pid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo28_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsBindInfo28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo28);
	}

	offset = drsuapi_dissect_element_DsBindInfo28_supported_extensions(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo28_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo28_pid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo28_repl_epoch(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_SupportedExtensions supported_extensions; */
/* IDL: 	GUID site_guid; */
/* IDL: 	uint32 pid; */
/* IDL: 	uint32 repl_epoch; */
/* IDL: 	drsuapi_SupportedExtensionsExt supported_extensions_ext; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfo32_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo32_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo32_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo32_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo32_pid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo32_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo32_repl_epoch, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo32_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensionsExt(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions_ext, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsBindInfo32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo32);
	}

	offset = drsuapi_dissect_element_DsBindInfo32_supported_extensions(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo32_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo32_pid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo32_repl_epoch(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo32_supported_extensions_ext(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_SupportedExtensions supported_extensions; */
/* IDL: 	GUID site_guid; */
/* IDL: 	uint32 pid; */
/* IDL: 	uint32 repl_epoch; */
/* IDL: 	drsuapi_SupportedExtensionsExt supported_extensions_ext; */
/* IDL: 	GUID config_dn_guid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfo48_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo48_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo48_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo48_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo48_pid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo48_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo48_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensionsExt(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo48_config_dn_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsBindInfo48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo48);
	}

	offset = drsuapi_dissect_element_DsBindInfo48_supported_extensions(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo48_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo48_pid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo48_repl_epoch(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo48_supported_extensions_ext(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo48_config_dn_guid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_SupportedExtensions supported_extensions; */
/* IDL: 	GUID site_guid; */
/* IDL: 	uint32 pid; */
/* IDL: 	uint32 repl_epoch; */
/* IDL: 	drsuapi_SupportedExtensionsExt supported_extensions_ext; */
/* IDL: 	GUID config_dn_guid; */
/* IDL: 	drsuapi_SupportedExtensionsExt supported_capabilities_ext; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfo52_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo52_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo52_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_pid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo52_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_repl_epoch, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo52_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensionsExt(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions_ext, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo52_config_dn_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_config_dn_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo52_supported_capabilities_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_SupportedExtensionsExt(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfo52_supported_capabilities_ext, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsBindInfo52(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo52);
	}

	offset = drsuapi_dissect_element_DsBindInfo52_supported_extensions(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo52_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo52_pid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo52_repl_epoch(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo52_supported_extensions_ext(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo52_config_dn_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsBindInfo52_supported_capabilities_ext(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB info; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfoFallBack_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBindInfoFallBack_info, 1);

	return offset;
}

int
drsuapi_dissect_struct_DsBindInfoFallBack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfoFallBack);
	}

	offset = drsuapi_dissect_element_DsBindInfoFallBack_info(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: [noprint(1)] [nopull(1)] [nopush(1)] union { */
/* IDL: [case(24)] [case(24)] drsuapi_DsBindInfo24 info24; */
/* IDL: [case(28)] [case(28)] drsuapi_DsBindInfo28 info28; */
/* IDL: [case(32)] [case(32)] drsuapi_DsBindInfo32 info32; */
/* IDL: [case(48)] [case(48)] drsuapi_DsBindInfo48 info48; */
/* IDL: [case(52)] [case(52)] drsuapi_DsBindInfo52 info52; */
/* IDL: [default] ; */
/* IDL: } */

static int
drsuapi_dissect_element_DsBindInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfo24(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBindInfo_info24,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo_info28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfo28(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBindInfo_info28,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo_info32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfo32(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBindInfo_info32,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo_info48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfo48(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBindInfo_info48,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo_info52(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfo52(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBindInfo_info52,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBindInfo_Fallback(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfoFallBack(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBindInfo_Fallback,0);

	return offset;
}

static int
drsuapi_dissect_DsBindInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsBindInfo, &item, "drsuapi_DsBindInfo");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_4_BYTES;

	switch(level) {
		case 24:
			offset = drsuapi_dissect_element_DsBindInfo_info24(tvb, offset, pinfo, tree, di, drep);
		break;

		case 28:
			offset = drsuapi_dissect_element_DsBindInfo_info28(tvb, offset, pinfo, tree, di, drep);
		break;

		case 32:
			offset = drsuapi_dissect_element_DsBindInfo_info32(tvb, offset, pinfo, tree, di, drep);
		break;

		case 48:
			offset = drsuapi_dissect_element_DsBindInfo_info48(tvb, offset, pinfo, tree, di, drep);
		break;

		case 52:
			offset = drsuapi_dissect_element_DsBindInfo_info52(tvb, offset, pinfo, tree, di, drep);
		break;

		default:
			offset = drsuapi_dissect_element_DsBindInfo_Fallback(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[range(1,10000)] uint3264 length; */
/* IDL: 	[switch_is(length)] drsuapi_DsBindInfo info; */
/* IDL: } */

int
drsuapi_dissect_struct_DsBindInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	guint3264 length = 0;
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	gboolean oldalign = di->no_align;
	int old_offset;

	di->no_align = TRUE;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfoCtr);
	}

	offset = drsuapi_dissect_element_DsBindInfoCtr_length(tvb, offset, pinfo, tree, di, drep, &length);

	offset = drsuapi_dissect_element_DsBindInfoCtr_info(tvb, offset, pinfo, tree, di, drep, &length);


	proto_item_set_len(item, offset-old_offset);


	di->no_align = oldalign;

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->flags)-4)] uint32 __ndr_size; */
/* IDL: 	[value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; */
/* IDL: 	GUID guid; */
/* IDL: 	dom_sid28 sid; */
/* IDL: 	[value(strlen_m(dn))] uint32 __ndr_size_dn; */
/* IDL: 	[charset(UTF16)] [size_is(__ndr_size_dn+1)] uint16 dn[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_SID28(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectIdentifier_dn_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier);
	}

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_sid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier_sid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier_dn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	GUID source_dsa_guid; */
/* IDL: 	[charset(DOS)] [unique(1)] uint8 *source_dsa_dns; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Dns (uint8)",hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSyncRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaSyncRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaSyncRequest1);
	}

	offset = drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaSyncRequest1_options(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaSyncRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaSyncRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaSyncRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaSyncRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaSyncRequest, &item, "drsuapi_DsReplicaSyncRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsReplicaSyncRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	hyper tmp_highest_usn; */
/* IDL: 	hyper reserved_usn; */
/* IDL: 	hyper highest_usn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaHighWaterMark_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaHighWaterMark_reserved_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaHighWaterMark_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaHighWaterMark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaHighWaterMark);
	}

	offset = drsuapi_dissect_element_DsReplicaHighWaterMark_tmp_highest_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaHighWaterMark_reserved_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaHighWaterMark_highest_usn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	hyper highest_usn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursor_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor);
	}

	offset = drsuapi_dissect_element_DsReplicaCursor_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor_highest_usn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(1)] uint32 version; */
/* IDL: 	[value(0)] uint32 reserved1; */
/* IDL: 	[range(0,0x100000)] uint32 count; */
/* IDL: 	[value(0)] uint32 reserved2; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaCursor cursors[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursorCtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursorCtrEx);
	}

	offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved2(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_EXOP_NONE=0x00000000, */
/* IDL: 	DRSUAPI_EXOP_FSMO_REQ_ROLE=0x00000001, */
/* IDL: 	DRSUAPI_EXOP_FSMO_RID_ALLOC=0x00000002, */
/* IDL: 	DRSUAPI_EXOP_FSMO_RID_REQ_ROLE=0x00000003, */
/* IDL: 	DRSUAPI_EXOP_FSMO_REQ_PDC=0x00000004, */
/* IDL: 	DRSUAPI_EXOP_FSMO_ABANDON_ROLE=0x00000005, */
/* IDL: 	DRSUAPI_EXOP_REPL_OBJ=0x00000006, */
/* IDL: 	DRSUAPI_EXOP_REPL_SECRET=0x00000007, */
/* IDL: } */

int
drsuapi_dissect_enum_DsExtendedOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_EXOP_ERR_NONE=0x00000000, */
/* IDL: 	DRSUAPI_EXOP_ERR_SUCCESS=0x00000001, */
/* IDL: 	DRSUAPI_EXOP_ERR_UNKNOWN_OP=0x00000002, */
/* IDL: 	DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER=0x00000003, */
/* IDL: 	DRSUAPI_EXOP_ERR_UPDATE_ERR=0x00000004, */
/* IDL: 	DRSUAPI_EXOP_ERR_EXCEPTION=0x00000005, */
/* IDL: 	DRSUAPI_EXOP_ERR_UNKNOWN_CALLER=0x00000006, */
/* IDL: 	DRSUAPI_EXOP_ERR_RID_ALLOC=0x00000007, */
/* IDL: 	DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED=0x00000008, */
/* IDL: 	DRSUAPI_EXOP_ERR_FMSO_PENDING_OP=0x00000009, */
/* IDL: 	DRSUAPI_EXOP_ERR_MISMATCH=0x0000000A, */
/* IDL: 	DRSUAPI_EXOP_ERR_COULDNT_CONTACT=0x0000000B, */
/* IDL: 	DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES=0x0000000C, */
/* IDL: 	DRSUAPI_EXOP_ERR_DIR_ERROR=0x0000000D, */
/* IDL: 	DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS=0x0000000E, */
/* IDL: 	DRSUAPI_EXOP_ERR_ACCESS_DENIED=0x0000000F, */
/* IDL: 	DRSUAPI_EXOP_ERR_PARAM_ERROR=0x00000010, */
/* IDL: } */

int
drsuapi_dissect_enum_DsExtendedError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID destination_dsa_guid; */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark highwatermark; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
/* IDL: 	drsuapi_DrsOptions replica_flags; */
/* IDL: 	uint32 max_object_count; */
/* IDL: 	uint32 max_ndr_size; */
/* IDL: 	drsuapi_DsExtendedOperation extended_op; */
/* IDL: 	hyper fsmo_info; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsExtendedOperation(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesRequest5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest5);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_destination_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_replica_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_max_object_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_max_ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_extended_op(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 length; */
/* IDL: 	[size_is(length)] [unique(1)] uint8 *binary_oid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaOID_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOID_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOID_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOID_binary_oid_, NDR_POINTER_UNIQUE, "Pointer to Binary Oid (uint8)",hf_drsuapi_drsuapi_DsReplicaOID_binary_oid);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOID_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOID_binary_oid__);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOID_binary_oid, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaOID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOID);
	}

	offset = drsuapi_dissect_element_DsReplicaOID_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOID_binary_oid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 id_prefix; */
/* IDL: 	drsuapi_DsReplicaOID oid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOID(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaOIDMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOIDMapping);
	}

	offset = drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,0x100000)] uint32 num_mappings; */
/* IDL: 	[size_is(num_mappings)] [unique(1)] drsuapi_DsReplicaOIDMapping *mappings; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings_, NDR_POINTER_UNIQUE, "Pointer to Mappings (drsuapi_DsReplicaOIDMapping)",hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings__);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOIDMapping(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr);
	}

	offset = drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_OBJECTCLASS_top=0x00010000, */
/* IDL: 	DRSUAPI_OBJECTCLASS_classSchema=0x0003000d, */
/* IDL: 	DRSUAPI_OBJECTCLASS_attributeSchema=0x0003000e, */
/* IDL: } */

int
drsuapi_dissect_enum_DsObjectClassId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_ATTID_objectClass=0x00000000, */
/* IDL: 	DRSUAPI_ATTID_cn=0x00000003, */
/* IDL: 	DRSUAPI_ATTID_ou=0x0000000b, */
/* IDL: 	DRSUAPI_ATTID_description=0x0000000d, */
/* IDL: 	DRSUAPI_ATTID_member=0x0000001f, */
/* IDL: 	DRSUAPI_ATTID_distinguishedName=0x00000031, */
/* IDL: 	DRSUAPI_ATTID_instanceType=0x00020001, */
/* IDL: 	DRSUAPI_ATTID_whenCreated=0x00020002, */
/* IDL: 	DRSUAPI_ATTID_possSuperiors=0x00020008, */
/* IDL: 	DRSUAPI_ATTID_displayName=0x0002000d, */
/* IDL: 	DRSUAPI_ATTID_hasMasterNCs=0x0002000e, */
/* IDL: 	DRSUAPI_ATTID_nCName=0x00020010, */
/* IDL: 	DRSUAPI_ATTID_subClassOf=0x00020015, */
/* IDL: 	DRSUAPI_ATTID_governsID=0x00020016, */
/* IDL: 	DRSUAPI_ATTID_mustContain=0x00020018, */
/* IDL: 	DRSUAPI_ATTID_mayContain=0x00020019, */
/* IDL: 	DRSUAPI_ATTID_rDNAttId=0x0002001A, */
/* IDL: 	DRSUAPI_ATTID_attributeID=0x0002001e, */
/* IDL: 	DRSUAPI_ATTID_attributeSyntax=0x00020020, */
/* IDL: 	DRSUAPI_ATTID_isSingleValued=0x00020021, */
/* IDL: 	DRSUAPI_ATTID_rangeLower=0x00020022, */
/* IDL: 	DRSUAPI_ATTID_rangeUpper=0x00020023, */
/* IDL: 	DRSUAPI_ATTID_dMDLocation=0x00020024, */
/* IDL: 	DRSUAPI_ATTID_isDeleted=0x00020030, */
/* IDL: 	DRSUAPI_ATTID_objectVersion=0x0002004c, */
/* IDL: 	DRSUAPI_ATTID_invocationId=0x00020073, */
/* IDL: 	DRSUAPI_ATTID_showInAdvancedViewOnly=0x000200a9, */
/* IDL: 	DRSUAPI_ATTID_adminDisplayName=0x000200c2, */
/* IDL: 	DRSUAPI_ATTID_adminDescription=0x000200e2, */
/* IDL: 	DRSUAPI_ATTID_oMSyntax=0x000200e7, */
/* IDL: 	DRSUAPI_ATTID_ntSecurityDescriptor=0x00020119, */
/* IDL: 	DRSUAPI_ATTID_searchFlags=0x0002014e, */
/* IDL: 	DRSUAPI_ATTID_auxiliaryClass=0x0002015f, */
/* IDL: 	DRSUAPI_ATTID_lDAPDisplayName=0x000201cc, */
/* IDL: 	DRSUAPI_ATTID_name=0x00090001, */
/* IDL: 	DRSUAPI_ATTID_objectGUID=0x00090002, */
/* IDL: 	DRSUAPI_ATTID_replPropertyMetaData=0x00090003, */
/* IDL: 	DRSUAPI_ATTID_userAccountControl=0x00090008, */
/* IDL: 	DRSUAPI_ATTID_badPwdCount=0x0009000c, */
/* IDL: 	DRSUAPI_ATTID_codePage=0x00090010, */
/* IDL: 	DRSUAPI_ATTID_countryCode=0x00090019, */
/* IDL: 	DRSUAPI_ATTID_currentValue=0x0009001b, */
/* IDL: 	DRSUAPI_ATTID_homeDirectory=0x0009002c, */
/* IDL: 	DRSUAPI_ATTID_homeDrive=0x0009002d, */
/* IDL: 	DRSUAPI_ATTID_lastLogoff=0x00090033, */
/* IDL: 	DRSUAPI_ATTID_lastLogon=0x00090034, */
/* IDL: 	DRSUAPI_ATTID_dBCSPwd=0x00090037, */
/* IDL: 	DRSUAPI_ATTID_scriptPath=0x0009003e, */
/* IDL: 	DRSUAPI_ATTID_logonHours=0x00090040, */
/* IDL: 	DRSUAPI_ATTID_userWorkstations=0x00090056, */
/* IDL: 	DRSUAPI_ATTID_unicodePwd=0x0009005a, */
/* IDL: 	DRSUAPI_ATTID_ntPwdHistory=0x0009005e, */
/* IDL: 	DRSUAPI_ATTID_pwdLastSet=0x00090060, */
/* IDL: 	DRSUAPI_ATTID_primaryGroupID=0x00090062, */
/* IDL: 	DRSUAPI_ATTID_priorValue=0x00090064, */
/* IDL: 	DRSUAPI_ATTID_supplementalCredentials=0x0009007d, */
/* IDL: 	DRSUAPI_ATTID_trustAuthIncoming=0x00090081, */
/* IDL: 	DRSUAPI_ATTID_trustDirection=0x00090084, */
/* IDL: 	DRSUAPI_ATTID_trustPartner=0x00090085, */
/* IDL: 	DRSUAPI_ATTID_trustPosixOffset=0x00090086, */
/* IDL: 	DRSUAPI_ATTID_trustAuthOutgoing=0x00090087, */
/* IDL: 	DRSUAPI_ATTID_trustType=0x00090088, */
/* IDL: 	DRSUAPI_ATTID_userParameters=0x0009008a, */
/* IDL: 	DRSUAPI_ATTID_profilePath=0x0009008b, */
/* IDL: 	DRSUAPI_ATTID_operatorCount=0x00090090, */
/* IDL: 	DRSUAPI_ATTID_objectSid=0x00090092, */
/* IDL: 	DRSUAPI_ATTID_schemaIDGUID=0x00090094, */
/* IDL: 	DRSUAPI_ATTID_adminCount=0x00090096, */
/* IDL: 	DRSUAPI_ATTID_comment=0x0009009C, */
/* IDL: 	DRSUAPI_ATTID_accountExpires=0x0009009f, */
/* IDL: 	DRSUAPI_ATTID_lmPwdHistory=0x000900a0, */
/* IDL: 	DRSUAPI_ATTID_logonCount=0x000900a9, */
/* IDL: 	DRSUAPI_ATTID_systemPossSuperiors=0x000900c3, */
/* IDL: 	DRSUAPI_ATTID_systemMayContain=0x000900c4, */
/* IDL: 	DRSUAPI_ATTID_systemMustContain=0x000900c5, */
/* IDL: 	DRSUAPI_ATTID_systemAuxiliaryClass=0x000900c6, */
/* IDL: 	DRSUAPI_ATTID_sAMAccountName=0x000900dd, */
/* IDL: 	DRSUAPI_ATTID_sAMAccountType=0x0009012e, */
/* IDL: 	DRSUAPI_ATTID_options=0x00090133, */
/* IDL: 	DRSUAPI_ATTID_fSMORoleOwner=0x00090171, */
/* IDL: 	DRSUAPI_ATTID_systemFlags=0x00090177, */
/* IDL: 	DRSUAPI_ATTID_trustAttributes=0x000901d6, */
/* IDL: 	DRSUAPI_ATTID_trustParent=0x000901d7, */
/* IDL: 	DRSUAPI_ATTID_flatName=0x000901ff, */
/* IDL: 	DRSUAPI_ATTID_serverReference=0x00090203, */
/* IDL: 	DRSUAPI_ATTID_serverReferenceBL=0x00090204, */
/* IDL: 	DRSUAPI_ATTID_nonSecurityMember=0x00090212, */
/* IDL: 	DRSUAPI_ATTID_initialAuthIncoming=0x0009021b, */
/* IDL: 	DRSUAPI_ATTID_initialAuthOutgoing=0x0009021c, */
/* IDL: 	DRSUAPI_ATTID_wellKnownObjects=0x0009026a, */
/* IDL: 	DRSUAPI_ATTID_dNSHostName=0x0009026b, */
/* IDL: 	DRSUAPI_ATTID_isMemberOfPartialAttributeSet=0x0009027f, */
/* IDL: 	DRSUAPI_ATTID_managedBy=0x0009028d, */
/* IDL: 	DRSUAPI_ATTID_userPrincipalName=0x00090290, */
/* IDL: 	DRSUAPI_ATTID_groupType=0x000902ee, */
/* IDL: 	DRSUAPI_ATTID_servicePrincipalName=0x00090303, */
/* IDL: 	DRSUAPI_ATTID_lastKnownParent=0x0009030d, */
/* IDL: 	DRSUAPI_ATTID_objectCategory=0x0009030e, */
/* IDL: 	DRSUAPI_ATTID_gPLink=0x0009037b, */
/* IDL: 	DRSUAPI_ATTID_transportAddressAttribute=0x0009037f, */
/* IDL: 	DRSUAPI_ATTID_schemaInfo=0x0009054e, */
/* IDL: 	DRSUAPI_ATTID_msDS_Behavior_Version=0x000905b3, */
/* IDL: 	DRSUAPI_ATTID_msDS_TrustForestTrustInfo=0x000906a6, */
/* IDL: 	DRSUAPI_ATTID_msDS_KeyVersionNumber=0x000906f6, */
/* IDL: 	DRSUAPI_ATTID_msDS_NonMembers=0x00090701, */
/* IDL: 	DRSUAPI_ATTID_msDS_MembersForAzRole=0x0009070e, */
/* IDL: 	DRSUAPI_ATTID_msDS_HasDomainNCs=0x0009071c, */
/* IDL: 	DRSUAPI_ATTID_msDS_hasMasterNCs=0x0009072c, */
/* IDL: 	DRSUAPI_ATTID_msDS_NeverRevealGroup=0x00090786, */
/* IDL: 	DRSUAPI_ATTID_msDS_RevealOnDemandGroup=0x00090788, */
/* IDL: 	DRSUAPI_ATTID_msDS_SupportedEncryptionTypes=0x000907ab, */
/* IDL: 	DRSUAPI_ATTID_msDS_HostServiceAccount=0x00090808, */
/* IDL: 	DRSUAPI_ATTID_isRecycled=0x0009080a, */
/* IDL: 	DRSUAPI_ATTID_INVALID=0xFFFFFFFF, */
/* IDL: } */

int
drsuapi_dissect_enum_DsAttributeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(1)] uint32 version; */
/* IDL: 	[value(0)] uint32 reserved1; */
/* IDL: 	[range(1,0x100000)] uint32 num_attids; */
/* IDL: 	[size_is(num_attids)] drsuapi_DsAttributeId attids[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsPartialAttributeSet_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsPartialAttributeSet_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsPartialAttributeSet_num_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsPartialAttributeSet_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsPartialAttributeSet_attids_);

	return offset;
}

static int
drsuapi_dissect_element_DsPartialAttributeSet_attids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_attids, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsPartialAttributeSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsPartialAttributeSet);
	}

	offset = drsuapi_dissect_element_DsPartialAttributeSet_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsPartialAttributeSet_reserved1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsPartialAttributeSet_num_attids(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsPartialAttributeSet_attids(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID destination_dsa_guid; */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark highwatermark; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
/* IDL: 	drsuapi_DrsOptions replica_flags; */
/* IDL: 	uint32 max_object_count; */
/* IDL: 	uint32 max_ndr_size; */
/* IDL: 	drsuapi_DsExtendedOperation extended_op; */
/* IDL: 	hyper fsmo_info; */
/* IDL: 	[unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set; */
/* IDL: 	[unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; */
/* IDL: 	drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsExtendedOperation(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set Ex (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest8_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesRequest8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest8);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_destination_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_replica_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_max_object_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_max_ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_extended_op(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_fsmo_info(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest8_mapping_ctr(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID destination_dsa_guid; */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark highwatermark; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
/* IDL: 	drsuapi_DrsOptions replica_flags; */
/* IDL: 	uint32 max_object_count; */
/* IDL: 	uint32 max_ndr_size; */
/* IDL: 	drsuapi_DsExtendedOperation extended_op; */
/* IDL: 	hyper fsmo_info; */
/* IDL: 	[unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set; */
/* IDL: 	[unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; */
/* IDL: 	drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
/* IDL: 	drsuapi_DrsMoreOptions more_flags; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsExtendedOperation(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set Ex (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest10_more_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsMoreOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesRequest10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest10);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_destination_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_replica_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_max_object_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_max_ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_extended_op(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_fsmo_info(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_mapping_ctr(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesRequest10_more_flags(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(5)] [case(5)] drsuapi_DsGetNCChangesRequest5 req5; */
/* IDL: [case(8)] [case(8)] drsuapi_DsGetNCChangesRequest8 req8; */
/* IDL: [case(10)] [case(10)] drsuapi_DsGetNCChangesRequest10 req10; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesRequest_req5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesRequest5(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest_req8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesRequest8(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesRequest_req10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesRequest10(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10,0);

	return offset;
}

static int
drsuapi_dissect_DsGetNCChangesRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetNCChangesRequest, &item, "drsuapi_DsGetNCChangesRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_8_BYTES;

	switch(level) {
		case 5:
			offset = drsuapi_dissect_element_DsGetNCChangesRequest_req5(tvb, offset, pinfo, tree, di, drep);
		break;

		case 8:
			offset = drsuapi_dissect_element_DsGetNCChangesRequest_req8(tvb, offset, pinfo, tree, di, drep);
		break;

		case 10:
			offset = drsuapi_dissect_element_DsGetNCChangesRequest_req10(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	hyper highest_usn; */
/* IDL: 	NTTIME last_sync_success; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursor2_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursor2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor2);
	}

	offset = drsuapi_dissect_element_DsReplicaCursor2_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2_highest_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2_last_sync_success(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(2)] uint32 version; */
/* IDL: 	[value(0)] uint32 reserved1; */
/* IDL: 	[range(0,0x100000)] uint32 count; */
/* IDL: 	[value(0)] uint32 reserved2; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaCursor2 cursors[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursor2CtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2CtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursor2CtrEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx);
	}

	offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved2(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,26214400)] [value(ndr_size_DATA_BLOB(0,blob,0))] uint32 __ndr_size; */
/* IDL: 	[unique(1)] DATA_BLOB *blob; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAttributeValue___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAttributeValue___ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAttributeValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAttributeValue_blob_, NDR_POINTER_UNIQUE, "Pointer to Blob (DATA_BLOB)",hf_drsuapi_drsuapi_DsAttributeValue_blob);

	return offset;
}

static int
drsuapi_dissect_element_DsAttributeValue_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAttributeValue_blob, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsAttributeValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAttributeValue);
	}

	offset = drsuapi_dissect_element_DsAttributeValue___ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAttributeValue_blob(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10485760)] uint32 num_values; */
/* IDL: 	[size_is(num_values)] [unique(1)] drsuapi_DsAttributeValue *values; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAttributeValueCtr_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAttributeValueCtr_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAttributeValueCtr_values_, NDR_POINTER_UNIQUE, "Pointer to Values (drsuapi_DsAttributeValue)",hf_drsuapi_drsuapi_DsAttributeValueCtr_values);

	return offset;
}

static int
drsuapi_dissect_element_DsAttributeValueCtr_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAttributeValueCtr_values__);

	return offset;
}

static int
drsuapi_dissect_element_DsAttributeValueCtr_values__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAttributeValue(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAttributeValueCtr_values,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAttributeValueCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAttributeValueCtr);
	}

	offset = drsuapi_dissect_element_DsAttributeValueCtr_num_values(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAttributeValueCtr_values(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->flags))] uint32 __ndr_size; */
/* IDL: 	[value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; */
/* IDL: 	GUID guid; */
/* IDL: 	dom_sid28 sid; */
/* IDL: 	[value(strlen_m(dn))] uint32 __ndr_size_dn; */
/* IDL: 	[charset(UTF16)] [length_is(__ndr_size_dn+1)] [size_is(__ndr_size_dn+1)] [unique(1)] uint16 *dn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_SID28(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn_, NDR_POINTER_UNIQUE, "Pointer to Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn__);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjectIdentifier3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3);
	}

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_sid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3_sid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r,ndr->flags))] uint32 __ndr_size; */
/* IDL: 	[value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; */
/* IDL: 	GUID guid; */
/* IDL: 	dom_sid28 sid; */
/* IDL: 	[value(strlen_m(dn))] uint32 __ndr_size_dn; */
/* IDL: 	[charset(UTF16)] [length_is(__ndr_size_dn+1)] [size_is(__ndr_size_dn+1)] [unique(1)] uint16 *dn; */
/* IDL: 	[value(binary.length+4)] uint32 __ndr_size_binary; */
/* IDL: 	[flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB binary; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_SID28(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn_, NDR_POINTER_UNIQUE, "Pointer to Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn__);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary, 1);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjectIdentifier3Binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary);
	}

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_sid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_sid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_binary(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_binary(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsAttributeId attid; */
/* IDL: 	drsuapi_DsAttributeValueCtr value_ctr; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttribute_attid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttribute_value_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAttributeValueCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttribute);
	}

	offset = drsuapi_dissect_element_DsReplicaAttribute_attid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttribute_value_ctr(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,1048576)] uint32 num_attributes; */
/* IDL: 	[size_is(num_attributes)] [unique(1)] drsuapi_DsReplicaAttribute *attributes; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAttributeCtr_num_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttributeCtr_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttributeCtr_attributes_, NDR_POINTER_UNIQUE, "Pointer to Attributes (drsuapi_DsReplicaAttribute)",hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttributeCtr_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttributeCtr_attributes__);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttributeCtr_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAttribute(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAttributeCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttributeCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaAttributeCtr_num_attributes(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttributeCtr_attributes(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER =  0x00000001 , */
/* IDL: 	DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC =  0x00000002 , */
/* IDL: 	DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY =  0x00010000 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DsReplicaObjectFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DsReplicaObjectFlags_fields[] = {
		&hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER,
		&hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC,
		&hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DsReplicaObjectFlags, drsuapi_drsuapi_DsReplicaObjectFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00010003)) {
		flags &= (~0x00010003);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *identifier; */
/* IDL: 	drsuapi_DsReplicaObjectFlags flags; */
/* IDL: 	drsuapi_DsReplicaAttributeCtr attribute_ctr; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObject_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObject_identifier_, NDR_POINTER_UNIQUE, "Pointer to Identifier (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaObject_identifier);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObject_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObject_identifier,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObject_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DsReplicaObjectFlags(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObject_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObject_attribute_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAttributeCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObject);
	}

	offset = drsuapi_dissect_element_DsReplicaObject_identifier(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObject_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObject_attribute_ctr(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 version; */
/* IDL: 	NTTIME_1sec originating_change_time; */
/* IDL: 	GUID originating_invocation_id; */
/* IDL: 	hyper originating_usn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaMetaData);
	}

	offset = drsuapi_dissect_element_DsReplicaMetaData_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaMetaData_originating_change_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaMetaData_originating_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaMetaData_originating_usn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,1048576)] uint32 count; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaMetaData meta_data[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaMetaData(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaMetaDataCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaMetaDataCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectListItemEx *next_object; */
/* IDL: 	drsuapi_DsReplicaObject object; */
/* IDL: 	uint32 is_nc_prefix; */
/* IDL: 	[unique(1)] GUID *parent_object_guid; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object_, NDR_POINTER_UNIQUE, "Pointer to Next Object (drsuapi_DsReplicaObjectListItemEx)",hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObject(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_is_nc_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid_, NDR_POINTER_UNIQUE, "Pointer to Parent Object Guid (GUID)",hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr_, NDR_POINTER_UNIQUE, "Pointer to Meta Data Ctr (drsuapi_DsReplicaMetaDataCtr)",hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaMetaDataCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectListItemEx);
	}

	offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_object(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_is_nc_prefix(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID source_dsa_guid; */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark old_highwatermark; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark new_highwatermark; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
/* IDL: 	drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
/* IDL: 	drsuapi_DsExtendedError extended_ret; */
/* IDL: 	uint32 object_count; */
/* IDL: 	[value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectListItemEx *first_object; */
/* IDL: 	uint32 more_data; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context_, NDR_POINTER_UNIQUE, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsExtendedError(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr1_first_object_, NDR_POINTER_UNIQUE, "Pointer to First Object (drsuapi_DsReplicaObjectListItemEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr1_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr1);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_old_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_new_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_mapping_ctr(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_extended_ret(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_object_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1___ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_first_object(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1_more_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: bitmap { */
/* IDL: 	DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE =  0x00000001 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DsLinkedAttributeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DsLinkedAttributeFlags_fields[] = {
		&hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DsLinkedAttributeFlags, drsuapi_drsuapi_DsLinkedAttributeFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000001)) {
		flags &= (~0x00000001);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *identifier; */
/* IDL: 	drsuapi_DsAttributeId attid; */
/* IDL: 	drsuapi_DsAttributeValue value; */
/* IDL: 	drsuapi_DsLinkedAttributeFlags flags; */
/* IDL: 	NTTIME_1sec originating_add_time; */
/* IDL: 	drsuapi_DsReplicaMetaData meta_data; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier_, NDR_POINTER_UNIQUE, "Pointer to Identifier (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAttributeValue(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DsLinkedAttributeFlags(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_originating_add_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaLinkedAttribute_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaMetaData(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaLinkedAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaLinkedAttribute);
	}

	offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_attid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_value(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_originating_add_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_meta_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID source_dsa_guid; */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark old_highwatermark; */
/* IDL: 	drsuapi_DsReplicaHighWaterMark new_highwatermark; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector; */
/* IDL: 	drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
/* IDL: 	drsuapi_DsExtendedError extended_ret; */
/* IDL: 	uint32 object_count; */
/* IDL: 	[value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectListItemEx *first_object; */
/* IDL: 	uint32 more_data; */
/* IDL: 	uint32 nc_object_count; */
/* IDL: 	uint32 nc_linked_attributes_count; */
/* IDL: 	[range(0,1048576)] uint32 linked_attributes_count; */
/* IDL: 	[size_is(linked_attributes_count)] [unique(1)] drsuapi_DsReplicaLinkedAttribute *linked_attributes; */
/* IDL: 	WERROR drs_error; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context_, NDR_POINTER_UNIQUE, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursor2CtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor2CtrEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsExtendedError(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_first_object_, NDR_POINTER_UNIQUE, "Pointer to First Object (drsuapi_DsReplicaObjectListItemEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_nc_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_nc_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_, NDR_POINTER_UNIQUE, "Pointer to Linked Attributes (drsuapi_DsReplicaLinkedAttribute)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaLinkedAttribute(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr6_drs_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr6);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_old_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_new_highwatermark(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_mapping_ctr(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_extended_ret(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_object_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6___ndr_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_first_object(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_more_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_nc_object_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_nc_linked_attributes_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6_drs_error(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsGetNCChangesCtr1 ctr1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsGetNCChangesCtr6 ctr6; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr6(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 decompressed_length; */
/* IDL: 	uint32 compressed_length; */
/* IDL: 	[compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] [subcontext(4)] [subcontext_size(compressed_length)] [unique(1)] drsuapi_DsGetNCChangesCtr1TS *ts; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr1TS)",hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_decompressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_compressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 decompressed_length; */
/* IDL: 	uint32 compressed_length; */
/* IDL: 	[compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] [subcontext(4)] [subcontext_size(compressed_length)] [unique(1)] drsuapi_DsGetNCChangesCtr6TS *ts; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr6TS)",hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_decompressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_compressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 decompressed_length; */
/* IDL: 	uint32 compressed_length; */
/* IDL: 	[compression(NDR_COMPRESSION_WIN2K3_LZ77_DIRECT2,compressed_length,decompressed_length)] [subcontext(4)] [subcontext_size(compressed_length)] [unique(1)] drsuapi_DsGetNCChangesCtr1TS *ts; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr1TS)",hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 decompressed_length; */
/* IDL: 	uint32 compressed_length; */
/* IDL: 	[compression(NDR_COMPRESSION_WIN2K3_LZ77_DIRECT2,compressed_length,decompressed_length)] [subcontext(4)] [subcontext_size(compressed_length)] [unique(1)] drsuapi_DsGetNCChangesCtr6TS *ts; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr6TS)",hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint3264 size;
	int conformant = di->conformant_run;
	tvbuff_t *subtvb;

	if (!conformant) {
		guint32 saved_flags = di->call_data->flags;
		offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_, &size);
		di->call_data->flags &= ~DCERPC_IS_NDR64;
		subtvb = tvb_new_subset_length_caplen(tvb, offset, (const gint)size, -1);
		drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts__(subtvb, 0, pinfo, tree, di, drep);
		offset += (int)size;
		di->call_data->flags = saved_flags;
	}

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_COMPRESSION_TYPE_MSZIP=2, */
/* IDL: 	DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2=3, */
/* IDL: } */

int
drsuapi_dissect_enum_DsGetNCChangesCompressionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_)
{
	guint16 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: [flag(LIBNDR_PRINT_ARRAY_HEX)] [nodiscriminant(1)] union { */
/* IDL: [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; */
/* IDL: [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesMSZIPCtr6 mszip6; */
/* IDL: [case(1|(DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2<<16))] [case(1|(DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2<<16))] drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1 xpress1; */
/* IDL: [case(6|(DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2<<16))] [case(6|(DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2<<16))] drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6 xpress6; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr6(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6,0);

	return offset;
}

static int
drsuapi_dissect_DsGetNCChangesCompressedCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level = param;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr, &item, "drsuapi_DsGetNCChangesCompressedCtr");
	}

	switch(level) {
		case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
			offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip1(tvb, offset, pinfo, tree, di, drep);
		break;

		case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
			offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip6(tvb, offset, pinfo, tree, di, drep);
		break;

		case 1|(DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2<<16):
			offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress1(tvb, offset, pinfo, tree, di, drep);
		break;

		case 6|(DRSUAPI_COMPRESSION_TYPE_WIN2K3_LZ77_DIRECT2<<16):
			offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress6(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr2_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr2);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesCtr2_mszip1(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,6)] uint32 level; */
/* IDL: 	[range(2,3)] drsuapi_DsGetNCChangesCompressionType type; */
/* IDL: 	[switch_is(level|(type<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr7_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr7_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsGetNCChangesCompressionType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr7_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetNCChangesCompressedCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNCChangesCtr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr7);
	}

	offset = drsuapi_dissect_element_DsGetNCChangesCtr7_level(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr7_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChangesCtr7_ctr(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetNCChangesCtr1 ctr1; */
/* IDL: [case(2)] [case(2)] drsuapi_DsGetNCChangesCtr2 ctr2; */
/* IDL: [case(6)] [case(6)] drsuapi_DsGetNCChangesCtr6 ctr6; */
/* IDL: [case(7)] [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNCChangesCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr6(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChangesCtr_ctr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNCChangesCtr7(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7,0);

	return offset;
}

static int
drsuapi_dissect_DsGetNCChangesCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetNCChangesCtr, &item, "drsuapi_DsGetNCChangesCtr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_8_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;

		case 2:
			offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr2(tvb, offset, pinfo, tree, di, drep);
		break;

		case 6:
			offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr6(tvb, offset, pinfo, tree, di, drep);
		break;

		case 7:
			offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr7(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	[charset(DOS)] [ref] uint8 *dest_dsa_dns_name; */
/* IDL: 	GUID dest_dsa_guid; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name_, NDR_POINTER_REF, "Pointer to Dest Dsa Dns Name (uint8)",hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaUpdateRefsRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1);
	}

	offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_options(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaUpdateRefsRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaUpdateRefsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaUpdateRefsRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaUpdateRefsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest, &item, "drsuapi_DsReplicaUpdateRefsRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *source_dsa_address; */
/* IDL: 	uint8 schedule[84]; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAddRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	int i;
	for (i = 0; i < 84; i++)
		offset = drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvb, offset, pinfo, tree, di, drep);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest1_options, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAddRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAddRequest1);
	}

	offset = drsuapi_dissect_element_DsReplicaAddRequest1_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest1_options(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *source_dsa_dn; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *transport_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *source_dsa_address; */
/* IDL: 	uint8 schedule[84]; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Dn (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_, NDR_POINTER_UNIQUE, "Pointer to Transport Dn (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	int i;
	for (i = 0; i < 84; i++)
		offset = drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvb, offset, pinfo, tree, di, drep);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest2_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest2_options, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAddRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAddRequest2);
	}

	offset = drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAddRequest2_options(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaAddRequest1 req1; */
/* IDL: [case(2)] [case(2)] drsuapi_DsReplicaAddRequest2 req2; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAddRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAddRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAddRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAddRequest2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest_req2,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaAddRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaAddRequest, &item, "drsuapi_DsReplicaAddRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsReplicaAddRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;

		case 2:
			offset = drsuapi_dissect_element_DsReplicaAddRequest_req2(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	[charset(UTF8)] [unique(1)] uint8 *source_dsa_address; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaDelRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaDelRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDelRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint8)",hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDelRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaDelRequest1_options, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaDelRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaDelRequest1);
	}

	offset = drsuapi_dissect_element_DsReplicaDelRequest1_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaDelRequest1_options(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaDelRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaDelRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaDelRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaDelRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaDelRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaDelRequest, &item, "drsuapi_DsReplicaDelRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsReplicaDelRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
/* IDL: 	GUID source_dra; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *source_dra_address; */
/* IDL: 	uint8 schedule[84]; */
/* IDL: 	drsuapi_DrsOptions replica_flags; */
/* IDL: 	uint32 modify_fields; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaModRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaModRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dra Address (uint16)",hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	int i;
	for (i = 0; i < 84; i++)
		offset = drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvb, offset, pinfo, tree, di, drep);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaModRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_options, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaModRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaModRequest1);
	}

	offset = drsuapi_dissect_element_DsReplicaModRequest1_naming_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaModRequest1_options(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaModRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaModRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaModRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaModRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaModRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaModRequest, &item, "drsuapi_DsReplicaModRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsReplicaModRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS=1, */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS=2, */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS=3, */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2=4, */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS=5, */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS=6, */
/* IDL: 	DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2=7, */
/* IDL: } */

int
drsuapi_dissect_enum_DsMembershipType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	NTSTATUS status; */
/* IDL: 	[range(0,10000)] uint32 num_memberships; */
/* IDL: 	[range(0,10000)] uint32 num_sids; */
/* IDL: 	[size_is(num_memberships)] [unique(1)] drsuapi_DsReplicaObjectIdentifier **info_array; */
/* IDL: 	[size_is(num_memberships)] [unique(1)] security_GroupAttrs *group_attrs; */
/* IDL: 	[size_is(num_sids)] [unique(1)] dom_sid28 **sids; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_num_memberships(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_info_array_, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_info_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_info_array___, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs_, NDR_POINTER_UNIQUE, "Pointer to Group Attrs (security_GroupAttrs)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_security_GroupAttrs(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (dom_sid28)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_sids__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_sids___, NDR_POINTER_UNIQUE, "Pointer to Sids (dom_sid28)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsCtr1_sids___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_SID28(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids);

	return offset;
}

int
drsuapi_dissect_struct_DsGetMembershipsCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMembershipsCtr1);
	}

	offset = drsuapi_dissect_element_DsGetMembershipsCtr1_status(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsCtr1_num_memberships(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsCtr1_num_sids(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsCtr1_info_array(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsCtr1_sids(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMembershipsCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetMembershipsCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetMembershipsCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetMembershipsCtr, &item, "drsuapi_DsGetMembershipsCtr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetMembershipsCtr_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[range(1,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsReplicaObjectIdentifier **info_array; */
/* IDL: 	uint32 flags; */
/* IDL: 	[range(1,7)] drsuapi_DsMembershipType type; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *domain; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_info_array_, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_info_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_info_array___, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsMembershipType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMembershipsRequest1_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetMembershipsRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMembershipsRequest1);
	}

	offset = drsuapi_dissect_element_DsGetMembershipsRequest1_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsRequest1_info_array(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsRequest1_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsRequest1_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMembershipsRequest1_domain(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetMembershipsRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMembershipsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetMembershipsRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetMembershipsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetMembershipsRequest, &item, "drsuapi_DsGetMembershipsRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetMembershipsRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: bitmap { */
/* IDL: 	DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG =  0x00000001 , */
/* IDL: 	DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS =  0x00000002 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DsGetNT4ChangeLogFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DsGetNT4ChangeLogFlags_fields[] = {
		&hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG,
		&hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags, drsuapi_drsuapi_DsGetNT4ChangeLogFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000003)) {
		flags &= (~0x00000003);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsGetNT4ChangeLogFlags flags; */
/* IDL: 	uint32 preferred_maximum_length; */
/* IDL: 	[range(0,0x00A00000)] uint32 restart_length; */
/* IDL: 	[size_is(restart_length)] [unique(1)] uint8 *restart_data; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DsGetNT4ChangeLogFlags(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_, NDR_POINTER_UNIQUE, "Pointer to Restart Data (uint8)",hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNT4ChangeLogRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1);
	}

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetNT4ChangeLogRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNT4ChangeLogRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetNT4ChangeLogRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest, &item, "drsuapi_DsGetNT4ChangeLogRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[range(0,0x00A00000)] uint32 restart_length; */
/* IDL: 	[range(0,0x00A00000)] uint32 log_length; */
/* IDL: 	hyper sam_serial_number; */
/* IDL: 	NTTIME sam_creation_time; */
/* IDL: 	hyper builtin_serial_number; */
/* IDL: 	NTTIME builtin_creation_time; */
/* IDL: 	hyper lsa_serial_number; */
/* IDL: 	NTTIME lsa_creation_time; */
/* IDL: 	NTSTATUS status; */
/* IDL: 	[size_is(restart_length)] [unique(1)] uint8 *restart_data; */
/* IDL: 	[size_is(log_length)] [unique(1)] uint8 *log_data; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_, NDR_POINTER_UNIQUE, "Pointer to Restart Data (uint8)",hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_, NDR_POINTER_UNIQUE, "Pointer to Log Data (uint8)",hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetNT4ChangeLogInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1);
	}

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_serial_number(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_creation_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_serial_number(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_creation_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_serial_number(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetNT4ChangeLogInfo1 info1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetNT4ChangeLogInfo1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetNT4ChangeLogInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo, &item, "drsuapi_DsGetNT4ChangeLogInfo");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_8_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_OK=0, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR=1, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_NOT_FOUND=2, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE=3, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_NO_MAPPING=4, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY=5, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING=6, */
/* IDL: 	DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL=7, */
/* IDL: } */

int
drsuapi_dissect_enum_DsNameStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_NAME_FLAG_NO_FLAGS=0x0, */
/* IDL: 	DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY=0x1, */
/* IDL: 	DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC=0x2, */
/* IDL: 	DRSUAPI_DS_NAME_FLAG_GCVERIFY=0x4, */
/* IDL: 	DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL=0x8, */
/* IDL: } */

int
drsuapi_dissect_enum_DsNameFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_UNKNOWN=0x00000000, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_FQDN_1779=0x00000001, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT=0x00000002, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_DISPLAY=0x00000003, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_GUID=0x00000006, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_CANONICAL=0x00000007, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL=0x00000008, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX=0x00000009, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL=0x0000000A, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY=0x0000000B, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN=0x0000000C, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID=0xFFFFFFEF, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX=0xFFFFFFF0, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS=0xFFFFFFF1, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON=0xFFFFFFF2, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE=0xFFFFFFF3, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME=0xFFFFFFF4, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME=0xFFFFFFF5, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_NCS=0xFFFFFFF6, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS=0xFFFFFFF7, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID=0xFFFFFFF8, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN=0xFFFFFFF9, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_ROLES=0xFFFFFFFA, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER=0xFFFFFFFB, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE=0xFFFFFFFC, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE=0xFFFFFFFD, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE=0xFFFFFFFE, */
/* IDL: 	DRSUAPI_DS_NAME_FORMAT_LIST_SITES=0xFFFFFFFF, */
/* IDL: } */

int
drsuapi_dissect_enum_DsNameFormat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *str; */
/* IDL: } */

static int
drsuapi_dissect_element_DsNameString_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameString_str_, NDR_POINTER_UNIQUE, "Pointer to Str (uint16)",hf_drsuapi_drsuapi_DsNameString_str);

	return offset;
}

static int
drsuapi_dissect_element_DsNameString_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsNameString_str, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_DsNameString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameString);
	}

	offset = drsuapi_dissect_element_DsNameString_str(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 codepage; */
/* IDL: 	uint32 language; */
/* IDL: 	drsuapi_DsNameFlags format_flags; */
/* IDL: 	drsuapi_DsNameFormat format_offered; */
/* IDL: 	drsuapi_DsNameFormat format_desired; */
/* IDL: 	[range(1,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsNameString *names; */
/* IDL: } */

static int
drsuapi_dissect_element_DsNameRequest1_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameRequest1_codepage, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameRequest1_language, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_format_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsNameFlags(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameRequest1_format_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_format_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsNameFormat(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameRequest1_format_offered, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_format_desired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsNameFormat(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameRequest1_format_desired, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameRequest1_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameRequest1_names_, NDR_POINTER_UNIQUE, "Pointer to Names (drsuapi_DsNameString)",hf_drsuapi_drsuapi_DsNameRequest1_names);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameRequest1_names__);

	return offset;
}

static int
drsuapi_dissect_element_DsNameRequest1_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsNameString(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsNameRequest1_names,0);

	return offset;
}

int
drsuapi_dissect_struct_DsNameRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameRequest1);
	}

	offset = drsuapi_dissect_element_DsNameRequest1_codepage(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameRequest1_language(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameRequest1_format_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameRequest1_format_offered(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameRequest1_format_desired(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameRequest1_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameRequest1_names(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsNameRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsNameRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsNameRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsNameRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsNameRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsNameRequest, &item, "drsuapi_DsNameRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsNameRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	drsuapi_DsNameStatus status; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *dns_domain_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *result_name; */
/* IDL: } */

static int
drsuapi_dissect_element_DsNameInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsNameStatus(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameInfo1_status, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameInfo1_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameInfo1_dns_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Domain Name (uint16)",hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name);

	return offset;
}

static int
drsuapi_dissect_element_DsNameInfo1_dns_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsNameInfo1_result_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameInfo1_result_name_, NDR_POINTER_UNIQUE, "Pointer to Result Name (uint16)",hf_drsuapi_drsuapi_DsNameInfo1_result_name);

	return offset;
}

static int
drsuapi_dissect_element_DsNameInfo1_result_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsNameInfo1_result_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_DsNameInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameInfo1);
	}

	offset = drsuapi_dissect_element_DsNameInfo1_status(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameInfo1_dns_domain_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameInfo1_result_name(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsNameInfo1 *array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsNameCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsNameCtr1_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsNameCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsNameInfo1)",hf_drsuapi_drsuapi_DsNameCtr1_array);

	return offset;
}

static int
drsuapi_dissect_element_DsNameCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameCtr1_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsNameCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsNameInfo1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsNameCtr1_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsNameCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameCtr1);
	}

	offset = drsuapi_dissect_element_DsNameCtr1_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsNameCtr1_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] [unique(1)] drsuapi_DsNameCtr1 *ctr1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsNameCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsNameCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (drsuapi_DsNameCtr1)",hf_drsuapi_drsuapi_DsNameCtr_ctr1);

	return offset;
}

static int
drsuapi_dissect_element_DsNameCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsNameCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsNameCtr_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_DsNameCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsNameCtr, &item, "drsuapi_DsNameCtr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsNameCtr_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_SPN_OPERATION_ADD=0, */
/* IDL: 	DRSUAPI_DS_SPN_OPERATION_REPLACE=1, */
/* IDL: 	DRSUAPI_DS_SPN_OPERATION_DELETE=2, */
/* IDL: } */

int
drsuapi_dissect_enum_DsSpnOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsSpnOperation operation; */
/* IDL: 	uint32 unknown1; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *object_dn; */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsNameString *spn_names; */
/* IDL: } */

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsSpnOperation(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names_, NDR_POINTER_UNIQUE, "Pointer to Spn Names (drsuapi_DsNameString)",hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names__);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsNameString(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names,0);

	return offset;
}

int
drsuapi_dissect_struct_DsWriteAccountSpnRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1);
	}

	offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_operation(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_unknown1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsWriteAccountSpnRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsWriteAccountSpnRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsWriteAccountSpnRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsWriteAccountSpnRequest, &item, "drsuapi_DsWriteAccountSpnRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsWriteAccountSpnRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	WERROR status; */
/* IDL: } */

static int
drsuapi_dissect_element_DsWriteAccountSpnResult1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsWriteAccountSpnResult1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsWriteAccountSpnResult1);
	}

	offset = drsuapi_dissect_element_DsWriteAccountSpnResult1_status(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsWriteAccountSpnResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsWriteAccountSpnResult1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1,0);

	return offset;
}

static int
drsuapi_dissect_DsWriteAccountSpnResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsWriteAccountSpnResult, &item, "drsuapi_DsWriteAccountSpnResult");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_4_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsWriteAccountSpnResult_res1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *server_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *domain_dn; */
/* IDL: 	uint32 commit; */
/* IDL: } */

static int
drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn_, NDR_POINTER_UNIQUE, "Pointer to Domain Dn (uint16)",hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServerRequest1_commit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsRemoveDSServerRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsRemoveDSServerRequest1);
	}

	offset = drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsRemoveDSServerRequest1_commit(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsRemoveDSServerRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsRemoveDSServerRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsRemoveDSServerRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsRemoveDSServerRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsRemoveDSServerRequest, &item, "drsuapi_DsRemoveDSServerRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsRemoveDSServerRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	uint32 last_dc_in_domain; */
/* IDL: } */

static int
drsuapi_dissect_element_DsRemoveDSServerResult1_last_dc_in_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsRemoveDSServerResult1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsRemoveDSServerResult1);
	}

	offset = drsuapi_dissect_element_DsRemoveDSServerResult1_last_dc_in_domain(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsRemoveDSServerResult1 res1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsRemoveDSServerResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsRemoveDSServerResult1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1,0);

	return offset;
}

static int
drsuapi_dissect_DsRemoveDSServerResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsRemoveDSServerResult, &item, "drsuapi_DsRemoveDSServerResult");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_4_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsRemoveDSServerResult_res1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: enum { */
/* IDL: 	DRSUAPI_DC_INFO_CTR_1=1, */
/* IDL: 	DRSUAPI_DC_INFO_CTR_2=2, */
/* IDL: 	DRSUAPI_DC_INFO_CTR_3=3, */
/* IDL: 	DRSUAPI_DC_CONNECTION_CTR_01=0xFFFFFFFF, */
/* IDL: } */

int
drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *domain_name; */
/* IDL: 	drsuapi_DsGetDCInfoCtrLevels level; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoRequest1_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfoRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoRequest1);
	}

	offset = drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfoRequest1_level(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetDCInfoRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfoRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetDCInfoRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetDCInfoRequest, &item, "drsuapi_DsGetDCInfoRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetDCInfoRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *netbios_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *dns_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *site_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *computer_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *server_dn; */
/* IDL: 	uint32 is_pdc; */
/* IDL: 	uint32 is_enabled; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfo1_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo1_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo1_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo1_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_site_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_site_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo1_computer_dn_, NDR_POINTER_UNIQUE, "Pointer to Computer Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo1_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo1_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfo1);
	}

	offset = drsuapi_dissect_element_DsGetDCInfo1_netbios_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo1_dns_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo1_site_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo1_computer_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo1_server_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo1_is_pdc(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo1_is_enabled(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsGetDCInfo1 *array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfoCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCInfo1)",hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoCtr1_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfo1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfoCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr1);
	}

	offset = drsuapi_dissect_element_DsGetDCInfoCtr1_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfoCtr1_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *netbios_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *dns_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *site_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *site_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *computer_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *server_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *ntds_dn; */
/* IDL: 	uint32 is_pdc; */
/* IDL: 	uint32 is_enabled; */
/* IDL: 	uint32 is_gc; */
/* IDL: 	GUID site_guid; */
/* IDL: 	GUID computer_guid; */
/* IDL: 	GUID server_guid; */
/* IDL: 	GUID ntds_guid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfo2_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_site_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_site_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_site_dn_, NDR_POINTER_UNIQUE, "Pointer to Site Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_computer_dn_, NDR_POINTER_UNIQUE, "Pointer to Computer Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo2_ntds_dn_, NDR_POINTER_UNIQUE, "Pointer to Ntds Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo2_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfo2);
	}

	offset = drsuapi_dissect_element_DsGetDCInfo2_netbios_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_dns_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_site_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_site_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_computer_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_server_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_ntds_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_is_pdc(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_is_enabled(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_is_gc(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_computer_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_server_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo2_ntds_guid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsGetDCInfo2 *array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfoCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCInfo2)",hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoCtr2_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfo2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfoCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr2);
	}

	offset = drsuapi_dissect_element_DsGetDCInfoCtr2_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfoCtr2_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *netbios_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *dns_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *site_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *site_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *computer_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *server_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *ntds_dn; */
/* IDL: 	uint32 is_pdc; */
/* IDL: 	uint32 is_enabled; */
/* IDL: 	uint32 is_gc; */
/* IDL: 	uint32 is_rodc; */
/* IDL: 	GUID site_guid; */
/* IDL: 	GUID computer_guid; */
/* IDL: 	GUID server_guid; */
/* IDL: 	GUID ntds_guid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfo3_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_site_name);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_site_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_site_dn_, NDR_POINTER_UNIQUE, "Pointer to Site Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_computer_dn_, NDR_POINTER_UNIQUE, "Pointer to Computer Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfo3_ntds_dn_, NDR_POINTER_UNIQUE, "Pointer to Ntds Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_is_rodc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfo3_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfo3);
	}

	offset = drsuapi_dissect_element_DsGetDCInfo3_netbios_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_dns_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_site_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_site_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_computer_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_server_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_ntds_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_is_pdc(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_is_enabled(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_is_gc(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_is_rodc(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_site_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_computer_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_server_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfo3_ntds_guid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsGetDCInfo3 *array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfoCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoCtr3_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCInfo3)",hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCInfoCtr3_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfo3(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCInfoCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr3);
	}

	offset = drsuapi_dissect_element_DsGetDCInfoCtr3_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCInfoCtr3_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[flag(LIBNDR_FLAG_BIGENDIAN)] ipv4address client_ip_address; */
/* IDL: 	uint32 unknown2; */
/* IDL: 	uint32 connection_time; */
/* IDL: 	uint32 unknown4; */
/* IDL: 	uint32 unknown5; */
/* IDL: 	uint32 unknown6; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *client_account; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCConnection01_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	proto_tree_add_item(tree, hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4;

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_connection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_client_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCConnection01_client_account_, NDR_POINTER_UNIQUE, "Pointer to Client Account (uint16)",hf_drsuapi_drsuapi_DsGetDCConnection01_client_account);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnection01_client_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCConnection01_client_account, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCConnection01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCConnection01);
	}

	offset = drsuapi_dissect_element_DsGetDCConnection01_client_ip_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnection01_unknown2(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnection01_connection_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnection01_unknown4(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnection01_unknown5(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnection01_unknown6(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnection01_client_account(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsGetDCConnection01 *array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCConnectionCtr01_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnectionCtr01_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCConnectionCtr01_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCConnection01)",hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnectionCtr01_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDCConnectionCtr01_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCConnectionCtr01_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCConnection01(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetDCConnectionCtr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCConnectionCtr01);
	}

	offset = drsuapi_dissect_element_DsGetDCConnectionCtr01_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetDCConnectionCtr01_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(drsuapi_DsGetDCInfoCtrLevels)] union { */
/* IDL: [case(DRSUAPI_DC_INFO_CTR_1)] [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; */
/* IDL: [case(DRSUAPI_DC_INFO_CTR_2)] [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; */
/* IDL: [case(DRSUAPI_DC_INFO_CTR_3)] [case(DRSUAPI_DC_INFO_CTR_3)] drsuapi_DsGetDCInfoCtr3 ctr3; */
/* IDL: [case(DRSUAPI_DC_CONNECTION_CTR_01)] [case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetDCInfoCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfoCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfoCtr2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCInfoCtr3(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3,0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDCInfoCtr_ctr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetDCConnectionCtr01(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01,0);

	return offset;
}

static int
drsuapi_dissect_DsGetDCInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetDCInfoCtr, &item, "drsuapi_DsGetDCInfoCtr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case DRSUAPI_DC_INFO_CTR_1:
			offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DC_INFO_CTR_2:
			offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr2(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DC_INFO_CTR_3:
			offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr3(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DC_CONNECTION_CTR_01:
			offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr01(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectListItem *next_object; */
/* IDL: 	drsuapi_DsReplicaObject object; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjectListItem_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjectListItem_next_object_, NDR_POINTER_UNIQUE, "Pointer to Next Object (drsuapi_DsReplicaObjectListItem)",hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectListItem_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObject(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItem_object,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjectListItem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectListItem);
	}

	offset = drsuapi_dissect_element_DsReplicaObjectListItem_next_object(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectListItem_object(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_DIRERR_OK=0, */
/* IDL: 	DRSUAPI_DIRERR_ATTRIBUTE=1, */
/* IDL: 	DRSUAPI_DIRERR_NAME=2, */
/* IDL: 	DRSUAPI_DIRERR_REFERRAL=3, */
/* IDL: 	DRSUAPI_DIRERR_SECURITY=4, */
/* IDL: 	DRSUAPI_DIRERR_SERVICE=5, */
/* IDL: 	DRSUAPI_DIRERR_UPDATE=6, */
/* IDL: 	DRSUAPI_DIRERR_SYSTEM=7, */
/* IDL: } */

int
drsuapi_dissect_enum_DsAddEntry_DirErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsReplicaObjectListItem first_object; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryRequest2_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectListItem(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryRequest2);
	}

	offset = drsuapi_dissect_element_DsAddEntryRequest2_first_object(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_SECBUFFER_EMPTY=0x00000000, */
/* IDL: 	DRSUAPI_SECBUFFER_DATA=0x00000001, */
/* IDL: 	DRSUAPI_SECBUFFER_TOKEN=0x00000002, */
/* IDL: 	DRSUAPI_SECBUFFER_PKG_PARAMS=0x00000003, */
/* IDL: 	DRSUAPI_SECBUFFER_MISSING=0x00000004, */
/* IDL: 	DRSUAPI_SECBUFFER_EXTRA=0x00000005, */
/* IDL: 	DRSUAPI_SECBUFFER_STREAM_TRAILER=0x00000006, */
/* IDL: 	DRSUAPI_SECBUFFER_STREAM_HEADER=0x00000007, */
/* IDL: 	DRSUAPI_SECBUFFER_READONLY=0x80000000, */
/* IDL: } */

int
drsuapi_dissect_enum_SecBufferType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 buf_size; */
/* IDL: 	drsuapi_SecBufferType buf_type; */
/* IDL: 	[size_is(buf_size)] [unique(1)] uint8 *buffer; */
/* IDL: } */

static int
drsuapi_dissect_element_SecBuffer_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_SecBuffer_buf_size, 0);

	return offset;
}

static int
drsuapi_dissect_element_SecBuffer_buf_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_SecBufferType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_SecBuffer_buf_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_SecBuffer_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_SecBuffer_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_drsuapi_drsuapi_SecBuffer_buffer);

	return offset;
}

static int
drsuapi_dissect_element_SecBuffer_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_SecBuffer_buffer__);

	return offset;
}

static int
drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_SecBuffer_buffer, 0);

	return offset;
}

int
drsuapi_dissect_struct_SecBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_SecBuffer);
	}

	offset = drsuapi_dissect_element_SecBuffer_buf_size(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_SecBuffer_buf_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_SecBuffer_buffer(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(0)] uint32 version; */
/* IDL: 	[range(0,10000)] uint32 buff_count; */
/* IDL: 	[size_is(buff_count)] [unique(1)] drsuapi_SecBuffer *buffers; */
/* IDL: } */

static int
drsuapi_dissect_element_SecBufferDesc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_SecBufferDesc_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_SecBufferDesc_buff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_SecBufferDesc_buff_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_SecBufferDesc_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_SecBufferDesc_buffers_, NDR_POINTER_UNIQUE, "Pointer to Buffers (drsuapi_SecBuffer)",hf_drsuapi_drsuapi_SecBufferDesc_buffers);

	return offset;
}

static int
drsuapi_dissect_element_SecBufferDesc_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_SecBufferDesc_buffers__);

	return offset;
}

static int
drsuapi_dissect_element_SecBufferDesc_buffers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_SecBuffer(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_SecBufferDesc_buffers,0);

	return offset;
}

int
drsuapi_dissect_struct_SecBufferDesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_SecBufferDesc);
	}

	offset = drsuapi_dissect_element_SecBufferDesc_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_SecBufferDesc_buff_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_SecBufferDesc_buffers(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsReplicaObjectListItem first_object; */
/* IDL: 	[unique(1)] drsuapi_SecBufferDesc *client_creds; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryRequest3_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectListItem(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryRequest3_client_creds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryRequest3_client_creds_, NDR_POINTER_UNIQUE, "Pointer to Client Creds (drsuapi_SecBufferDesc)",hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryRequest3_client_creds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_SecBufferDesc(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryRequest3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryRequest3);
	}

	offset = drsuapi_dissect_element_DsAddEntryRequest3_first_object(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryRequest3_client_creds(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(2)] [case(2)] drsuapi_DsAddEntryRequest2 req2; */
/* IDL: [case(3)] [case(3)] drsuapi_DsAddEntryRequest3 req3; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryRequest2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryRequest_req2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryRequest_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryRequest3(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryRequest_req3,0);

	return offset;
}

static int
drsuapi_dissect_DsAddEntryRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsAddEntryRequest, &item, "drsuapi_DsAddEntryRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 2:
			offset = drsuapi_dissect_element_DsAddEntryRequest_req2(tvb, offset, pinfo, tree, di, drep);
		break;

		case 3:
			offset = drsuapi_dissect_element_DsAddEntryRequest_req3(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	uint32 dsid; */
/* IDL: 	WERROR extended_err; */
/* IDL: 	uint32 extended_data; */
/* IDL: 	uint16 problem; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryErrorInfoX_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfoX_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfoX);
	}

	offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_dsid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_err(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_problem(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 dsid; */
/* IDL: 	WERROR extended_err; */
/* IDL: 	uint32 extended_data; */
/* IDL: 	uint16 problem; */
/* IDL: 	drsuapi_DsAttributeId attid; */
/* IDL: 	uint32 is_val_returned; */
/* IDL: 	drsuapi_DsAttributeValue attr_val; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_is_val_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attr_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAttributeValue(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntry_AttrErr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_dsid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_err(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_problem(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_is_val_returned(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attr_val(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsAddEntry_AttrErrListItem_V1 *next; */
/* IDL: 	drsuapi_DsAddEntry_AttrErr_V1 err_data; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next_, NDR_POINTER_UNIQUE, "Pointer to Next (drsuapi_DsAddEntry_AttrErrListItem_V1)",hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntry_AttrErr_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntry_AttrErrListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_err_data(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *id; */
/* IDL: 	uint32 count; */
/* IDL: 	drsuapi_DsAddEntry_AttrErrListItem_V1 first; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id_, NDR_POINTER_UNIQUE, "Pointer to Id (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_first(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntry_AttrErrListItem_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryErrorInfo_Attr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_first(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 dsid; */
/* IDL: 	WERROR extended_err; */
/* IDL: 	uint32 extended_data; */
/* IDL: 	uint16 problem; */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *id_matched; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched_, NDR_POINTER_UNIQUE, "Pointer to Id Matched (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryErrorInfo_Name_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_dsid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_err(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_problem(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[value(83)] uint8 name_res; */
/* IDL: 	[value(0)] uint8 unused_pad; */
/* IDL: 	[value(0)] uint16 next_rdn; */
/* IDL: } */

static int
drsuapi_dissect_element_NameResOp_V1_name_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_NameResOp_V1_name_res, 0);

	return offset;
}

static int
drsuapi_dissect_element_NameResOp_V1_unused_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_NameResOp_V1_unused_pad, 0);

	return offset;
}

static int
drsuapi_dissect_element_NameResOp_V1_next_rdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_NameResOp_V1_next_rdn, 0);

	return offset;
}

int
drsuapi_dissect_struct_NameResOp_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_2_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_NameResOp_V1);
	}

	offset = drsuapi_dissect_element_NameResOp_V1_name_res(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_NameResOp_V1_unused_pad(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_NameResOp_V1_next_rdn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_2_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_CH_REFTYPE_SUPERIOR=0x0000, */
/* IDL: 	DRSUAPI_CH_REFTYPE_SUBORDINATE=0x0001, */
/* IDL: 	DRSUAPI_CH_REFTYPE_NSSR=0x0002, */
/* IDL: 	DRSUAPI_CH_REFTYPE_CROSS=0x0003, */
/* IDL: } */

int
drsuapi_dissect_enum_DsAddEntry_RefType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint16 *param _U_)
{
	guint16 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_SE_CHOICE_BASE_ONLY=0x00, */
/* IDL: 	DRSUAPI_SE_CHOICE_IMMED_CHLDRN=0x01, */
/* IDL: 	DRSUAPI_SE_CHOICE_WHOLE_SUBTREE=0x02, */
/* IDL: } */

int
drsuapi_dissect_enum_DsAddEntry_ChoiceType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint8 *param _U_)
{
	guint8 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsaAddressListItem_V1 *next; */
/* IDL: 	[unique(1)] lsa_String *address; */
/* IDL: } */

static int
drsuapi_dissect_element_DsaAddressListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsaAddressListItem_V1_next_, NDR_POINTER_UNIQUE, "Pointer to Next (drsuapi_DsaAddressListItem_V1)",hf_drsuapi_drsuapi_DsaAddressListItem_V1_next);

	return offset;
}

static int
drsuapi_dissect_element_DsaAddressListItem_V1_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsaAddressListItem_V1_address_, NDR_POINTER_UNIQUE, "Pointer to Address (lsa_String)",hf_drsuapi_drsuapi_DsaAddressListItem_V1_address);

	return offset;
}

static int
drsuapi_dissect_element_DsaAddressListItem_V1_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset=dissect_ndr_counted_string(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsaAddressListItem_V1_address, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsaAddressListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsaAddressListItem_V1);
	}

	offset = drsuapi_dissect_element_DsaAddressListItem_V1_next(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsaAddressListItem_V1_address(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *id_target; */
/* IDL: 	drsuapi_NameResOp_V1 op_state; */
/* IDL: 	[value(0)] uint16 rdn_alias; */
/* IDL: 	[value(0)] uint16 rdn_internal; */
/* IDL: 	drsuapi_DsAddEntry_RefType ref_type; */
/* IDL: 	uint16 addr_list_count; */
/* IDL: 	[unique(1)] drsuapi_DsaAddressListItem_V1 *addr_list; */
/* IDL: 	[unique(1)] drsuapi_DsAddEntry_RefErrListItem_V1 *next; */
/* IDL: 	uint32 is_choice_set; */
/* IDL: 	drsuapi_DsAddEntry_ChoiceType choice; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target_, NDR_POINTER_UNIQUE, "Pointer to Id Target (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_op_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_NameResOp_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_ref_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAddEntry_RefType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_, NDR_POINTER_UNIQUE, "Pointer to Addr List (drsuapi_DsaAddressListItem_V1)",hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsaAddressListItem_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next_, NDR_POINTER_UNIQUE, "Pointer to Next (drsuapi_DsAddEntry_RefErrListItem_V1)",hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_is_choice_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_choice(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAddEntry_ChoiceType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntry_RefErrListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_op_state(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_alias(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_internal(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_ref_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_is_choice_set(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_choice(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 dsid; */
/* IDL: 	WERROR extended_err; */
/* IDL: 	uint32 extended_data; */
/* IDL: 	drsuapi_DsAddEntry_RefErrListItem_V1 refer; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_refer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntry_RefErrListItem_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryErrorInfo_Referr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_dsid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_err(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_refer(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsAddEntryErrorInfo_Attr_V1 attr_err; */
/* IDL: [case(2)] [case(2)] drsuapi_DsAddEntryErrorInfo_Name_V1 name_err; */
/* IDL: [case(3)] [case(3)] drsuapi_DsAddEntryErrorInfo_Referr_V1 referral_err; */
/* IDL: [case(4)] [case(4)] drsuapi_DsAddEntryErrorInfoX security_err; */
/* IDL: [case(5)] [case(5)] drsuapi_DsAddEntryErrorInfoX service_err; */
/* IDL: [case(6)] [case(6)] drsuapi_DsAddEntryErrorInfoX update_err; */
/* IDL: [case(7)] [case(7)] drsuapi_DsAddEntryErrorInfoX system_err; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_attr_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfo_Attr_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_name_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfo_Name_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_referral_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfo_Referr_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_security_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_service_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_update_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryErrorInfo_system_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err,0);

	return offset;
}

static int
drsuapi_dissect_DsAddEntryErrorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsAddEntryErrorInfo, &item, "drsuapi_DsAddEntryErrorInfo");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_attr_err(tvb, offset, pinfo, tree, di, drep);
		break;

		case 2:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_name_err(tvb, offset, pinfo, tree, di, drep);
		break;

		case 3:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_referral_err(tvb, offset, pinfo, tree, di, drep);
		break;

		case 4:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_security_err(tvb, offset, pinfo, tree, di, drep);
		break;

		case 5:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_service_err(tvb, offset, pinfo, tree, di, drep);
		break;

		case 6:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_update_err(tvb, offset, pinfo, tree, di, drep);
		break;

		case 7:
			offset = drsuapi_dissect_element_DsAddEntryErrorInfo_system_err(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	WERROR status; */
/* IDL: 	drsuapi_DsAddEntry_DirErr dir_err; */
/* IDL: 	[switch_is(dir_err)] drsuapi_DsAddEntryErrorInfo info; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntry_ErrData_V1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_ErrData_V1_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *dir_err)
{
	offset = drsuapi_dissect_enum_DsAddEntry_DirErr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err, dir_err);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_ErrData_V1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *dir_err)
{
	offset = drsuapi_dissect_DsAddEntryErrorInfo(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info, *dir_err);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntry_ErrData_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	guint32 dir_err = 0;
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1);
	}

	offset = drsuapi_dissect_element_DsAddEntry_ErrData_V1_status(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_ErrData_V1_dir_err(tvb, offset, pinfo, tree, di, drep, &dir_err);

	offset = drsuapi_dissect_element_DsAddEntry_ErrData_V1_info(tvb, offset, pinfo, tree, di, drep, &dir_err);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsAddEntry_ErrData_V1 v1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntry_ErrData_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntry_ErrData_V1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1,0);

	return offset;
}

static int
drsuapi_dissect_DsAddEntry_ErrData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsAddEntry_ErrData, &item, "drsuapi_DsAddEntry_ErrData");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsAddEntry_ErrData_v1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	GUID guid; */
/* IDL: 	dom_sid28 sid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier2_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjectIdentifier2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_SID28(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2);
	}

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier2_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjectIdentifier2_sid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *id; */
/* IDL: 	drsuapi_DsAddEntry_DirErr dir_err; */
/* IDL: 	uint32 dsid; */
/* IDL: 	WERROR extended_err; */
/* IDL: 	uint32 extended_data; */
/* IDL: 	uint16 problem; */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsReplicaObjectIdentifier2 *objects; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryCtr2_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryCtr2_id_, NDR_POINTER_UNIQUE, "Pointer to Id (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryCtr2_id);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryCtr2_id,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsAddEntry_DirErr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_problem, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryCtr2_objects_, NDR_POINTER_UNIQUE, "Pointer to Objects (drsuapi_DsReplicaObjectIdentifier2)",hf_drsuapi_drsuapi_DsAddEntryCtr2_objects);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryCtr2_objects__);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr2_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryCtr2_objects,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryCtr2);
	}

	offset = drsuapi_dissect_element_DsAddEntryCtr2_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_dir_err(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_dsid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_extended_err(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_extended_data(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_problem(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr2_objects(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[unique(1)] drsuapi_DsReplicaObjectIdentifier *id; */
/* IDL: 	uint32 err_ver; */
/* IDL: 	[switch_is(err_ver)] drsuapi_DsAddEntry_ErrData err_data; */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	[size_is(count)] [unique(1)] drsuapi_DsReplicaObjectIdentifier2 *objects; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryCtr3_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryCtr3_id_, NDR_POINTER_UNIQUE, "Pointer to Id (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryCtr3_id);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryCtr3_id,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_err_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *err_ver)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver, *err_ver);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint32 *err_ver)
{
	offset = drsuapi_dissect_DsAddEntry_ErrData(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data, *err_ver);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntryCtr3_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryCtr3_objects_, NDR_POINTER_UNIQUE, "Pointer to Objects (drsuapi_DsReplicaObjectIdentifier2)",hf_drsuapi_drsuapi_DsAddEntryCtr3_objects);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntryCtr3_objects__);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr3_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryCtr3_objects,0);

	return offset;
}

int
drsuapi_dissect_struct_DsAddEntryCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	guint32 err_ver = 0;
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryCtr3);
	}

	offset = drsuapi_dissect_element_DsAddEntryCtr3_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr3_err_ver(tvb, offset, pinfo, tree, di, drep, &err_ver);

	offset = drsuapi_dissect_element_DsAddEntryCtr3_err_data(tvb, offset, pinfo, tree, di, drep, &err_ver);

	offset = drsuapi_dissect_element_DsAddEntryCtr3_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsAddEntryCtr3_objects(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(2)] [case(2)] drsuapi_DsAddEntryCtr2 ctr2; */
/* IDL: [case(3)] [case(3)] drsuapi_DsAddEntryCtr3 ctr3; */
/* IDL: } */

static int
drsuapi_dissect_element_DsAddEntryCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryCtr2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntryCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsAddEntryCtr3(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3,0);

	return offset;
}

static int
drsuapi_dissect_DsAddEntryCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsAddEntryCtr, &item, "drsuapi_DsAddEntryCtr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 2:
			offset = drsuapi_dissect_element_DsAddEntryCtr_ctr2(tvb, offset, pinfo, tree, di, drep);
		break;

		case 3:
			offset = drsuapi_dissect_element_DsAddEntryCtr_ctr3(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: bitmap { */
/* IDL: 	DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION =  0x00000001 , */
/* IDL: 	DRSUAPI_DS_EXECUTE_KCC_DAMPED =  0x00000002 , */
/* IDL: } */

int
drsuapi_dissect_bitmap_DsExecuteKCCFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item;
	static int * const drsuapi_drsuapi_DsExecuteKCCFlags_fields[] = {
		&hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION,
		&hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED,
		NULL
	};
	guint32 flags;
	ALIGN_TO_4_BYTES;

	item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
				ett_drsuapi_drsuapi_DsExecuteKCCFlags, drsuapi_drsuapi_DsExecuteKCCFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);

	if (!flags)
		proto_item_append_text(item, ": (No values set)");

	if (flags & (~0x00000003)) {
		flags &= (~0x00000003);
		proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 taskID; */
/* IDL: 	drsuapi_DsExecuteKCCFlags flags; */
/* IDL: } */

static int
drsuapi_dissect_element_DsExecuteKCC1_taskID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsExecuteKCC1_taskID, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsExecuteKCC1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DsExecuteKCCFlags(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsExecuteKCC1_flags, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsExecuteKCC1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsExecuteKCC1);
	}

	offset = drsuapi_dissect_element_DsExecuteKCC1_taskID(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsExecuteKCC1_flags(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsExecuteKCC1 ctr1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsExecuteKCCRequest_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsExecuteKCC1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_DsExecuteKCCRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsExecuteKCCRequest, &item, "drsuapi_DsExecuteKCCRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_4_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsExecuteKCCRequest_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_REPLICA_GET_INFO=1, */
/* IDL: 	DRSUAPI_DS_REPLICA_GET_INFO2=2, */
/* IDL: } */

int
drsuapi_dissect_enum_DsReplicaGetInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_NEIGHBORS=0, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_CURSORS=1, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA=2, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES=3, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES=4, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_PENDING_OPS=5, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA=6, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_CURSORS2=7, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_CURSORS3=8, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2=9, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2=10, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_REPSTO=-2, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS=-4, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1=-5, */
/* IDL: 	DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS=-6, */
/* IDL: } */

int
drsuapi_dissect_enum_DsReplicaInfoType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
	guint32 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsReplicaInfoType info_type; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *object_dn; */
/* IDL: 	GUID source_dsa_guid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest1_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsReplicaInfoType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaGetInfoRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1);
	}

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest1_info_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest1_source_dsa_guid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	drsuapi_DsReplicaInfoType info_type; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *object_dn; */
/* IDL: 	GUID source_dsa_guid; */
/* IDL: 	uint32 flags; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *attribute_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *value_dn_str; */
/* IDL: 	uint32 enumeration_context; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsReplicaInfoType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str_, NDR_POINTER_UNIQUE, "Pointer to Value Dn Str (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest2_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaGetInfoRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2);
	}

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_info_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_source_dsa_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_enumeration_context(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { */
/* IDL: [case(DRSUAPI_DS_REPLICA_GET_INFO)] [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; */
/* IDL: [case(DRSUAPI_DS_REPLICA_GET_INFO2)] [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaGetInfoRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfoRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaGetInfoRequest2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaGetInfoRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaGetInfoRequest, &item, "drsuapi_DsReplicaGetInfoRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case DRSUAPI_DS_REPLICA_GET_INFO:
			offset = drsuapi_dissect_element_DsReplicaGetInfoRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_GET_INFO2:
			offset = drsuapi_dissect_element_DsReplicaGetInfoRequest_req2(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *naming_context_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *source_dsa_obj_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *source_dsa_address; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *transport_obj_dn; */
/* IDL: 	drsuapi_DrsOptions replica_flags; */
/* IDL: 	uint32 reserved; */
/* IDL: 	GUID naming_context_obj_guid; */
/* IDL: 	GUID source_dsa_obj_guid; */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	GUID transport_obj_guid; */
/* IDL: 	hyper tmp_highest_usn; */
/* IDL: 	hyper highest_usn; */
/* IDL: 	NTTIME last_success; */
/* IDL: 	NTTIME last_attempt; */
/* IDL: 	WERROR result_last_attempt; */
/* IDL: 	uint32 consecutive_sync_failures; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn_, NDR_POINTER_UNIQUE, "Pointer to Naming Context Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Transport Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_naming_context_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbour_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaNeighbour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaNeighbour);
	}

	offset = drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_replica_flags(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_naming_context_obj_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_tmp_highest_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_highest_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_last_success(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_last_attempt(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_result_last_attempt(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbour_consecutive_sync_failures(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 reserved; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaNeighbour array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaNeighbourCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbourCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbourCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaNeighbourCtr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaNeighbourCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaNeighbour(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaNeighbourCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaNeighbourCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbourCtr_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaNeighbourCtr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 reserved; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaCursor array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursorCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaCursorCtr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursorCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaCursorCtr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursorCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursorCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaCursorCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursorCtr_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursorCtr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *attribute_name; */
/* IDL: 	uint32 version; */
/* IDL: 	NTTIME originating_change_time; */
/* IDL: 	GUID originating_invocation_id; */
/* IDL: 	hyper originating_usn; */
/* IDL: 	hyper local_usn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaData);
	}

	offset = drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData_originating_change_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData_originating_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData_originating_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData_local_usn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 reserved; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaObjMetaData array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaDataCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjMetaData(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaObjMetaDataCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaDataCtr_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *dsa_obj_dn; */
/* IDL: 	GUID dsa_obj_guid; */
/* IDL: 	NTTIME first_failure; */
/* IDL: 	uint32 num_failures; */
/* IDL: 	WERROR last_result; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailure_first_failure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailure_num_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailure_last_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaKccDsaFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaKccDsaFailure);
	}

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_first_failure(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_num_failures(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_last_result(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 reserved; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaKccDsaFailure array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaKccDsaFailure(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: enum { */
/* IDL: 	DRSUAPI_DS_REPLICA_OP_TYPE_SYNC=0, */
/* IDL: 	DRSUAPI_DS_REPLICA_OP_TYPE_ADD=1, */
/* IDL: 	DRSUAPI_DS_REPLICA_OP_TYPE_DELETE=2, */
/* IDL: 	DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY=3, */
/* IDL: 	DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS=4, */
/* IDL: } */

int
drsuapi_dissect_enum_DsReplicaOpType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_)
{
	guint1632 parameter=0;
	if (param) {
		parameter = *param;
	}
	offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
	if (param) {
		*param = parameter;
	}
	return offset;
}


/* IDL: struct { */
/* IDL: 	NTTIME operation_start; */
/* IDL: 	uint32 serial_num; */
/* IDL: 	uint32 priority; */
/* IDL: 	drsuapi_DsReplicaOpType operation_type; */
/* IDL: 	drsuapi_DrsOptions options; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *nc_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *remote_dsa_obj_dn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *remote_dsa_address; */
/* IDL: 	GUID nc_obj_guid; */
/* IDL: 	GUID remote_dsa_obj_guid; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaOp_operation_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_operation_start);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_serial_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_serial_num, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_priority, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_operation_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsReplicaOpType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_operation_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_options, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_nc_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOp_nc_dn_, NDR_POINTER_UNIQUE, "Pointer to Nc Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaOp_nc_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_nc_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaOp_nc_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Remote Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_remote_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOp_remote_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Remote Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_remote_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_nc_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOp);
	}

	offset = drsuapi_dissect_element_DsReplicaOp_operation_start(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_serial_num(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_priority(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_operation_type(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_options(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_nc_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_remote_dsa_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_nc_obj_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_guid(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	NTTIME time; */
/* IDL: 	uint32 count; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaOp array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaOpCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOpCtr_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOpCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaOpCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOpCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaOpCtr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaOpCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOp(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaOpCtr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaOpCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOpCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaOpCtr_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOpCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaOpCtr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *attribute_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *object_dn; */
/* IDL: 	[value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; */
/* IDL: 	[unique(1)] DATA_BLOB *binary; */
/* IDL: 	NTTIME deleted; */
/* IDL: 	NTTIME created; */
/* IDL: 	uint32 version; */
/* IDL: 	NTTIME originating_change_time; */
/* IDL: 	GUID originating_invocation_id; */
/* IDL: 	hyper originating_usn; */
/* IDL: 	hyper local_usn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData_binary_, NDR_POINTER_UNIQUE, "Pointer to Binary (DATA_BLOB)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn, NULL);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAttrValMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaData);
	}

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData___ndr_size_binary(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_binary(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_deleted(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_created(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_change_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_local_usn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 enumeration_context; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaAttrValMetaData array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAttrValMetaData(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAttrValMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr);
	}

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_enumeration_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 enumeration_context; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaCursor2 array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursor2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaCursor2Ctr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursor2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor2Ctr);
	}

	offset = drsuapi_dissect_element_DsReplicaCursor2Ctr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2Ctr_enumeration_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor2Ctr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	GUID source_dsa_invocation_id; */
/* IDL: 	hyper highest_usn; */
/* IDL: 	NTTIME last_sync_success; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *source_dsa_obj_dn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursor3_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursor3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor3);
	}

	offset = drsuapi_dissect_element_DsReplicaCursor3_source_dsa_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor3_highest_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor3_last_sync_success(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 enumeration_context; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaCursor3 array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaCursor3Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaCursor3Ctr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaCursor3Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor3(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaCursor3Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor3Ctr);
	}

	offset = drsuapi_dissect_element_DsReplicaCursor3Ctr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor3Ctr_enumeration_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaCursor3Ctr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *attribute_name; */
/* IDL: 	uint32 version; */
/* IDL: 	NTTIME originating_change_time; */
/* IDL: 	GUID originating_invocation_id; */
/* IDL: 	hyper originating_usn; */
/* IDL: 	hyper local_usn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *originating_dsa_dn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn_, NDR_POINTER_UNIQUE, "Pointer to Originating Dsa Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjMetaData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaData2);
	}

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_change_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_local_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 enumeration_context; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaObjMetaData2 array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjMetaData2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaObjMetaData2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr);
	}

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_enumeration_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *attribute_name; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *object_dn; */
/* IDL: 	[value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; */
/* IDL: 	[unique(1)] DATA_BLOB *binary; */
/* IDL: 	NTTIME deleted; */
/* IDL: 	NTTIME created; */
/* IDL: 	uint32 version; */
/* IDL: 	NTTIME originating_change_time; */
/* IDL: 	GUID originating_invocation_id; */
/* IDL: 	hyper originating_usn; */
/* IDL: 	hyper local_usn; */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *originating_dsa_dn; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary_, NDR_POINTER_UNIQUE, "Pointer to Binary (DATA_BLOB)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn_, NDR_POINTER_UNIQUE, "Pointer to Originating Dsa Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAttrValMetaData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2);
	}

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2___ndr_size_binary(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_deleted(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_created(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_version(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_change_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_invocation_id(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_local_usn(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	uint32 count; */
/* IDL: 	uint32 enumeration_context; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAttrValMetaData2(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaAttrValMetaData2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr);
	}

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	hyper u1; */
/* IDL: 	uint32 u2; */
/* IDL: 	uint32 u3; */
/* IDL: 	GUID bind_guid; */
/* IDL: 	NTTIME_1sec bind_time; */
/* IDL: 	[flag(LIBNDR_FLAG_BIGENDIAN)] ipv4address client_ip_address; */
/* IDL: 	uint32 u5; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaConnection04_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u1, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u2, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u3, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04_bind_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	proto_tree_add_item(tree, hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4;

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u5, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaConnection04(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaConnection04);
	}

	offset = drsuapi_dissect_element_DsReplicaConnection04_u1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04_u2(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04_u3(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04_bind_guid(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04_bind_time(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04_client_ip_address(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04_u5(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 count; */
/* IDL: 	uint32 reserved; */
/* IDL: 	[size_is(count)] drsuapi_DsReplicaConnection04 array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaConnection04Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaConnection04Ctr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaConnection04Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaConnection04(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplicaConnection04Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaConnection04Ctr);
	}

	offset = drsuapi_dissect_element_DsReplicaConnection04Ctr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04Ctr_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplicaConnection04Ctr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *str1; */
/* IDL: 	uint32 u1; */
/* IDL: 	uint32 u2; */
/* IDL: 	uint32 u3; */
/* IDL: 	uint32 u4; */
/* IDL: 	uint32 u5; */
/* IDL: 	hyper u6; */
/* IDL: 	uint32 u7; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplica06_str1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplica06_str1_, NDR_POINTER_UNIQUE, "Pointer to Str1 (uint16)",hf_drsuapi_drsuapi_DsReplica06_str1);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_str1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplica06_str1, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u1, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u2, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u3, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u4, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u5, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u6, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06_u7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06_u7, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplica06(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplica06);
	}

	offset = drsuapi_dissect_element_DsReplica06_str1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u1(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u2(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u3(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u4(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u5(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u6(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06_u7(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,256)] uint32 count; */
/* IDL: 	uint32 reserved; */
/* IDL: 	[size_is(count)] drsuapi_DsReplica06 array[*]; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplica06Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06Ctr_count, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplica06Ctr_reserved, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplica06Ctr_array_);

	return offset;
}

static int
drsuapi_dissect_element_DsReplica06Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplica06(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplica06Ctr_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsReplica06Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_8_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplica06Ctr);
	}

	offset = drsuapi_dissect_element_DsReplica06Ctr_count(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06Ctr_reserved(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsReplica06Ctr_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_8_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(drsuapi_DsReplicaInfoType)] union { */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] [unique(1)] drsuapi_DsReplicaNeighbourCtr *neighbours; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] [unique(1)] drsuapi_DsReplicaCursorCtr *cursors; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] [unique(1)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] [unique(1)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] [unique(1)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] [unique(1)] drsuapi_DsReplicaOpCtr *pendingops; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] [unique(1)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] [unique(1)] drsuapi_DsReplicaCursor2Ctr *cursors2; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] [unique(1)] drsuapi_DsReplicaCursor3Ctr *cursors3; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] [unique(1)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] [unique(1)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] [unique(1)] drsuapi_DsReplicaNeighbourCtr *repsto; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] [unique(1)] drsuapi_DsReplicaConnection04Ctr *clientctx; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] [unique(1)] drsuapi_DsReplicaCursorCtrEx *udv1; */
/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] [unique(1)] drsuapi_DsReplica06Ctr *srvoutgoingcalls; */
/* IDL: } */

static int
drsuapi_dissect_element_DsReplicaInfo_neighbours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_neighbours_, NDR_POINTER_UNIQUE, "Pointer to Neighbours (drsuapi_DsReplicaNeighbourCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_neighbours);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_neighbours_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_neighbours,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_cursors_, NDR_POINTER_UNIQUE, "Pointer to Cursors (drsuapi_DsReplicaCursorCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_cursors);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursorCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_cursors,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_objmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_objmetadata_, NDR_POINTER_UNIQUE, "Pointer to Objmetadata (drsuapi_DsReplicaObjMetaDataCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_objmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjMetaDataCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_connectfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_connectfailures_, NDR_POINTER_UNIQUE, "Pointer to Connectfailures (drsuapi_DsReplicaKccDsaFailuresCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_connectfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_linkfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_linkfailures_, NDR_POINTER_UNIQUE, "Pointer to Linkfailures (drsuapi_DsReplicaKccDsaFailuresCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_linkfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_pendingops(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_pendingops_, NDR_POINTER_UNIQUE, "Pointer to Pendingops (drsuapi_DsReplicaOpCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_pendingops);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_pendingops_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaOpCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_pendingops,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata_, NDR_POINTER_UNIQUE, "Pointer to Attrvalmetadata (drsuapi_DsReplicaAttrValMetaDataCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAttrValMetaDataCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_cursors2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_cursors2_, NDR_POINTER_UNIQUE, "Pointer to Cursors2 (drsuapi_DsReplicaCursor2Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_cursors2);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_cursors2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor2Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_cursors2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_cursors3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_cursors3_, NDR_POINTER_UNIQUE, "Pointer to Cursors3 (drsuapi_DsReplicaCursor3Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_cursors3);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_cursors3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursor3Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_cursors3,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_objmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_objmetadata2_, NDR_POINTER_UNIQUE, "Pointer to Objmetadata2 (drsuapi_DsReplicaObjMetaData2Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_objmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaObjMetaData2Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2_, NDR_POINTER_UNIQUE, "Pointer to Attrvalmetadata2 (drsuapi_DsReplicaAttrValMetaData2Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaAttrValMetaData2Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_repsto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_repsto_, NDR_POINTER_UNIQUE, "Pointer to Repsto (drsuapi_DsReplicaNeighbourCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_repsto);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_repsto_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_repsto,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_clientctx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_clientctx_, NDR_POINTER_UNIQUE, "Pointer to Clientctx (drsuapi_DsReplicaConnection04Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_clientctx);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_clientctx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaConnection04Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_clientctx,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_udv1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_udv1_, NDR_POINTER_UNIQUE, "Pointer to Udv1 (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsReplicaInfo_udv1);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_udv1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_udv1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls_, NDR_POINTER_UNIQUE, "Pointer to Srvoutgoingcalls (drsuapi_DsReplica06Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsReplica06Ctr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls,0);

	return offset;
}

static int
drsuapi_dissect_DsReplicaInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsReplicaInfo, &item, "drsuapi_DsReplicaInfo");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
			offset = drsuapi_dissect_element_DsReplicaInfo_neighbours(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_CURSORS:
			offset = drsuapi_dissect_element_DsReplicaInfo_cursors(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
			offset = drsuapi_dissect_element_DsReplicaInfo_objmetadata(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
			offset = drsuapi_dissect_element_DsReplicaInfo_connectfailures(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
			offset = drsuapi_dissect_element_DsReplicaInfo_linkfailures(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
			offset = drsuapi_dissect_element_DsReplicaInfo_pendingops(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
			offset = drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
			offset = drsuapi_dissect_element_DsReplicaInfo_cursors2(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
			offset = drsuapi_dissect_element_DsReplicaInfo_cursors3(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
			offset = drsuapi_dissect_element_DsReplicaInfo_objmetadata2(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
			offset = drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_REPSTO:
			offset = drsuapi_dissect_element_DsReplicaInfo_repsto(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
			offset = drsuapi_dissect_element_DsReplicaInfo_clientctx(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
			offset = drsuapi_dissect_element_DsReplicaInfo_udv1(tvb, offset, pinfo, tree, di, drep);
		break;

		case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
			offset = drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 num_entries; */
/* IDL: 	[size_is(num_entries)] [unique(1)] drsuapi_DsGetMembershipsCtr1 **ctrl_array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMemberships2Ctr1_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array_, NDR_POINTER_UNIQUE, "Pointer to Ctrl Array (drsuapi_DsGetMembershipsCtr1)",hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array___, NDR_POINTER_UNIQUE, "Pointer to Ctrl Array (drsuapi_DsGetMembershipsCtr1)",hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetMembershipsCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetMemberships2Ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMemberships2Ctr1);
	}

	offset = drsuapi_dissect_element_DsGetMemberships2Ctr1_num_entries(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMemberships2Ctr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetMembershipsCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetMemberships2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetMemberships2Ctr, &item, "drsuapi_DsGetMemberships2Ctr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetMemberships2Ctr_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[range(1,10000)] uint32 num_req; */
/* IDL: 	[size_is(num_req)] [unique(1)] drsuapi_DsGetMembershipsRequest1 **req_array; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMemberships2Request1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Request1_req_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2Request1_req_array_, NDR_POINTER_UNIQUE, "Pointer to Req Array (drsuapi_DsGetMembershipsRequest1)",hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Request1_req_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2Request1_req_array__);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Request1_req_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2Request1_req_array___, NDR_POINTER_UNIQUE, "Pointer to Req Array (drsuapi_DsGetMembershipsRequest1)",hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2Request1_req_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetMembershipsRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array,0);

	return offset;
}

int
drsuapi_dissect_struct_DsGetMemberships2Request1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMemberships2Request1);
	}

	offset = drsuapi_dissect_element_DsGetMemberships2Request1_num_req(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsGetMemberships2Request1_req_array(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_DsGetMemberships2Request1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_DsGetMemberships2Request_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsGetMemberships2Request1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsGetMemberships2Request_req1,0);

	return offset;
}

static int
drsuapi_dissect_DsGetMemberships2Request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_DsGetMemberships2Request, &item, "drsuapi_DsGetMemberships2Request");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_DsGetMemberships2Request_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	WERROR error_code; */
/* IDL: 	uint32 site_cost; */
/* IDL: } */

static int
drsuapi_dissect_element_DsSiteCostInfo_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsSiteCostInfo_error_code, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsSiteCostInfo_site_cost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost, 0);

	return offset;
}

int
drsuapi_dissect_struct_DsSiteCostInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_4_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsSiteCostInfo);
	}

	offset = drsuapi_dissect_element_DsSiteCostInfo_error_code(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_DsSiteCostInfo_site_cost(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_4_BYTES;
	}

	return offset;
}


/* IDL: struct { */
/* IDL: 	[range(0,10000)] uint32 num_info; */
/* IDL: 	[size_is(num_info)] [unique(1)] drsuapi_DsSiteCostInfo *info; */
/* IDL: 	[value(0)] uint32 flags_reserved; */
/* IDL: } */

static int
drsuapi_dissect_element_QuerySitesByCostCtr1_num_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info, 0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostCtr1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCostCtr1_info_, NDR_POINTER_UNIQUE, "Pointer to Info (drsuapi_DsSiteCostInfo)",hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostCtr1_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCostCtr1_info__);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostCtr1_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsSiteCostInfo(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info,0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostCtr1_flags_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved, 0);

	return offset;
}

int
drsuapi_dissect_struct_QuerySitesByCostCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_QuerySitesByCostCtr1);
	}

	offset = drsuapi_dissect_element_QuerySitesByCostCtr1_num_info(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_QuerySitesByCostCtr1_info(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_QuerySitesByCostCtr1_flags_reserved(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_QuerySitesByCostCtr1 ctr1; */
/* IDL: } */

static int
drsuapi_dissect_element_QuerySitesByCostCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_QuerySitesByCostCtr1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1,0);

	return offset;
}

static int
drsuapi_dissect_QuerySitesByCostCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_QuerySitesByCostCtr, &item, "drsuapi_QuerySitesByCostCtr");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_QuerySitesByCostCtr_ctr1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *site_from; */
/* IDL: 	[range(1,10000)] uint32 num_req; */
/* IDL: 	[charset(UTF16)] [size_is(num_req)] [unique(1)] uint16 **site_to; */
/* IDL: 	uint32 flags; */
/* IDL: } */

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_site_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_from_, NDR_POINTER_UNIQUE, "Pointer to Site From (uint16)",hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_site_from_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_site_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_to_, NDR_POINTER_UNIQUE, "Pointer to Site To (uint16)",hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_site_to_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_to__);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_site_to__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_to___, NDR_POINTER_UNIQUE, "Pointer to Site To (uint16)",hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_site_to___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCostRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags, 0);

	return offset;
}

int
drsuapi_dissect_struct_QuerySitesByCostRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_QuerySitesByCostRequest1);
	}

	offset = drsuapi_dissect_element_QuerySitesByCostRequest1_site_from(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_QuerySitesByCostRequest1_num_req(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_QuerySitesByCostRequest1_site_to(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_QuerySitesByCostRequest1_flags(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_QuerySitesByCostRequest1 req1; */
/* IDL: } */

static int
drsuapi_dissect_element_QuerySitesByCostRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_QuerySitesByCostRequest1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1,0);

	return offset;
}

static int
drsuapi_dissect_QuerySitesByCostRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_QuerySitesByCostRequest, &item, "drsuapi_QuerySitesByCostRequest");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_QuerySitesByCostRequest_req1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	[charset(UTF16)] [unique(1)] uint16 *pwszAccount; */
/* IDL: } */

static int
drsuapi_dissect_element_ReadNgcKeyReqV1_pwszAccount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_ReadNgcKeyReqV1_pwszAccount_, NDR_POINTER_UNIQUE, "Pointer to PwszAccount (uint16)",hf_drsuapi_drsuapi_ReadNgcKeyReqV1_pwszAccount);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKeyReqV1_pwszAccount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_drsuapi_drsuapi_ReadNgcKeyReqV1_pwszAccount, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_ReadNgcKeyReqV1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_ReadNgcKeyReqV1);
	}

	offset = drsuapi_dissect_element_ReadNgcKeyReqV1_pwszAccount(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_ReadNgcKeyReqV1 V1; */
/* IDL: } */

static int
drsuapi_dissect_element_ReadNgcKeyReq_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_ReadNgcKeyReqV1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_ReadNgcKeyReq_V1,0);

	return offset;
}

static int
drsuapi_dissect_ReadNgcKeyReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;
	guint32 level;

	old_offset = offset;
	if (parent_tree) {
		tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_drsuapi_drsuapi_ReadNgcKeyReq, &item, "drsuapi_ReadNgcKeyReq");
	}

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
	ALIGN_TO_5_BYTES;

	switch(level) {
		case 1:
			offset = drsuapi_dissect_element_ReadNgcKeyReq_V1(tvb, offset, pinfo, tree, di, drep);
		break;
	}
	proto_item_set_len(item, offset-old_offset);


	return offset;
}

/* IDL: struct { */
/* IDL: 	uint32 retVal; */
/* IDL: 	[range(0,0xFFFF)] uint32 cNgcKey; */
/* IDL: 	[size_is(cNgcKey)] [unique(1)] uint8 *pNgcKey; */
/* IDL: } */

static int
drsuapi_dissect_element_ReadNgcKeyReplyV1_retVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_retVal, 0);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKeyReplyV1_cNgcKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_cNgcKey, 0);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKeyReplyV1_pNgcKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_ReadNgcKeyReplyV1_pNgcKey_, NDR_POINTER_UNIQUE, "Pointer to PNgcKey (uint8)",hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_pNgcKey);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKeyReplyV1_pNgcKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	char *data;

	offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint8), hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_pNgcKey, FALSE, &data);
	proto_item_append_text(tree, ": %s", data);

	return offset;
}

int
drsuapi_dissect_struct_ReadNgcKeyReplyV1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
	proto_item *item = NULL;
	proto_tree *tree = NULL;
	int old_offset;

	ALIGN_TO_5_BYTES;

	old_offset = offset;

	if (parent_tree) {
		item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
		tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_ReadNgcKeyReplyV1);
	}

	offset = drsuapi_dissect_element_ReadNgcKeyReplyV1_retVal(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_ReadNgcKeyReplyV1_cNgcKey(tvb, offset, pinfo, tree, di, drep);

	offset = drsuapi_dissect_element_ReadNgcKeyReplyV1_pNgcKey(tvb, offset, pinfo, tree, di, drep);


	proto_item_set_len(item, offset-old_offset);


	if (di->call_data->flags & DCERPC_IS_NDR64) {
		ALIGN_TO_5_BYTES;
	}

	return offset;
}


/* IDL: [switch_type(uint32)] union { */
/* IDL: [case(1)] [case(1)] drsuapi_ReadNgcKeyReplyV1 V1; */
/* IDL: } */

static int
drsuapi_dissect_element_ReadNgcKeyReply_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_ReadNgcKeyReplyV1(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_ReadNgcKeyReply_V1,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBind_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsBind_bind_guid_, NDR_POINTER_UNIQUE, "Pointer to Bind Guid (GUID)",hf_drsuapi_drsuapi_DsBind_bind_guid);

	return offset;
}

static int
drsuapi_dissect_element_DsBind_bind_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBind_bind_guid, NULL);

	return offset;
}

static int
drsuapi_dissect_element_DsBind_bind_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsBind_bind_info_, NDR_POINTER_UNIQUE, "Pointer to Bind Info (drsuapi_DsBindInfoCtr)",hf_drsuapi_drsuapi_DsBind_bind_info);

	return offset;
}

static int
drsuapi_dissect_element_DsBind_bind_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_struct_DsBindInfoCtr(tvb,offset,pinfo,tree,di,drep,hf_drsuapi_drsuapi_DsBind_bind_info,0);

	return offset;
}

static int
drsuapi_dissect_element_DsBind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsBind_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsBind_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsBind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsBind_bind_handle, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsBind( */
/* IDL: [in] [unique(1)] GUID *bind_guid, */
/* IDL: [in] [out] [unique(1)] drsuapi_DsBindInfoCtr *bind_info, */
/* IDL: [out] [ref] policy_handle *bind_handle */
/* IDL: ); */

static int
drsuapi_dissect_DsBind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsBind";
	offset = drsuapi_dissect_element_DsBind_bind_info(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsBind_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsBind_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsBind";
	offset = drsuapi_dissect_element_DsBind_bind_guid(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsBind_bind_info(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsUnbind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsUnbind_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsUnbind_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsUnbind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsUnbind_bind_handle, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsUnbind( */
/* IDL: [in] [out] [ref] policy_handle *bind_handle */
/* IDL: ); */

static int
drsuapi_dissect_DsUnbind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsUnbind";
	offset = drsuapi_dissect_element_DsUnbind_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsUnbind_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsUnbind";
	offset = drsuapi_dissect_element_DsUnbind_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSync_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaSync_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaSync_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSync_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaSync_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSync_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaSync_version, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSync_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaSync_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsReplicaSyncRequest)",hf_drsuapi_drsuapi_DsReplicaSync_req);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaSync_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaSyncRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaSync_req, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsReplicaSync( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 version, */
/* IDL: [in] [ref] [switch_is(version)] drsuapi_DsReplicaSyncRequest *req */
/* IDL: ); */

static int
drsuapi_dissect_DsReplicaSync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsReplicaSync";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsReplicaSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsReplicaSync";
	offset = drsuapi_dissect_element_DsReplicaSync_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaSync_version(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaSync_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChanges_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChanges_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChanges_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetNCChangesRequest)",hf_drsuapi_drsuapi_DsGetNCChanges_req);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetNCChangesRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChanges_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChanges_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetNCChanges_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChanges_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNCChanges_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetNCChangesCtr)",hf_drsuapi_drsuapi_DsGetNCChanges_ctr);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNCChanges_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetNCChangesCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNCChanges_ctr, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsGetNCChanges( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsGetNCChangesRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetNCChangesCtr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_DsGetNCChanges_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsGetNCChanges";
	offset = drsuapi_dissect_element_DsGetNCChanges_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsGetNCChanges_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsGetNCChanges_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsGetNCChanges";
	offset = drsuapi_dissect_element_DsGetNCChanges_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetNCChanges_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetNCChanges_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaUpdateRefs_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaUpdateRefsRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsReplicaUpdateRefs( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req */
/* IDL: ); */

static int
drsuapi_dissect_DsReplicaUpdateRefs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsReplicaUpdateRefs";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsReplicaUpdateRefs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsReplicaUpdateRefs";
	offset = drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaUpdateRefs_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaUpdateRefs_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAdd_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaAdd_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAdd_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAdd_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaAdd_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaAddRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaAdd_req, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsReplicaAdd( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaAddRequest req */
/* IDL: ); */

static int
drsuapi_dissect_DsReplicaAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsReplicaAdd";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsReplicaAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsReplicaAdd";
	offset = drsuapi_dissect_element_DsReplicaAdd_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaAdd_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaAdd_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDel_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaDel_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaDel_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDel_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaDel_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDel_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaDel_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaDel_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaDelRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaDel_req, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsReplicaDel( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaDelRequest req */
/* IDL: ); */

static int
drsuapi_dissect_DsReplicaDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsReplicaDel";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsReplicaDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsReplicaDel";
	offset = drsuapi_dissect_element_DsReplicaDel_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaDel_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaDel_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMod_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaMod_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaMod_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMod_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMod_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMod_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMod_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaMod_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaModRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaMod_req, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsReplicaMod( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaModRequest req */
/* IDL: ); */

static int
drsuapi_dissect_DsReplicaMod_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsReplicaMod";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsReplicaMod_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsReplicaMod";
	offset = drsuapi_dissect_element_DsReplicaMod_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaMod_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaMod_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR DRSUAPI_VERIFY_NAMES( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_DRSUAPI_VERIFY_NAMES_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DRSUAPI_VERIFY_NAMES";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DRSUAPI_VERIFY_NAMES_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DRSUAPI_VERIFY_NAMES";
	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetMemberships_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetMembershipsRequest)",hf_drsuapi_drsuapi_DsGetMemberships_req);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetMembershipsRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetMemberships_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetMembershipsCtr)",hf_drsuapi_drsuapi_DsGetMemberships_ctr);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetMembershipsCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships_ctr, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsGetMemberships( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetMembershipsCtr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_DsGetMemberships_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsGetMemberships";
	offset = drsuapi_dissect_element_DsGetMemberships_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsGetMemberships_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsGetMemberships_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsGetMemberships";
	offset = drsuapi_dissect_element_DsGetMemberships_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetMemberships_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetMemberships_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR DRSUAPI_INTER_DOMAIN_MOVE( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DRSUAPI_INTER_DOMAIN_MOVE";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DRSUAPI_INTER_DOMAIN_MOVE";
	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetNT4ChangeLogRequest)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetNT4ChangeLogRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_info_, NDR_POINTER_REF, "Pointer to Info (drsuapi_DsGetNT4ChangeLogInfo)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info);

	return offset;
}

static int
drsuapi_dissect_element_DsGetNT4ChangeLog_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetNT4ChangeLogInfo(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsGetNT4ChangeLog( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetNT4ChangeLogInfo *info */
/* IDL: ); */

static int
drsuapi_dissect_DsGetNT4ChangeLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsGetNT4ChangeLog";
	offset = drsuapi_dissect_element_DsGetNT4ChangeLog_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsGetNT4ChangeLog_info(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsGetNT4ChangeLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsGetNT4ChangeLog";
	offset = drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetNT4ChangeLog_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetNT4ChangeLog_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsCrackNames_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsCrackNames_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsCrackNames_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsCrackNames_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsCrackNames_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsNameRequest)",hf_drsuapi_drsuapi_DsCrackNames_req);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsNameRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsCrackNames_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsCrackNames_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsCrackNames_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsCrackNames_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsCrackNames_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsCrackNames_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsNameCtr)",hf_drsuapi_drsuapi_DsCrackNames_ctr);

	return offset;
}

/* IDL: WERROR drsuapi_DsCrackNames( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsNameRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsNameCtr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_DsCrackNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsCrackNames";
	offset = drsuapi_dissect_element_DsCrackNames_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsCrackNames_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsCrackNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsCrackNames";
	offset = drsuapi_dissect_element_DsCrackNames_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsCrackNames_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsCrackNames_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpn_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpn_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsWriteAccountSpnRequest)",hf_drsuapi_drsuapi_DsWriteAccountSpn_req);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsWriteAccountSpnRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpn_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsWriteAccountSpn_res_, NDR_POINTER_REF, "Pointer to Res (drsuapi_DsWriteAccountSpnResult)",hf_drsuapi_drsuapi_DsWriteAccountSpn_res);

	return offset;
}

static int
drsuapi_dissect_element_DsWriteAccountSpn_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsWriteAccountSpnResult(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_res, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsWriteAccountSpn( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsWriteAccountSpnRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsWriteAccountSpnResult *res */
/* IDL: ); */

static int
drsuapi_dissect_DsWriteAccountSpn_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsWriteAccountSpn";
	offset = drsuapi_dissect_element_DsWriteAccountSpn_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsWriteAccountSpn_res(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsWriteAccountSpn_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsWriteAccountSpn";
	offset = drsuapi_dissect_element_DsWriteAccountSpn_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsWriteAccountSpn_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsWriteAccountSpn_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsRemoveDSServer_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsRemoveDSServer_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsRemoveDSServerRequest)",hf_drsuapi_drsuapi_DsRemoveDSServer_req);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsRemoveDSServerRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsRemoveDSServer_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsRemoveDSServer_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsRemoveDSServer_res_, NDR_POINTER_REF, "Pointer to Res (drsuapi_DsRemoveDSServerResult)",hf_drsuapi_drsuapi_DsRemoveDSServer_res);

	return offset;
}

static int
drsuapi_dissect_element_DsRemoveDSServer_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsRemoveDSServerResult(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_res, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsRemoveDSServer( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsRemoveDSServerRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsRemoveDSServerResult *res */
/* IDL: ); */

static int
drsuapi_dissect_DsRemoveDSServer_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsRemoveDSServer";
	offset = drsuapi_dissect_element_DsRemoveDSServer_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsRemoveDSServer_res(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsRemoveDSServer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsRemoveDSServer";
	offset = drsuapi_dissect_element_DsRemoveDSServer_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsRemoveDSServer_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsRemoveDSServer_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR DRSUAPI_REMOVE_DS_DOMAIN( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DRSUAPI_REMOVE_DS_DOMAIN";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DRSUAPI_REMOVE_DS_DOMAIN";
	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetDCInfoRequest)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetDCInfoRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_level_out_, NDR_POINTER_REF, "Pointer to Level Out (drsuapi_DsGetDCInfoCtrLevels)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetDCInfoCtr)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr);

	return offset;
}

static int
drsuapi_dissect_element_DsGetDomainControllerInfo_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetDCInfoCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsGetDomainControllerInfo( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsGetDCInfoRequest *req, */
/* IDL: [out] [ref] drsuapi_DsGetDCInfoCtrLevels *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetDCInfoCtr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_DsGetDomainControllerInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsGetDomainControllerInfo";
	offset = drsuapi_dissect_element_DsGetDomainControllerInfo_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsGetDomainControllerInfo_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsGetDomainControllerInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsGetDomainControllerInfo";
	offset = drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetDomainControllerInfo_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetDomainControllerInfo_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsAddEntry_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsAddEntryRequest)",hf_drsuapi_drsuapi_DsAddEntry_req);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsAddEntryRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsAddEntry_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsAddEntry_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsAddEntryCtr)",hf_drsuapi_drsuapi_DsAddEntry_ctr);

	return offset;
}

static int
drsuapi_dissect_element_DsAddEntry_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsAddEntryCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsAddEntry_ctr, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsAddEntry( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsAddEntryRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsAddEntryCtr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_DsAddEntry_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsAddEntry";
	offset = drsuapi_dissect_element_DsAddEntry_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsAddEntry_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsAddEntry_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsAddEntry";
	offset = drsuapi_dissect_element_DsAddEntry_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsAddEntry_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsAddEntry_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsExecuteKCC_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsExecuteKCC_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsExecuteKCC_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsExecuteKCC_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsExecuteKCC_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsExecuteKCC_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsExecuteKCC_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsExecuteKCCRequest)",hf_drsuapi_drsuapi_DsExecuteKCC_req);

	return offset;
}

static int
drsuapi_dissect_element_DsExecuteKCC_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsExecuteKCCRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsExecuteKCC_req, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsExecuteKCC( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsExecuteKCCRequest *req */
/* IDL: ); */

static int
drsuapi_dissect_DsExecuteKCC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsExecuteKCC";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsExecuteKCC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsExecuteKCC";
	offset = drsuapi_dissect_element_DsExecuteKCC_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsExecuteKCC_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsExecuteKCC_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfo_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsReplicaGetInfoLevel(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfo_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsReplicaGetInfoRequest)",hf_drsuapi_drsuapi_DsReplicaGetInfo_req);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaGetInfoRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfo_info_type_, NDR_POINTER_REF, "Pointer to Info Type (drsuapi_DsReplicaInfoType)",hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_info_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_enum_DsReplicaInfoType(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsReplicaGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (drsuapi_DsReplicaInfo)",hf_drsuapi_drsuapi_DsReplicaGetInfo_info);

	return offset;
}

static int
drsuapi_dissect_element_DsReplicaGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsReplicaInfo(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_info, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsReplicaGetInfo( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] drsuapi_DsReplicaGetInfoLevel level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsReplicaGetInfoRequest *req, */
/* IDL: [out] [ref] drsuapi_DsReplicaInfoType *info_type, */
/* IDL: [out] [ref] [switch_is(*info_type)] drsuapi_DsReplicaInfo *info */
/* IDL: ); */

static int
drsuapi_dissect_DsReplicaGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsReplicaGetInfo";
	offset = drsuapi_dissect_element_DsReplicaGetInfo_info_type(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsReplicaGetInfo_info(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsReplicaGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsReplicaGetInfo";
	offset = drsuapi_dissect_element_DsReplicaGetInfo_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaGetInfo_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsReplicaGetInfo_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR DRSUAPI_ADD_SID_HISTORY( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DRSUAPI_ADD_SID_HISTORY";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DRSUAPI_ADD_SID_HISTORY";
	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetMemberships2Request)",hf_drsuapi_drsuapi_DsGetMemberships2_req);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetMemberships2Request(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetMemberships2_level_out);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_DsGetMemberships2_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetMemberships2Ctr)",hf_drsuapi_drsuapi_DsGetMemberships2_ctr);

	return offset;
}

static int
drsuapi_dissect_element_DsGetMemberships2_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_DsGetMemberships2Ctr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_DsGetMemberships2_ctr, 0);

	return offset;
}

/* IDL: WERROR drsuapi_DsGetMemberships2( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_DsGetMemberships2Request *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetMemberships2Ctr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_DsGetMemberships2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DsGetMemberships2";
	offset = drsuapi_dissect_element_DsGetMemberships2_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_DsGetMemberships2_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DsGetMemberships2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DsGetMemberships2";
	offset = drsuapi_dissect_element_DsGetMemberships2_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetMemberships2_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_DsGetMemberships2_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DRSUAPI_REPLICA_VERIFY_OBJECTS";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DRSUAPI_REPLICA_VERIFY_OBJECTS";
	return offset;
}

/* IDL: WERROR DRSUAPI_GET_OBJECT_EXISTENCE( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="DRSUAPI_GET_OBJECT_EXISTENCE";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="DRSUAPI_GET_OBJECT_EXISTENCE";
	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCost_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle, 0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCost_level, 0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCost_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_QuerySitesByCostRequest)",hf_drsuapi_drsuapi_QuerySitesByCost_req);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_QuerySitesByCostRequest(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCost_req, 0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCost_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_QuerySitesByCost_level_out);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCost_level_out, 0);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_QuerySitesByCost_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_QuerySitesByCostCtr)",hf_drsuapi_drsuapi_QuerySitesByCost_ctr);

	return offset;
}

static int
drsuapi_dissect_element_QuerySitesByCost_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_QuerySitesByCostCtr(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_QuerySitesByCost_ctr, 0);

	return offset;
}

/* IDL: WERROR drsuapi_QuerySitesByCost( */
/* IDL: [in] [ref] policy_handle *bind_handle, */
/* IDL: [in] uint32 level, */
/* IDL: [in] [ref] [switch_is(level)] drsuapi_QuerySitesByCostRequest *req, */
/* IDL: [out] [ref] uint32 *level_out, */
/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_QuerySitesByCostCtr *ctr */
/* IDL: ); */

static int
drsuapi_dissect_QuerySitesByCost_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="QuerySitesByCost";
	offset = drsuapi_dissect_element_QuerySitesByCost_level_out(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_QuerySitesByCost_ctr(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_QuerySitesByCost_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="QuerySitesByCost";
	offset = drsuapi_dissect_element_QuerySitesByCost_bind_handle(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_QuerySitesByCost_level(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_QuerySitesByCost_req(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}

/* IDL: WERROR drsuapi_InitDemotion( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_InitDemotion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="InitDemotion";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_InitDemotion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="InitDemotion";
	return offset;
}

/* IDL: WERROR drsuapi_ReplicaDemotion( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_ReplicaDemotion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="ReplicaDemotion";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_ReplicaDemotion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="ReplicaDemotion";
	return offset;
}

/* IDL: WERROR drsuapi_FinishDemotion( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_FinishDemotion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="FinishDemotion";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_FinishDemotion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="FinishDemotion";
	return offset;
}

/* IDL: WERROR drsuapi_AddCloneDC( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_AddCloneDC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="AddCloneDC";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_AddCloneDC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="AddCloneDC";
	return offset;
}

/* IDL: WERROR drsuapi_WriteNgcKey( */
/* IDL:  */
/* IDL: ); */

static int
drsuapi_dissect_WriteNgcKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="WriteNgcKey";
	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_WriteNgcKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="WriteNgcKey";
	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_hDrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_ReadNgcKey_hDrs_, NDR_POINTER_REF, "Pointer to HDrs (policy_handle)",hf_drsuapi_drsuapi_ReadNgcKey_hDrs);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_hDrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKey_hDrs, 0);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_inVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKey_inVersion, 0);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_ngcReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_ReadNgcKey_ngcReq_, NDR_POINTER_REF, "Pointer to NgcReq (drsuapi_ReadNgcKeyReq)",hf_drsuapi_drsuapi_ReadNgcKey_ngcReq);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_ngcReq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_ReadNgcKeyReq(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKey_ngcReq, 0);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_pOutVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_ReadNgcKey_pOutVersion_, NDR_POINTER_REF, "Pointer to POutVersion (uint32)",hf_drsuapi_drsuapi_ReadNgcKey_pOutVersion);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_pOutVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKey_pOutVersion, 0);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_ngcReply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, drsuapi_dissect_element_ReadNgcKey_ngcReply_, NDR_POINTER_REF, "Pointer to NgcReply (drsuapi_ReadNgcKeyReply)",hf_drsuapi_drsuapi_ReadNgcKey_ngcReply);

	return offset;
}

static int
drsuapi_dissect_element_ReadNgcKey_ngcReply_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	offset = drsuapi_dissect_ReadNgcKeyReply(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_drsuapi_ReadNgcKey_ngcReply, 0);

	return offset;
}

/* IDL: WERROR drsuapi_ReadNgcKey( */
/* IDL: [in] [ref] policy_handle *hDrs, */
/* IDL: [in] uint32 inVersion, */
/* IDL: [in] [ref] [switch_is(inVersion)] drsuapi_ReadNgcKeyReq *ngcReq, */
/* IDL: [out] [ref] uint32 *pOutVersion, */
/* IDL: [out] [ref] [switch_is(*pOutVersion)] drsuapi_ReadNgcKeyReply *ngcReply */
/* IDL: ); */

static int
drsuapi_dissect_ReadNgcKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	guint32 status;

	di->dcerpc_procedure_name="ReadNgcKey";
	offset = drsuapi_dissect_element_ReadNgcKey_pOutVersion(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = drsuapi_dissect_element_ReadNgcKey_ngcReply(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);

	offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_drsuapi_werror, &status);

	if (status != 0)
		col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));

	return offset;
}

static int
drsuapi_dissect_ReadNgcKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
{
	di->dcerpc_procedure_name="ReadNgcKey";
	offset = drsuapi_dissect_element_ReadNgcKey_hDrs(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_ReadNgcKey_inVersion(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	offset = drsuapi_dissect_element_ReadNgcKey_ngcReq(tvb, offset, pinfo, tree, di, drep);
	offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
	return offset;
}


static dcerpc_sub_dissector drsuapi_dissectors[] = {
	{ 0, "DsBind",
	   drsuapi_dissect_DsBind_request, drsuapi_dissect_DsBind_response},
	{ 1, "DsUnbind",
	   drsuapi_dissect_DsUnbind_request, drsuapi_dissect_DsUnbind_response},
	{ 2, "DsReplicaSync",
	   drsuapi_dissect_DsReplicaSync_request, drsuapi_dissect_DsReplicaSync_response},
	{ 3, "DsGetNCChanges",
	   drsuapi_dissect_DsGetNCChanges_request, drsuapi_dissect_DsGetNCChanges_response},
	{ 4, "DsReplicaUpdateRefs",
	   drsuapi_dissect_DsReplicaUpdateRefs_request, drsuapi_dissect_DsReplicaUpdateRefs_response},
	{ 5, "DsReplicaAdd",
	   drsuapi_dissect_DsReplicaAdd_request, drsuapi_dissect_DsReplicaAdd_response},
	{ 6, "DsReplicaDel",
	   drsuapi_dissect_DsReplicaDel_request, drsuapi_dissect_DsReplicaDel_response},
	{ 7, "DsReplicaMod",
	   drsuapi_dissect_DsReplicaMod_request, drsuapi_dissect_DsReplicaMod_response},
	{ 8, "DRSUAPI_VERIFY_NAMES",
	   drsuapi_dissect_DRSUAPI_VERIFY_NAMES_request, drsuapi_dissect_DRSUAPI_VERIFY_NAMES_response},
	{ 9, "DsGetMemberships",
	   drsuapi_dissect_DsGetMemberships_request, drsuapi_dissect_DsGetMemberships_response},
	{ 10, "DRSUAPI_INTER_DOMAIN_MOVE",
	   drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_request, drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_response},
	{ 11, "DsGetNT4ChangeLog",
	   drsuapi_dissect_DsGetNT4ChangeLog_request, drsuapi_dissect_DsGetNT4ChangeLog_response},
	{ 12, "DsCrackNames",
	   drsuapi_dissect_DsCrackNames_request, drsuapi_dissect_DsCrackNames_response},
	{ 13, "DsWriteAccountSpn",
	   drsuapi_dissect_DsWriteAccountSpn_request, drsuapi_dissect_DsWriteAccountSpn_response},
	{ 14, "DsRemoveDSServer",
	   drsuapi_dissect_DsRemoveDSServer_request, drsuapi_dissect_DsRemoveDSServer_response},
	{ 15, "DRSUAPI_REMOVE_DS_DOMAIN",
	   drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_request, drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_response},
	{ 16, "DsGetDomainControllerInfo",
	   drsuapi_dissect_DsGetDomainControllerInfo_request, drsuapi_dissect_DsGetDomainControllerInfo_response},
	{ 17, "DsAddEntry",
	   drsuapi_dissect_DsAddEntry_request, drsuapi_dissect_DsAddEntry_response},
	{ 18, "DsExecuteKCC",
	   drsuapi_dissect_DsExecuteKCC_request, drsuapi_dissect_DsExecuteKCC_response},
	{ 19, "DsReplicaGetInfo",
	   drsuapi_dissect_DsReplicaGetInfo_request, drsuapi_dissect_DsReplicaGetInfo_response},
	{ 20, "DRSUAPI_ADD_SID_HISTORY",
	   drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_request, drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_response},
	{ 21, "DsGetMemberships2",
	   drsuapi_dissect_DsGetMemberships2_request, drsuapi_dissect_DsGetMemberships2_response},
	{ 22, "DRSUAPI_REPLICA_VERIFY_OBJECTS",
	   drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_request, drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_response},
	{ 23, "DRSUAPI_GET_OBJECT_EXISTENCE",
	   drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_request, drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_response},
	{ 24, "QuerySitesByCost",
	   drsuapi_dissect_QuerySitesByCost_request, drsuapi_dissect_QuerySitesByCost_response},
	{ 25, "InitDemotion",
	   drsuapi_dissect_InitDemotion_request, drsuapi_dissect_InitDemotion_response},
	{ 26, "ReplicaDemotion",
	   drsuapi_dissect_ReplicaDemotion_request, drsuapi_dissect_ReplicaDemotion_response},
	{ 27, "FinishDemotion",
	   drsuapi_dissect_FinishDemotion_request, drsuapi_dissect_FinishDemotion_response},
	{ 28, "AddCloneDC",
	   drsuapi_dissect_AddCloneDC_request, drsuapi_dissect_AddCloneDC_response},
	{ 29, "WriteNgcKey",
	   drsuapi_dissect_WriteNgcKey_request, drsuapi_dissect_WriteNgcKey_response},
	{ 30, "ReadNgcKey",
	   drsuapi_dissect_ReadNgcKey_request, drsuapi_dissect_ReadNgcKey_response},
	{ 0, NULL, NULL, NULL }
};

void proto_register_dcerpc_drsuapi(void)
{
	static hf_register_info hf[] = {
	{ &hf_drsuapi_drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT,
	  { "DRSUAPI DRS GET TGT", "drsuapi.drsuapi_DrsMoreOptions.DRSUAPI_DRS_GET_TGT", FT_BOOLEAN, 32, TFS(&drsuapi_DrsMoreOptions_DRSUAPI_DRS_GET_TGT_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF,
	  { "DRSUAPI DRS ADD REF", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_ADD_REF", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP,
	  { "DRSUAPI DRS ASYNC OP", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_ASYNC_OP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP,
	  { "DRSUAPI DRS ASYNC REP", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_ASYNC_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP_tfs), ( 0x00000100 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY,
	  { "DRSUAPI DRS CRITICAL ONLY", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_CRITICAL_ONLY", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY_tfs), ( 0x00000400 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF,
	  { "DRSUAPI DRS DEL REF", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_DEL_REF", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF_tfs), ( 0x00000008 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC,
	  { "DRSUAPI DRS DISABLE AUTO SYNC", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_DISABLE_AUTO_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC_tfs), ( 0x04000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC,
	  { "DRSUAPI DRS DISABLE PERIODIC SYNC", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_DISABLE_PERIODIC_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC_tfs), ( 0x08000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS,
	  { "DRSUAPI DRS FULL SYNC IN PROGRESS", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS_tfs), ( 0x00010000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW,
	  { "DRSUAPI DRS FULL SYNC NOW", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_FULL_SYNC_NOW", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW_tfs), ( 0x00008000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET,
	  { "DRSUAPI DRS FULL SYNC PACKET", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_FULL_SYNC_PACKET", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET_tfs), ( 0x00020000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK,
	  { "DRSUAPI DRS GETCHG CHECK", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GETCHG_CHECK", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP,
	  { "DRSUAPI DRS GET ALL GROUP MEMBERSHIP", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP_tfs), ( 0x80000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC,
	  { "DRSUAPI DRS GET ANC", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GET_ANC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC_tfs), ( 0x00000800 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE,
	  { "DRSUAPI DRS GET NC SIZE", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GET_NC_SIZE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE_tfs), ( 0x00001000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR,
	  { "DRSUAPI DRS IGNORE ERROR", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_IGNORE_ERROR", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR_tfs), ( 0x00000100 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC,
	  { "DRSUAPI DRS INIT SYNC", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_INIT_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_tfs), ( 0x00000020 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW,
	  { "DRSUAPI DRS INIT SYNC NOW", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_INIT_SYNC_NOW", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW_tfs), ( 0x00800000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY,
	  { "DRSUAPI DRS LOCAL ONLY", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_LOCAL_ONLY", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY_tfs), ( 0x00001000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP,
	  { "DRSUAPI DRS MAIL REP", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_MAIL_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP_tfs), ( 0x00000080 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY,
	  { "DRSUAPI DRS NEVER NOTIFY", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NEVER_NOTIFY", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY_tfs), ( 0x20000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED,
	  { "DRSUAPI DRS NEVER SYNCED", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NEVER_SYNCED", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED_tfs), ( 0x00200000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP,
	  { "DRSUAPI DRS NONGC RO REP", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NONGC_RO_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP_tfs), ( 0x00002000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD,
	  { "DRSUAPI DRS NO DISCARD", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NO_DISCARD", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD_tfs), ( 0x00100000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE,
	  { "DRSUAPI DRS NO SOURCE", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NO_SOURCE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE_tfs), ( 0x00008000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC,
	  { "DRSUAPI DRS PER SYNC", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_PER_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC_tfs), ( 0x00000040 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED,
	  { "DRSUAPI DRS PREEMPTED", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_PREEMPTED", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED_tfs), ( 0x01000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN,
	  { "DRSUAPI DRS REF GCSPN", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_REF_GCSPN", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN_tfs), ( 0x00100000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK,
	  { "DRSUAPI DRS REF OK", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_REF_OK", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK_tfs), ( 0x00004000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING,
	  { "DRSUAPI DRS SPECIAL SECRET PROCESSING", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING_tfs), ( 0x00400000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL,
	  { "DRSUAPI DRS SYNC ALL", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_ALL", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL_tfs), ( 0x00000008 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME,
	  { "DRSUAPI DRS SYNC BYNAME", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_BYNAME", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME_tfs), ( 0x00004000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED,
	  { "DRSUAPI DRS SYNC FORCED", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_FORCED", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED_tfs), ( 0x02000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS,
	  { "DRSUAPI DRS SYNC PAS", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_PAS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS_tfs), ( 0x40000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE,
	  { "DRSUAPI DRS SYNC REQUEUE", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_REQUEUE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE_tfs), ( 0x00040000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT,
	  { "DRSUAPI DRS SYNC URGENT", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_URGENT", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT_tfs), ( 0x00080000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC,
	  { "DRSUAPI DRS TWOWAY SYNC", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_TWOWAY_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC_tfs), ( 0x00000200 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION,
	  { "DRSUAPI DRS UPDATE NOTIFICATION", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_UPDATE_NOTIFICATION", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION,
	  { "DRSUAPI DRS USE COMPRESSION", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_USE_COMPRESSION", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION_tfs), ( 0x10000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP,
	  { "DRSUAPI DRS WRIT REP", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_WRIT_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP_tfs), ( 0x00000010 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS,
	  { "DRSUAPI DRS UPDATE ADDRESS", "drsuapi.drsuapi_DrsUpdate.DRSUAPI_DRS_UPDATE_ADDRESS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS,
	  { "DRSUAPI DRS UPDATE FLAGS", "drsuapi.drsuapi_DrsUpdate.DRSUAPI_DRS_UPDATE_FLAGS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE,
	  { "DRSUAPI DRS UPDATE SCHEDULE", "drsuapi.drsuapi_DrsUpdate.DRSUAPI_DRS_UPDATE_SCHEDULE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_count,
	  { "Count", "drsuapi.drsuapi_DsAddEntryCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err,
	  { "Dir Err", "drsuapi.drsuapi_DsAddEntryCtr2.dir_err", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_DirErr_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid,
	  { "Dsid", "drsuapi.drsuapi_DsAddEntryCtr2.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data,
	  { "Extended Data", "drsuapi.drsuapi_DsAddEntryCtr2.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err,
	  { "Extended Err", "drsuapi.drsuapi_DsAddEntryCtr2.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_id,
	  { "Id", "drsuapi.drsuapi_DsAddEntryCtr2.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_objects,
	  { "Objects", "drsuapi.drsuapi_DsAddEntryCtr2.objects", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr2_problem,
	  { "Problem", "drsuapi.drsuapi_DsAddEntryCtr2.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr3_count,
	  { "Count", "drsuapi.drsuapi_DsAddEntryCtr3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data,
	  { "Err Data", "drsuapi.drsuapi_DsAddEntryCtr3.err_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver,
	  { "Err Ver", "drsuapi.drsuapi_DsAddEntryCtr3.err_ver", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr3_id,
	  { "Id", "drsuapi.drsuapi_DsAddEntryCtr3.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr3_objects,
	  { "Objects", "drsuapi.drsuapi_DsAddEntryCtr3.objects", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2,
	  { "Ctr2", "drsuapi.drsuapi_DsAddEntryCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3,
	  { "Ctr3", "drsuapi.drsuapi_DsAddEntryCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid,
	  { "Dsid", "drsuapi.drsuapi_DsAddEntryErrorInfoX.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data,
	  { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfoX.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err,
	  { "Extended Err", "drsuapi.drsuapi_DsAddEntryErrorInfoX.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem,
	  { "Problem", "drsuapi.drsuapi_DsAddEntryErrorInfoX.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count,
	  { "Count", "drsuapi.drsuapi_DsAddEntryErrorInfo_Attr_V1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first,
	  { "First", "drsuapi.drsuapi_DsAddEntryErrorInfo_Attr_V1.first", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id,
	  { "Id", "drsuapi.drsuapi_DsAddEntryErrorInfo_Attr_V1.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid,
	  { "Dsid", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data,
	  { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err,
	  { "Extended Err", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched,
	  { "Id Matched", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.id_matched", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem,
	  { "Problem", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid,
	  { "Dsid", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data,
	  { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err,
	  { "Extended Err", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer,
	  { "Refer", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.refer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err,
	  { "Attr Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.attr_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err,
	  { "Name Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.name_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err,
	  { "Referral Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.referral_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err,
	  { "Security Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.security_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err,
	  { "Service Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.service_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err,
	  { "System Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.system_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err,
	  { "Update Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.update_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object,
	  { "First Object", "drsuapi.drsuapi_DsAddEntryRequest2.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds,
	  { "Client Creds", "drsuapi.drsuapi_DsAddEntryRequest3.client_creds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object,
	  { "First Object", "drsuapi.drsuapi_DsAddEntryRequest3.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryRequest_req2,
	  { "Req2", "drsuapi.drsuapi_DsAddEntryRequest.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntryRequest_req3,
	  { "Req3", "drsuapi.drsuapi_DsAddEntryRequest.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data,
	  { "Err Data", "drsuapi.drsuapi_DsAddEntry_AttrErrListItem_V1.err_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next,
	  { "Next", "drsuapi.drsuapi_DsAddEntry_AttrErrListItem_V1.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid,
	  { "Attid", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.attid", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val,
	  { "Attr Val", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.attr_val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid,
	  { "Dsid", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data,
	  { "Extended Data", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err,
	  { "Extended Err", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned,
	  { "Is Val Returned", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.is_val_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem,
	  { "Problem", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err,
	  { "Dir Err", "drsuapi.drsuapi_DsAddEntry_ErrData_V1.dir_err", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_DirErr_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info,
	  { "Info", "drsuapi.drsuapi_DsAddEntry_ErrData_V1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status,
	  { "Status", "drsuapi.drsuapi_DsAddEntry_ErrData_V1.status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1,
	  { "V1", "drsuapi.drsuapi_DsAddEntry_ErrData.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list,
	  { "Addr List", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.addr_list", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count,
	  { "Addr List Count", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.addr_list_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice,
	  { "Choice", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.choice", FT_UINT8, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_ChoiceType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target,
	  { "Id Target", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.id_target", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set,
	  { "Is Choice Set", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.is_choice_set", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next,
	  { "Next", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state,
	  { "Op State", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.op_state", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias,
	  { "Rdn Alias", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.rdn_alias", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal,
	  { "Rdn Internal", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.rdn_internal", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type,
	  { "Ref Type", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.ref_type", FT_UINT16, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_RefType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsAddEntry.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsAddEntry.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_level,
	  { "Level", "drsuapi.drsuapi_DsAddEntry.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsAddEntry.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAddEntry_req,
	  { "Req", "drsuapi.drsuapi_DsAddEntry.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values,
	  { "Num Values", "drsuapi.drsuapi_DsAttributeValueCtr.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAttributeValueCtr_values,
	  { "Values", "drsuapi.drsuapi_DsAttributeValueCtr.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAttributeValue___ndr_size,
	  { "Ndr Size", "drsuapi.drsuapi_DsAttributeValue.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsAttributeValue_blob,
	  { "Blob", "drsuapi.drsuapi_DsAttributeValue.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo24_pid,
	  { "Pid", "drsuapi.drsuapi_DsBindInfo24.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo24_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsBindInfo24.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions,
	  { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo24.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo28_pid,
	  { "Pid", "drsuapi.drsuapi_DsBindInfo28.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch,
	  { "Repl Epoch", "drsuapi.drsuapi_DsBindInfo28.repl_epoch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo28_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsBindInfo28.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions,
	  { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo28.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo32_pid,
	  { "Pid", "drsuapi.drsuapi_DsBindInfo32.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo32_repl_epoch,
	  { "Repl Epoch", "drsuapi.drsuapi_DsBindInfo32.repl_epoch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo32_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsBindInfo32.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions,
	  { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo32.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo32_supported_extensions_ext,
	  { "Supported Extensions Ext", "drsuapi.drsuapi_DsBindInfo32.supported_extensions_ext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid,
	  { "Config Dn Guid", "drsuapi.drsuapi_DsBindInfo48.config_dn_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo48_pid,
	  { "Pid", "drsuapi.drsuapi_DsBindInfo48.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch,
	  { "Repl Epoch", "drsuapi.drsuapi_DsBindInfo48.repl_epoch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo48_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsBindInfo48.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions,
	  { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo48.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext,
	  { "Supported Extensions Ext", "drsuapi.drsuapi_DsBindInfo48.supported_extensions_ext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_config_dn_guid,
	  { "Config Dn Guid", "drsuapi.drsuapi_DsBindInfo52.config_dn_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_pid,
	  { "Pid", "drsuapi.drsuapi_DsBindInfo52.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_repl_epoch,
	  { "Repl Epoch", "drsuapi.drsuapi_DsBindInfo52.repl_epoch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsBindInfo52.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_supported_capabilities_ext,
	  { "Supported Capabilities Ext", "drsuapi.drsuapi_DsBindInfo52.supported_capabilities_ext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions,
	  { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo52.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo52_supported_extensions_ext,
	  { "Supported Extensions Ext", "drsuapi.drsuapi_DsBindInfo52.supported_extensions_ext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfoCtr_info,
	  { "Info", "drsuapi.drsuapi_DsBindInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfoCtr_length,
	  { "Length", "drsuapi.drsuapi_DsBindInfoCtr.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfoFallBack_info,
	  { "Info", "drsuapi.drsuapi_DsBindInfoFallBack.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo_Fallback,
	  { "Fallback", "drsuapi.drsuapi_DsBindInfo.Fallback", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo_info24,
	  { "Info24", "drsuapi.drsuapi_DsBindInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo_info28,
	  { "Info28", "drsuapi.drsuapi_DsBindInfo.info28", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo_info32,
	  { "Info32", "drsuapi.drsuapi_DsBindInfo.info32", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo_info48,
	  { "Info48", "drsuapi.drsuapi_DsBindInfo.info48", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBindInfo_info52,
	  { "Info52", "drsuapi.drsuapi_DsBindInfo.info52", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBind_bind_guid,
	  { "Bind Guid", "drsuapi.drsuapi_DsBind.bind_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBind_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsBind.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsBind_bind_info,
	  { "Bind Info", "drsuapi.drsuapi_DsBind.bind_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsCrackNames_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsCrackNames.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsCrackNames_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsCrackNames.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsCrackNames_level,
	  { "Level", "drsuapi.drsuapi_DsCrackNames.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsCrackNames_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsCrackNames.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsCrackNames_req,
	  { "Req", "drsuapi.drsuapi_DsCrackNames.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCC1_flags,
	  { "Flags", "drsuapi.drsuapi_DsExecuteKCC1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCC1_taskID,
	  { "TaskID", "drsuapi.drsuapi_DsExecuteKCC1.taskID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION,
	  { "DRSUAPI DS EXECUTE KCC ASYNCHRONOUS OPERATION", "drsuapi.drsuapi_DsExecuteKCCFlags.DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, TFS(&drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED,
	  { "DRSUAPI DS EXECUTE KCC DAMPED", "drsuapi.drsuapi_DsExecuteKCCFlags.DRSUAPI_DS_EXECUTE_KCC_DAMPED", FT_BOOLEAN, 32, TFS(&drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsExecuteKCCRequest.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsExecuteKCC.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCC_level,
	  { "Level", "drsuapi.drsuapi_DsExecuteKCC.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsExecuteKCC_req,
	  { "Req", "drsuapi.drsuapi_DsExecuteKCC.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_client_account,
	  { "Client Account", "drsuapi.drsuapi_DsGetDCConnection01.client_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address,
	  { "Client Ip Address", "drsuapi.drsuapi_DsGetDCConnection01.client_ip_address", FT_IPv4, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time,
	  { "Connection Time", "drsuapi.drsuapi_DsGetDCConnection01.connection_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2,
	  { "Unknown2", "drsuapi.drsuapi_DsGetDCConnection01.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4,
	  { "Unknown4", "drsuapi.drsuapi_DsGetDCConnection01.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5,
	  { "Unknown5", "drsuapi.drsuapi_DsGetDCConnection01.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6,
	  { "Unknown6", "drsuapi.drsuapi_DsGetDCConnection01.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array,
	  { "Array", "drsuapi.drsuapi_DsGetDCConnectionCtr01.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count,
	  { "Count", "drsuapi.drsuapi_DsGetDCConnectionCtr01.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn,
	  { "Computer Dn", "drsuapi.drsuapi_DsGetDCInfo1.computer_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name,
	  { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo1.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled,
	  { "Is Enabled", "drsuapi.drsuapi_DsGetDCInfo1.is_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc,
	  { "Is Pdc", "drsuapi.drsuapi_DsGetDCInfo1.is_pdc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name,
	  { "Netbios Name", "drsuapi.drsuapi_DsGetDCInfo1.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn,
	  { "Server Dn", "drsuapi.drsuapi_DsGetDCInfo1.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo1_site_name,
	  { "Site Name", "drsuapi.drsuapi_DsGetDCInfo1.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn,
	  { "Computer Dn", "drsuapi.drsuapi_DsGetDCInfo2.computer_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid,
	  { "Computer Guid", "drsuapi.drsuapi_DsGetDCInfo2.computer_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name,
	  { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo2.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled,
	  { "Is Enabled", "drsuapi.drsuapi_DsGetDCInfo2.is_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc,
	  { "Is Gc", "drsuapi.drsuapi_DsGetDCInfo2.is_gc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc,
	  { "Is Pdc", "drsuapi.drsuapi_DsGetDCInfo2.is_pdc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name,
	  { "Netbios Name", "drsuapi.drsuapi_DsGetDCInfo2.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn,
	  { "Ntds Dn", "drsuapi.drsuapi_DsGetDCInfo2.ntds_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid,
	  { "Ntds Guid", "drsuapi.drsuapi_DsGetDCInfo2.ntds_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn,
	  { "Server Dn", "drsuapi.drsuapi_DsGetDCInfo2.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid,
	  { "Server Guid", "drsuapi.drsuapi_DsGetDCInfo2.server_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn,
	  { "Site Dn", "drsuapi.drsuapi_DsGetDCInfo2.site_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsGetDCInfo2.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo2_site_name,
	  { "Site Name", "drsuapi.drsuapi_DsGetDCInfo2.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn,
	  { "Computer Dn", "drsuapi.drsuapi_DsGetDCInfo3.computer_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid,
	  { "Computer Guid", "drsuapi.drsuapi_DsGetDCInfo3.computer_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name,
	  { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo3.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled,
	  { "Is Enabled", "drsuapi.drsuapi_DsGetDCInfo3.is_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc,
	  { "Is Gc", "drsuapi.drsuapi_DsGetDCInfo3.is_gc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc,
	  { "Is Pdc", "drsuapi.drsuapi_DsGetDCInfo3.is_pdc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc,
	  { "Is Rodc", "drsuapi.drsuapi_DsGetDCInfo3.is_rodc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name,
	  { "Netbios Name", "drsuapi.drsuapi_DsGetDCInfo3.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn,
	  { "Ntds Dn", "drsuapi.drsuapi_DsGetDCInfo3.ntds_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid,
	  { "Ntds Guid", "drsuapi.drsuapi_DsGetDCInfo3.ntds_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn,
	  { "Server Dn", "drsuapi.drsuapi_DsGetDCInfo3.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid,
	  { "Server Guid", "drsuapi.drsuapi_DsGetDCInfo3.server_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn,
	  { "Site Dn", "drsuapi.drsuapi_DsGetDCInfo3.site_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid,
	  { "Site Guid", "drsuapi.drsuapi_DsGetDCInfo3.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfo3_site_name,
	  { "Site Name", "drsuapi.drsuapi_DsGetDCInfo3.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array,
	  { "Array", "drsuapi.drsuapi_DsGetDCInfoCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count,
	  { "Count", "drsuapi.drsuapi_DsGetDCInfoCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array,
	  { "Array", "drsuapi.drsuapi_DsGetDCInfoCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count,
	  { "Count", "drsuapi.drsuapi_DsGetDCInfoCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array,
	  { "Array", "drsuapi.drsuapi_DsGetDCInfoCtr3.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count,
	  { "Count", "drsuapi.drsuapi_DsGetDCInfoCtr3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01,
	  { "Ctr01", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr01", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2,
	  { "Ctr2", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3,
	  { "Ctr3", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name,
	  { "Domain Name", "drsuapi.drsuapi_DsGetDCInfoRequest1.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level,
	  { "Level", "drsuapi.drsuapi_DsGetDCInfoRequest1.level", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsGetDCInfoRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsGetDomainControllerInfo.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsGetDomainControllerInfo.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level,
	  { "Level", "drsuapi.drsuapi_DsGetDomainControllerInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsGetDomainControllerInfo.level_out", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req,
	  { "Req", "drsuapi.drsuapi_DsGetDomainControllerInfo.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array,
	  { "Ctrl Array", "drsuapi.drsuapi_DsGetMemberships2Ctr1.ctrl_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries,
	  { "Num Entries", "drsuapi.drsuapi_DsGetMemberships2Ctr1.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsGetMemberships2Ctr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req,
	  { "Num Req", "drsuapi.drsuapi_DsGetMemberships2Request1.num_req", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array,
	  { "Req Array", "drsuapi.drsuapi_DsGetMemberships2Request1.req_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2Request_req1,
	  { "Req1", "drsuapi.drsuapi_DsGetMemberships2Request.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsGetMemberships2.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsGetMemberships2.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2_level,
	  { "Level", "drsuapi.drsuapi_DsGetMemberships2.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsGetMemberships2.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships2_req,
	  { "Req", "drsuapi.drsuapi_DsGetMemberships2.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs,
	  { "Group Attrs", "drsuapi.drsuapi_DsGetMembershipsCtr1.group_attrs", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array,
	  { "Info Array", "drsuapi.drsuapi_DsGetMembershipsCtr1.info_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships,
	  { "Num Memberships", "drsuapi.drsuapi_DsGetMembershipsCtr1.num_memberships", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids,
	  { "Num Sids", "drsuapi.drsuapi_DsGetMembershipsCtr1.num_sids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids,
	  { "Sids", "drsuapi.drsuapi_DsGetMembershipsCtr1.sids", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status,
	  { "Status", "drsuapi.drsuapi_DsGetMembershipsCtr1.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsGetMembershipsCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count,
	  { "Count", "drsuapi.drsuapi_DsGetMembershipsRequest1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain,
	  { "Domain", "drsuapi.drsuapi_DsGetMembershipsRequest1.domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags,
	  { "Flags", "drsuapi.drsuapi_DsGetMembershipsRequest1.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array,
	  { "Info Array", "drsuapi.drsuapi_DsGetMembershipsRequest1.info_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type,
	  { "Type", "drsuapi.drsuapi_DsGetMembershipsRequest1.type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsMembershipType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsGetMembershipsRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsGetMemberships.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsGetMemberships.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships_level,
	  { "Level", "drsuapi.drsuapi_DsGetMemberships.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsGetMemberships.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetMemberships_req,
	  { "Req", "drsuapi.drsuapi_DsGetMemberships.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1,
	  { "Mszip1", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.mszip1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6,
	  { "Mszip6", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.mszip6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1,
	  { "Xpress1", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.xpress1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6,
	  { "Xpress6", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.xpress6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsGetNCChangesCtr1TS.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size,
	  { "Ndr Size", "drsuapi.drsuapi_DsGetNCChangesCtr1.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret,
	  { "Extended Ret", "drsuapi.drsuapi_DsGetNCChangesCtr1.extended_ret", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedError_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object,
	  { "First Object", "drsuapi.drsuapi_DsGetNCChangesCtr1.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr,
	  { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesCtr1.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data,
	  { "More Data", "drsuapi.drsuapi_DsGetNCChangesCtr1.more_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesCtr1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark,
	  { "New Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr1.new_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count,
	  { "Object Count", "drsuapi.drsuapi_DsGetNCChangesCtr1.object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark,
	  { "Old Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr1.old_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid,
	  { "Source Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesCtr1.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesCtr1.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector,
	  { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesCtr1.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1,
	  { "Mszip1", "drsuapi.drsuapi_DsGetNCChangesCtr2.mszip1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6,
	  { "Ctr6", "drsuapi.drsuapi_DsGetNCChangesCtr6TS.ctr6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size,
	  { "Ndr Size", "drsuapi.drsuapi_DsGetNCChangesCtr6.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error,
	  { "Drs Error", "drsuapi.drsuapi_DsGetNCChangesCtr6.drs_error", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret,
	  { "Extended Ret", "drsuapi.drsuapi_DsGetNCChangesCtr6.extended_ret", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedError_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object,
	  { "First Object", "drsuapi.drsuapi_DsGetNCChangesCtr6.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes,
	  { "Linked Attributes", "drsuapi.drsuapi_DsGetNCChangesCtr6.linked_attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count,
	  { "Linked Attributes Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.linked_attributes_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr,
	  { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesCtr6.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data,
	  { "More Data", "drsuapi.drsuapi_DsGetNCChangesCtr6.more_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesCtr6.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count,
	  { "Nc Linked Attributes Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.nc_linked_attributes_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count,
	  { "Nc Object Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.nc_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark,
	  { "New Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr6.new_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count,
	  { "Object Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark,
	  { "Old Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr6.old_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid,
	  { "Source Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesCtr6.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesCtr6.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector,
	  { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesCtr6.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsGetNCChangesCtr7.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level,
	  { "Level", "drsuapi.drsuapi_DsGetNCChangesCtr7.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type,
	  { "Type", "drsuapi.drsuapi_DsGetNCChangesCtr7.type", FT_UINT16, BASE_DEC, VALS(drsuapi_drsuapi_DsGetNCChangesCompressionType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2,
	  { "Ctr2", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6,
	  { "Ctr6", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7,
	  { "Ctr7", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length,
	  { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length,
	  { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts,
	  { "Ts", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_,
	  { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length,
	  { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length,
	  { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts,
	  { "Ts", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_,
	  { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid,
	  { "Destination Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesRequest10.destination_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op,
	  { "Extended Op", "drsuapi.drsuapi_DsGetNCChangesRequest10.extended_op", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedOperation_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info,
	  { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest10.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark,
	  { "Highwatermark", "drsuapi.drsuapi_DsGetNCChangesRequest10.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr,
	  { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesRequest10.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size,
	  { "Max Ndr Size", "drsuapi.drsuapi_DsGetNCChangesRequest10.max_ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count,
	  { "Max Object Count", "drsuapi.drsuapi_DsGetNCChangesRequest10.max_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags,
	  { "More Flags", "drsuapi.drsuapi_DsGetNCChangesRequest10.more_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesRequest10.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set,
	  { "Partial Attribute Set", "drsuapi.drsuapi_DsGetNCChangesRequest10.partial_attribute_set", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex,
	  { "Partial Attribute Set Ex", "drsuapi.drsuapi_DsGetNCChangesRequest10.partial_attribute_set_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags,
	  { "Replica Flags", "drsuapi.drsuapi_DsGetNCChangesRequest10.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest10.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector,
	  { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesRequest10.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid,
	  { "Destination Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesRequest5.destination_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op,
	  { "Extended Op", "drsuapi.drsuapi_DsGetNCChangesRequest5.extended_op", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedOperation_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info,
	  { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest5.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark,
	  { "Highwatermark", "drsuapi.drsuapi_DsGetNCChangesRequest5.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size,
	  { "Max Ndr Size", "drsuapi.drsuapi_DsGetNCChangesRequest5.max_ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count,
	  { "Max Object Count", "drsuapi.drsuapi_DsGetNCChangesRequest5.max_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesRequest5.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags,
	  { "Replica Flags", "drsuapi.drsuapi_DsGetNCChangesRequest5.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest5.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector,
	  { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesRequest5.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid,
	  { "Destination Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesRequest8.destination_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op,
	  { "Extended Op", "drsuapi.drsuapi_DsGetNCChangesRequest8.extended_op", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedOperation_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info,
	  { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest8.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark,
	  { "Highwatermark", "drsuapi.drsuapi_DsGetNCChangesRequest8.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr,
	  { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesRequest8.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size,
	  { "Max Ndr Size", "drsuapi.drsuapi_DsGetNCChangesRequest8.max_ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count,
	  { "Max Object Count", "drsuapi.drsuapi_DsGetNCChangesRequest8.max_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesRequest8.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set,
	  { "Partial Attribute Set", "drsuapi.drsuapi_DsGetNCChangesRequest8.partial_attribute_set", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex,
	  { "Partial Attribute Set Ex", "drsuapi.drsuapi_DsGetNCChangesRequest8.partial_attribute_set_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags,
	  { "Replica Flags", "drsuapi.drsuapi_DsGetNCChangesRequest8.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest8.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector,
	  { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesRequest8.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10,
	  { "Req10", "drsuapi.drsuapi_DsGetNCChangesRequest.req10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5,
	  { "Req5", "drsuapi.drsuapi_DsGetNCChangesRequest.req5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8,
	  { "Req8", "drsuapi.drsuapi_DsGetNCChangesRequest.req8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_compressed_length,
	  { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_decompressed_length,
	  { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts,
	  { "Ts", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1_ts_,
	  { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_compressed_length,
	  { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_decompressed_length,
	  { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts,
	  { "Ts", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6_ts_,
	  { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsGetNCChanges.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChanges_ctr,
	  { "Ctr", "drsuapi.drsuapi_DsGetNCChanges.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChanges_level,
	  { "Level", "drsuapi.drsuapi_DsGetNCChanges.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChanges_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsGetNCChanges.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNCChanges_req,
	  { "Req", "drsuapi.drsuapi_DsGetNCChanges.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG,
	  { "DRSUAPI NT4 CHANGELOG GET CHANGELOG", "drsuapi.drsuapi_DsGetNT4ChangeLogFlags.DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG", FT_BOOLEAN, 32, TFS(&drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS,
	  { "DRSUAPI NT4 CHANGELOG GET SERIAL NUMBERS", "drsuapi.drsuapi_DsGetNT4ChangeLogFlags.DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS", FT_BOOLEAN, 32, TFS(&drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time,
	  { "Builtin Creation Time", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.builtin_creation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number,
	  { "Builtin Serial Number", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.builtin_serial_number", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data,
	  { "Log Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.log_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length,
	  { "Log Length", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.log_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time,
	  { "Lsa Creation Time", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.lsa_creation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number,
	  { "Lsa Serial Number", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.lsa_serial_number", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data,
	  { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.restart_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length,
	  { "Restart Length", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.restart_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time,
	  { "Sam Creation Time", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.sam_creation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number,
	  { "Sam Serial Number", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.sam_serial_number", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status,
	  { "Status", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1,
	  { "Info1", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags,
	  { "Flags", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length,
	  { "Preferred Maximum Length", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.preferred_maximum_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data,
	  { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.restart_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length,
	  { "Restart Length", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.restart_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsGetNT4ChangeLog.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info,
	  { "Info", "drsuapi.drsuapi_DsGetNT4ChangeLog.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level,
	  { "Level", "drsuapi.drsuapi_DsGetNT4ChangeLog.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsGetNT4ChangeLog.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req,
	  { "Req", "drsuapi.drsuapi_DsGetNT4ChangeLog.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE,
	  { "DRSUAPI DS LINKED ATTRIBUTE FLAG ACTIVE", "drsuapi.drsuapi_DsLinkedAttributeFlags.DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", FT_BOOLEAN, 32, TFS(&drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameCtr1_array,
	  { "Array", "drsuapi.drsuapi_DsNameCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameCtr1_count,
	  { "Count", "drsuapi.drsuapi_DsNameCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameCtr_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_DsNameCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name,
	  { "Dns Domain Name", "drsuapi.drsuapi_DsNameInfo1.dns_domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameInfo1_result_name,
	  { "Result Name", "drsuapi.drsuapi_DsNameInfo1.result_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameInfo1_status,
	  { "Status", "drsuapi.drsuapi_DsNameInfo1.status", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameStatus_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_codepage,
	  { "Codepage", "drsuapi.drsuapi_DsNameRequest1.codepage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_count,
	  { "Count", "drsuapi.drsuapi_DsNameRequest1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_format_desired,
	  { "Format Desired", "drsuapi.drsuapi_DsNameRequest1.format_desired", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFormat_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_format_flags,
	  { "Format Flags", "drsuapi.drsuapi_DsNameRequest1.format_flags", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFlags_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_format_offered,
	  { "Format Offered", "drsuapi.drsuapi_DsNameRequest1.format_offered", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFormat_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_language,
	  { "Language", "drsuapi.drsuapi_DsNameRequest1.language", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest1_names,
	  { "Names", "drsuapi.drsuapi_DsNameRequest1.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsNameRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsNameString_str,
	  { "Str", "drsuapi.drsuapi_DsNameString.str", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsPartialAttributeSet_attids,
	  { "Attids", "drsuapi.drsuapi_DsPartialAttributeSet.attids", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids,
	  { "Num Attids", "drsuapi.drsuapi_DsPartialAttributeSet.num_attids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1,
	  { "Reserved1", "drsuapi.drsuapi_DsPartialAttributeSet.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsPartialAttributeSet_version,
	  { "Version", "drsuapi.drsuapi_DsPartialAttributeSet.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit,
	  { "Commit", "drsuapi.drsuapi_DsRemoveDSServerRequest1.commit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn,
	  { "Domain Dn", "drsuapi.drsuapi_DsRemoveDSServerRequest1.domain_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn,
	  { "Server Dn", "drsuapi.drsuapi_DsRemoveDSServerRequest1.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsRemoveDSServerRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain,
	  { "Last Dc In Domain", "drsuapi.drsuapi_DsRemoveDSServerResult1.last_dc_in_domain", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1,
	  { "Res1", "drsuapi.drsuapi_DsRemoveDSServerResult.res1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsRemoveDSServer.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServer_level,
	  { "Level", "drsuapi.drsuapi_DsRemoveDSServer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServer_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsRemoveDSServer.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServer_req,
	  { "Req", "drsuapi.drsuapi_DsRemoveDSServer.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsRemoveDSServer_res,
	  { "Res", "drsuapi.drsuapi_DsRemoveDSServer.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06Ctr_array,
	  { "Array", "drsuapi.drsuapi_DsReplica06Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06Ctr_count,
	  { "Count", "drsuapi.drsuapi_DsReplica06Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06Ctr_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplica06Ctr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_str1,
	  { "Str1", "drsuapi.drsuapi_DsReplica06.str1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u1,
	  { "U1", "drsuapi.drsuapi_DsReplica06.u1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u2,
	  { "U2", "drsuapi.drsuapi_DsReplica06.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u3,
	  { "U3", "drsuapi.drsuapi_DsReplica06.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u4,
	  { "U4", "drsuapi.drsuapi_DsReplica06.u4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u5,
	  { "U5", "drsuapi.drsuapi_DsReplica06.u5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u6,
	  { "U6", "drsuapi.drsuapi_DsReplica06.u6", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplica06_u7,
	  { "U7", "drsuapi.drsuapi_DsReplica06.u7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsReplicaAddRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest1_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaAddRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule,
	  { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address,
	  { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaAddRequest1.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsReplicaAddRequest2.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest2_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaAddRequest2.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule,
	  { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest2.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address,
	  { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaAddRequest2.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn,
	  { "Source Dsa Dn", "drsuapi.drsuapi_DsReplicaAddRequest2.source_dsa_dn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn,
	  { "Transport Dn", "drsuapi.drsuapi_DsReplicaAddRequest2.transport_dn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsReplicaAddRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAddRequest_req2,
	  { "Req2", "drsuapi.drsuapi_DsReplicaAddRequest.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsReplicaAdd.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAdd_level,
	  { "Level", "drsuapi.drsuapi_DsReplicaAdd.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAdd_req,
	  { "Req", "drsuapi.drsuapi_DsReplicaAdd.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaAttrValMetaData2Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaAttrValMetaData2Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context,
	  { "Enumeration Context", "drsuapi.drsuapi_DsReplicaAttrValMetaData2Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary,
	  { "Ndr Size Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.__ndr_size_binary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name,
	  { "Attribute Name", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary,
	  { "Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created,
	  { "Created", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.created", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted,
	  { "Deleted", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.deleted", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn,
	  { "Local Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn,
	  { "Object Dn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time,
	  { "Originating Change Time", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn,
	  { "Originating Dsa Dn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_dsa_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id,
	  { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn,
	  { "Originating Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaAttrValMetaDataCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaAttrValMetaDataCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context,
	  { "Enumeration Context", "drsuapi.drsuapi_DsReplicaAttrValMetaDataCtr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary,
	  { "Ndr Size Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData.__ndr_size_binary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name,
	  { "Attribute Name", "drsuapi.drsuapi_DsReplicaAttrValMetaData.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary,
	  { "Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created,
	  { "Created", "drsuapi.drsuapi_DsReplicaAttrValMetaData.created", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted,
	  { "Deleted", "drsuapi.drsuapi_DsReplicaAttrValMetaData.deleted", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn,
	  { "Local Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn,
	  { "Object Dn", "drsuapi.drsuapi_DsReplicaAttrValMetaData.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time,
	  { "Originating Change Time", "drsuapi.drsuapi_DsReplicaAttrValMetaData.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id,
	  { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaAttrValMetaData.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn,
	  { "Originating Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaAttrValMetaData.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes,
	  { "Attributes", "drsuapi.drsuapi_DsReplicaAttributeCtr.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes,
	  { "Num Attributes", "drsuapi.drsuapi_DsReplicaAttributeCtr.num_attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttribute_attid,
	  { "Attid", "drsuapi.drsuapi_DsReplicaAttribute.attid", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr,
	  { "Value Ctr", "drsuapi.drsuapi_DsReplicaAttribute.value_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaConnection04Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaConnection04Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplicaConnection04Ctr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid,
	  { "Bind Guid", "drsuapi.drsuapi_DsReplicaConnection04.bind_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time,
	  { "Bind Time", "drsuapi.drsuapi_DsReplicaConnection04.bind_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address,
	  { "Client Ip Address", "drsuapi.drsuapi_DsReplicaConnection04.client_ip_address", FT_IPv4, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_u1,
	  { "U1", "drsuapi.drsuapi_DsReplicaConnection04.u1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_u2,
	  { "U2", "drsuapi.drsuapi_DsReplicaConnection04.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_u3,
	  { "U3", "drsuapi.drsuapi_DsReplicaConnection04.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaConnection04_u5,
	  { "U5", "drsuapi.drsuapi_DsReplicaConnection04.u5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors,
	  { "Cursors", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1,
	  { "Reserved1", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2,
	  { "Reserved2", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaCursor2Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaCursor2Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context,
	  { "Enumeration Context", "drsuapi.drsuapi_DsReplicaCursor2Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn,
	  { "Highest Usn", "drsuapi.drsuapi_DsReplicaCursor2.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success,
	  { "Last Sync Success", "drsuapi.drsuapi_DsReplicaCursor2.last_sync_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaCursor2.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaCursor3Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaCursor3Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context,
	  { "Enumeration Context", "drsuapi.drsuapi_DsReplicaCursor3Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn,
	  { "Highest Usn", "drsuapi.drsuapi_DsReplicaCursor3.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success,
	  { "Last Sync Success", "drsuapi.drsuapi_DsReplicaCursor3.last_sync_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaCursor3.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn,
	  { "Source Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaCursor3.source_dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaCursorCtrEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors,
	  { "Cursors", "drsuapi.drsuapi_DsReplicaCursorCtrEx.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1,
	  { "Reserved1", "drsuapi.drsuapi_DsReplicaCursorCtrEx.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2,
	  { "Reserved2", "drsuapi.drsuapi_DsReplicaCursorCtrEx.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaCursorCtrEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaCursorCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaCursorCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplicaCursorCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn,
	  { "Highest Usn", "drsuapi.drsuapi_DsReplicaCursor.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaCursor.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsReplicaDelRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDelRequest1_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaDelRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address,
	  { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaDelRequest1.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDelRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsReplicaDelRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDel_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsReplicaDel.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDel_level,
	  { "Level", "drsuapi.drsuapi_DsReplicaDel.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaDel_req,
	  { "Req", "drsuapi.drsuapi_DsReplicaDel.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type,
	  { "Info Type", "drsuapi.drsuapi_DsReplicaGetInfoRequest1.info_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaInfoType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn,
	  { "Object Dn", "drsuapi.drsuapi_DsReplicaGetInfoRequest1.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid,
	  { "Source Dsa Guid", "drsuapi.drsuapi_DsReplicaGetInfoRequest1.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name,
	  { "Attribute Name", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context,
	  { "Enumeration Context", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags,
	  { "Flags", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type,
	  { "Info Type", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.info_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaInfoType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn,
	  { "Object Dn", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid,
	  { "Source Dsa Guid", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str,
	  { "Value Dn Str", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.value_dn_str", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsReplicaGetInfoRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2,
	  { "Req2", "drsuapi.drsuapi_DsReplicaGetInfoRequest.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsReplicaGetInfo.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfo_info,
	  { "Info", "drsuapi.drsuapi_DsReplicaGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type,
	  { "Info Type", "drsuapi.drsuapi_DsReplicaGetInfo.info_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaInfoType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfo_level,
	  { "Level", "drsuapi.drsuapi_DsReplicaGetInfo.level", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaGetInfoLevel_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaGetInfo_req,
	  { "Req", "drsuapi.drsuapi_DsReplicaGetInfo.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn,
	  { "Highest Usn", "drsuapi.drsuapi_DsReplicaHighWaterMark.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn,
	  { "Reserved Usn", "drsuapi.drsuapi_DsReplicaHighWaterMark.reserved_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn,
	  { "Tmp Highest Usn", "drsuapi.drsuapi_DsReplicaHighWaterMark.tmp_highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata,
	  { "Attrvalmetadata", "drsuapi.drsuapi_DsReplicaInfo.attrvalmetadata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2,
	  { "Attrvalmetadata2", "drsuapi.drsuapi_DsReplicaInfo.attrvalmetadata2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_clientctx,
	  { "Clientctx", "drsuapi.drsuapi_DsReplicaInfo.clientctx", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures,
	  { "Connectfailures", "drsuapi.drsuapi_DsReplicaInfo.connectfailures", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_cursors,
	  { "Cursors", "drsuapi.drsuapi_DsReplicaInfo.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_cursors2,
	  { "Cursors2", "drsuapi.drsuapi_DsReplicaInfo.cursors2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_cursors3,
	  { "Cursors3", "drsuapi.drsuapi_DsReplicaInfo.cursors3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures,
	  { "Linkfailures", "drsuapi.drsuapi_DsReplicaInfo.linkfailures", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_neighbours,
	  { "Neighbours", "drsuapi.drsuapi_DsReplicaInfo.neighbours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata,
	  { "Objmetadata", "drsuapi.drsuapi_DsReplicaInfo.objmetadata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2,
	  { "Objmetadata2", "drsuapi.drsuapi_DsReplicaInfo.objmetadata2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_pendingops,
	  { "Pendingops", "drsuapi.drsuapi_DsReplicaInfo.pendingops", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_repsto,
	  { "Repsto", "drsuapi.drsuapi_DsReplicaInfo.repsto", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls,
	  { "Srvoutgoingcalls", "drsuapi.drsuapi_DsReplicaInfo.srvoutgoingcalls", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaInfo_udv1,
	  { "Udv1", "drsuapi.drsuapi_DsReplicaInfo.udv1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn,
	  { "Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaKccDsaFailure.dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid,
	  { "Dsa Obj Guid", "drsuapi.drsuapi_DsReplicaKccDsaFailure.dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure,
	  { "First Failure", "drsuapi.drsuapi_DsReplicaKccDsaFailure.first_failure", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result,
	  { "Last Result", "drsuapi.drsuapi_DsReplicaKccDsaFailure.last_result", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures,
	  { "Num Failures", "drsuapi.drsuapi_DsReplicaKccDsaFailure.num_failures", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaKccDsaFailuresCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaKccDsaFailuresCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplicaKccDsaFailuresCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid,
	  { "Attid", "drsuapi.drsuapi_DsReplicaLinkedAttribute.attid", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags,
	  { "Flags", "drsuapi.drsuapi_DsReplicaLinkedAttribute.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier,
	  { "Identifier", "drsuapi.drsuapi_DsReplicaLinkedAttribute.identifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data,
	  { "Meta Data", "drsuapi.drsuapi_DsReplicaLinkedAttribute.meta_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time,
	  { "Originating Add Time", "drsuapi.drsuapi_DsReplicaLinkedAttribute.originating_add_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value,
	  { "Value", "drsuapi.drsuapi_DsReplicaLinkedAttribute.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaMetaDataCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data,
	  { "Meta Data", "drsuapi.drsuapi_DsReplicaMetaDataCtr.meta_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time,
	  { "Originating Change Time", "drsuapi.drsuapi_DsReplicaMetaData.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id,
	  { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaMetaData.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn,
	  { "Originating Usn", "drsuapi.drsuapi_DsReplicaMetaData.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMetaData_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaMetaData.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields,
	  { "Modify Fields", "drsuapi.drsuapi_DsReplicaModRequest1.modify_fields", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsReplicaModRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaModRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags,
	  { "Replica Flags", "drsuapi.drsuapi_DsReplicaModRequest1.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule,
	  { "Schedule", "drsuapi.drsuapi_DsReplicaModRequest1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra,
	  { "Source Dra", "drsuapi.drsuapi_DsReplicaModRequest1.source_dra", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address,
	  { "Source Dra Address", "drsuapi.drsuapi_DsReplicaModRequest1.source_dra_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaModRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsReplicaModRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMod_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsReplicaMod.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMod_level,
	  { "Level", "drsuapi.drsuapi_DsReplicaMod.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaMod_req,
	  { "Req", "drsuapi.drsuapi_DsReplicaMod.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaNeighbourCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaNeighbourCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplicaNeighbourCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures,
	  { "Consecutive Sync Failures", "drsuapi.drsuapi_DsReplicaNeighbour.consecutive_sync_failures", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn,
	  { "Highest Usn", "drsuapi.drsuapi_DsReplicaNeighbour.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt,
	  { "Last Attempt", "drsuapi.drsuapi_DsReplicaNeighbour.last_attempt", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success,
	  { "Last Success", "drsuapi.drsuapi_DsReplicaNeighbour.last_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn,
	  { "Naming Context Dn", "drsuapi.drsuapi_DsReplicaNeighbour.naming_context_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid,
	  { "Naming Context Obj Guid", "drsuapi.drsuapi_DsReplicaNeighbour.naming_context_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags,
	  { "Replica Flags", "drsuapi.drsuapi_DsReplicaNeighbour.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplicaNeighbour.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt,
	  { "Result Last Attempt", "drsuapi.drsuapi_DsReplicaNeighbour.result_last_attempt", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address,
	  { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id,
	  { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn,
	  { "Source Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid,
	  { "Source Dsa Obj Guid", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn,
	  { "Tmp Highest Usn", "drsuapi.drsuapi_DsReplicaNeighbour.tmp_highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn,
	  { "Transport Obj Dn", "drsuapi.drsuapi_DsReplicaNeighbour.transport_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid,
	  { "Transport Obj Guid", "drsuapi.drsuapi_DsReplicaNeighbour.transport_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings,
	  { "Mappings", "drsuapi.drsuapi_DsReplicaOIDMapping_Ctr.mappings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings,
	  { "Num Mappings", "drsuapi.drsuapi_DsReplicaOIDMapping_Ctr.num_mappings", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix,
	  { "Id Prefix", "drsuapi.drsuapi_DsReplicaOIDMapping.id_prefix", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid,
	  { "Oid", "drsuapi.drsuapi_DsReplicaOIDMapping.oid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOID_binary_oid,
	  { "Binary Oid", "drsuapi.drsuapi_DsReplicaOID.binary_oid", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOID_length,
	  { "Length", "drsuapi.drsuapi_DsReplicaOID.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaObjMetaData2Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaObjMetaData2Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context,
	  { "Enumeration Context", "drsuapi.drsuapi_DsReplicaObjMetaData2Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name,
	  { "Attribute Name", "drsuapi.drsuapi_DsReplicaObjMetaData2.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn,
	  { "Local Usn", "drsuapi.drsuapi_DsReplicaObjMetaData2.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time,
	  { "Originating Change Time", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn,
	  { "Originating Dsa Dn", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_dsa_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id,
	  { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn,
	  { "Originating Usn", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaObjMetaData2.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaObjMetaDataCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaObjMetaDataCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved,
	  { "Reserved", "drsuapi.drsuapi_DsReplicaObjMetaDataCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name,
	  { "Attribute Name", "drsuapi.drsuapi_DsReplicaObjMetaData.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn,
	  { "Local Usn", "drsuapi.drsuapi_DsReplicaObjMetaData.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time,
	  { "Originating Change Time", "drsuapi.drsuapi_DsReplicaObjMetaData.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id,
	  { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaObjMetaData.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn,
	  { "Originating Usn", "drsuapi.drsuapi_DsReplicaObjMetaData.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjMetaData_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaObjMetaData.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC,
	  { "DRSUAPI DS REPLICA OBJECT DYNAMIC", "drsuapi.drsuapi_DsReplicaObjectFlags.DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", FT_BOOLEAN, 32, TFS(&drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER,
	  { "DRSUAPI DS REPLICA OBJECT FROM MASTER", "drsuapi.drsuapi_DsReplicaObjectFlags.DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", FT_BOOLEAN, 32, TFS(&drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY,
	  { "DRSUAPI DS REPLICA OBJECT REMOTE MODIFY", "drsuapi.drsuapi_DsReplicaObjectFlags.DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", FT_BOOLEAN, 32, TFS(&drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY_tfs), ( 0x00010000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid,
	  { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier2.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid,
	  { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier2.sid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size,
	  { "Ndr Size", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary,
	  { "Ndr Size Binary", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size_binary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn,
	  { "Ndr Size Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size_dn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid,
	  { "Ndr Size Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size_sid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary,
	  { "Binary", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn,
	  { "Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.dn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid,
	  { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid,
	  { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.sid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size,
	  { "Ndr Size", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn,
	  { "Ndr Size Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.__ndr_size_dn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid,
	  { "Ndr Size Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.__ndr_size_sid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn,
	  { "Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.dn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid,
	  { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid,
	  { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.sid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size,
	  { "Ndr Size", "drsuapi.drsuapi_DsReplicaObjectIdentifier.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn,
	  { "Ndr Size Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier.__ndr_size_dn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid,
	  { "Ndr Size Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier.__ndr_size_sid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn,
	  { "Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier.dn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid,
	  { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid,
	  { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier.sid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix,
	  { "Is Nc Prefix", "drsuapi.drsuapi_DsReplicaObjectListItemEx.is_nc_prefix", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr,
	  { "Meta Data Ctr", "drsuapi.drsuapi_DsReplicaObjectListItemEx.meta_data_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object,
	  { "Next Object", "drsuapi.drsuapi_DsReplicaObjectListItemEx.next_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object,
	  { "Object", "drsuapi.drsuapi_DsReplicaObjectListItemEx.object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid,
	  { "Parent Object Guid", "drsuapi.drsuapi_DsReplicaObjectListItemEx.parent_object_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object,
	  { "Next Object", "drsuapi.drsuapi_DsReplicaObjectListItem.next_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObjectListItem_object,
	  { "Object", "drsuapi.drsuapi_DsReplicaObjectListItem.object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr,
	  { "Attribute Ctr", "drsuapi.drsuapi_DsReplicaObject.attribute_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObject_flags,
	  { "Flags", "drsuapi.drsuapi_DsReplicaObject.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaObject_identifier,
	  { "Identifier", "drsuapi.drsuapi_DsReplicaObject.identifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOpCtr_array,
	  { "Array", "drsuapi.drsuapi_DsReplicaOpCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOpCtr_count,
	  { "Count", "drsuapi.drsuapi_DsReplicaOpCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOpCtr_time,
	  { "Time", "drsuapi.drsuapi_DsReplicaOpCtr.time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_nc_dn,
	  { "Nc Dn", "drsuapi.drsuapi_DsReplicaOp.nc_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid,
	  { "Nc Obj Guid", "drsuapi.drsuapi_DsReplicaOp.nc_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_operation_start,
	  { "Operation Start", "drsuapi.drsuapi_DsReplicaOp.operation_start", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_operation_type,
	  { "Operation Type", "drsuapi.drsuapi_DsReplicaOp.operation_type", FT_UINT1632, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaOpType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaOp.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_priority,
	  { "Priority", "drsuapi.drsuapi_DsReplicaOp.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address,
	  { "Remote Dsa Address", "drsuapi.drsuapi_DsReplicaOp.remote_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn,
	  { "Remote Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaOp.remote_dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid,
	  { "Remote Dsa Obj Guid", "drsuapi.drsuapi_DsReplicaOp.remote_dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaOp_serial_num,
	  { "Serial Num", "drsuapi.drsuapi_DsReplicaOp.serial_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsReplicaSyncRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaSyncRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns,
	  { "Source Dsa Dns", "drsuapi.drsuapi_DsReplicaSyncRequest1.source_dsa_dns", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid,
	  { "Source Dsa Guid", "drsuapi.drsuapi_DsReplicaSyncRequest1.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsReplicaSyncRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSync_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsReplicaSync.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSync_req,
	  { "Req", "drsuapi.drsuapi_DsReplicaSync.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaSync_version,
	  { "Version", "drsuapi.drsuapi_DsReplicaSync.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name,
	  { "Dest Dsa Dns Name", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.dest_dsa_dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid,
	  { "Dest Dsa Guid", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.dest_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context,
	  { "Naming Context", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options,
	  { "Options", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsReplicaUpdateRefs.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level,
	  { "Level", "drsuapi.drsuapi_DsReplicaUpdateRefs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req,
	  { "Req", "drsuapi.drsuapi_DsReplicaUpdateRefs.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsSiteCostInfo_error_code,
	  { "Error Code", "drsuapi.drsuapi_DsSiteCostInfo.error_code", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost,
	  { "Site Cost", "drsuapi.drsuapi_DsSiteCostInfo.site_cost", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsUnbind_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsUnbind.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count,
	  { "Count", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn,
	  { "Object Dn", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation,
	  { "Operation", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.operation", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsSpnOperation_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names,
	  { "Spn Names", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.spn_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1,
	  { "Unknown1", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1,
	  { "Req1", "drsuapi.drsuapi_DsWriteAccountSpnRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status,
	  { "Status", "drsuapi.drsuapi_DsWriteAccountSpnResult1.status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1,
	  { "Res1", "drsuapi.drsuapi_DsWriteAccountSpnResult.res1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_DsWriteAccountSpn.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpn_level,
	  { "Level", "drsuapi.drsuapi_DsWriteAccountSpn.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out,
	  { "Level Out", "drsuapi.drsuapi_DsWriteAccountSpn.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpn_req,
	  { "Req", "drsuapi.drsuapi_DsWriteAccountSpn.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsWriteAccountSpn_res,
	  { "Res", "drsuapi.drsuapi_DsWriteAccountSpn.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsaAddressListItem_V1_address,
	  { "Address", "drsuapi.drsuapi_DsaAddressListItem_V1.address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_DsaAddressListItem_V1_next,
	  { "Next", "drsuapi.drsuapi_DsaAddressListItem_V1.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_NameResOp_V1_name_res,
	  { "Name Res", "drsuapi.drsuapi_NameResOp_V1.name_res", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_NameResOp_V1_next_rdn,
	  { "Next Rdn", "drsuapi.drsuapi_NameResOp_V1.next_rdn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_NameResOp_V1_unused_pad,
	  { "Unused Pad", "drsuapi.drsuapi_NameResOp_V1.unused_pad", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved,
	  { "Flags Reserved", "drsuapi.drsuapi_QuerySitesByCostCtr1.flags_reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info,
	  { "Info", "drsuapi.drsuapi_QuerySitesByCostCtr1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info,
	  { "Num Info", "drsuapi.drsuapi_QuerySitesByCostCtr1.num_info", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1,
	  { "Ctr1", "drsuapi.drsuapi_QuerySitesByCostCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags,
	  { "Flags", "drsuapi.drsuapi_QuerySitesByCostRequest1.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req,
	  { "Num Req", "drsuapi.drsuapi_QuerySitesByCostRequest1.num_req", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from,
	  { "Site From", "drsuapi.drsuapi_QuerySitesByCostRequest1.site_from", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to,
	  { "Site To", "drsuapi.drsuapi_QuerySitesByCostRequest1.site_to", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1,
	  { "Req1", "drsuapi.drsuapi_QuerySitesByCostRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle,
	  { "Bind Handle", "drsuapi.drsuapi_QuerySitesByCost.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCost_ctr,
	  { "Ctr", "drsuapi.drsuapi_QuerySitesByCost.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCost_level,
	  { "Level", "drsuapi.drsuapi_QuerySitesByCost.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCost_level_out,
	  { "Level Out", "drsuapi.drsuapi_QuerySitesByCost.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_QuerySitesByCost_req,
	  { "Req", "drsuapi.drsuapi_QuerySitesByCost.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_cNgcKey,
	  { "CNgcKey", "drsuapi.drsuapi_ReadNgcKeyReplyV1.cNgcKey", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_pNgcKey,
	  { "PNgcKey", "drsuapi.drsuapi_ReadNgcKeyReplyV1.pNgcKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKeyReplyV1_retVal,
	  { "RetVal", "drsuapi.drsuapi_ReadNgcKeyReplyV1.retVal", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKeyReply_V1,
	  { "V1", "drsuapi.drsuapi_ReadNgcKeyReply.V1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKeyReqV1_pwszAccount,
	  { "PwszAccount", "drsuapi.drsuapi_ReadNgcKeyReqV1.pwszAccount", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKeyReq_V1,
	  { "V1", "drsuapi.drsuapi_ReadNgcKeyReq.V1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKey_hDrs,
	  { "HDrs", "drsuapi.drsuapi_ReadNgcKey.hDrs", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKey_inVersion,
	  { "InVersion", "drsuapi.drsuapi_ReadNgcKey.inVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKey_ngcReply,
	  { "NgcReply", "drsuapi.drsuapi_ReadNgcKey.ngcReply", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKey_ngcReq,
	  { "NgcReq", "drsuapi.drsuapi_ReadNgcKey.ngcReq", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_ReadNgcKey_pOutVersion,
	  { "POutVersion", "drsuapi.drsuapi_ReadNgcKey.pOutVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SecBufferDesc_buff_count,
	  { "Buff Count", "drsuapi.drsuapi_SecBufferDesc.buff_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SecBufferDesc_buffers,
	  { "Buffers", "drsuapi.drsuapi_SecBufferDesc.buffers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SecBufferDesc_version,
	  { "Version", "drsuapi.drsuapi_SecBufferDesc.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SecBuffer_buf_size,
	  { "Buf Size", "drsuapi.drsuapi_SecBuffer.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SecBuffer_buf_type,
	  { "Buf Type", "drsuapi.drsuapi_SecBuffer.buf_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_SecBufferType_vals), 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SecBuffer_buffer,
	  { "Buffer", "drsuapi.drsuapi_SecBuffer.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM,
	  { "DRSUAPI SUPPORTED EXTENSION ADAM", "drsuapi.drsuapi_SupportedExtensionsExt.DRSUAPI_SUPPORTED_EXTENSION_ADAM", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2,
	  { "DRSUAPI SUPPORTED EXTENSION LH BETA2", "drsuapi.drsuapi_SupportedExtensionsExt.DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN,
	  { "DRSUAPI SUPPORTED EXTENSION RECYCLE BIN", "drsuapi.drsuapi_SupportedExtensionsExt.DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY,
	  { "DRSUAPI SUPPORTED EXTENSION ADDENTRY", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_tfs), ( 0x00000080 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3,
	  { "DRSUAPI SUPPORTED EXTENSION ADDENTRYREPLY V3", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3_tfs), ( 0x08000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2,
	  { "DRSUAPI SUPPORTED EXTENSION ADDENTRY V2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2_tfs), ( 0x00000200 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY,
	  { "DRSUAPI SUPPORTED EXTENSION ADD SID HISTORY", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY_tfs), ( 0x00040000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION,
	  { "DRSUAPI SUPPORTED EXTENSION ASYNC REPLICATION", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION_tfs), ( 0x00000002 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE,
	  { "DRSUAPI SUPPORTED EXTENSION BASE", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_BASE", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE_tfs), ( 0x00000001 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND,
	  { "DRSUAPI SUPPORTED EXTENSION CRYPTO BIND", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND_tfs), ( 0x00002000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01,
	  { "DRSUAPI SUPPORTED EXTENSION DCINFO V01", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01_tfs), ( 0x00010000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1,
	  { "DRSUAPI SUPPORTED EXTENSION DCINFO V1", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1_tfs), ( 0x00000020 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2,
	  { "DRSUAPI SUPPORTED EXTENSION DCINFO V2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2_tfs), ( 0x00000800 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREPLY V5", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5_tfs), ( 0x02000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREPLY V6", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6_tfs), ( 0x04000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREPLY V7", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7_tfs), ( 0x08000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREQ V10", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10_tfs), ( 0x20000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREQ V5", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5_tfs), ( 0x00100000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREQ V6", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6_tfs), ( 0x00400000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHGREQ V8", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8_tfs), ( 0x01000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS,
	  { "DRSUAPI SUPPORTED EXTENSION GETCHG COMPRESS", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS_tfs), ( 0x00000010 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2,
	  { "DRSUAPI SUPPORTED EXTENSION GET MEMBERSHIPS2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2_tfs), ( 0x00200000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO,
	  { "DRSUAPI SUPPORTED EXTENSION GET REPL INFO", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO_tfs), ( 0x00004000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD,
	  { "DRSUAPI SUPPORTED EXTENSION INSTANCE TYPE NOT REQ ON MOD", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD_tfs), ( 0x00001000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE,
	  { "DRSUAPI SUPPORTED EXTENSION KCC EXECUTE", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE_tfs), ( 0x00000100 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION,
	  { "DRSUAPI SUPPORTED EXTENSION LINKED VALUE REPLICATION", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION_tfs), ( 0x00000400 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2,
	  { "DRSUAPI SUPPORTED EXTENSION MOVEREQ V2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2_tfs), ( 0x00000008 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS,
	  { "DRSUAPI SUPPORTED EXTENSION NONDOMAIN NCS", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS_tfs), ( 0x00800000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3,
	  { "DRSUAPI SUPPORTED EXTENSION POST BETA3", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3_tfs), ( 0x00080000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI,
	  { "DRSUAPI SUPPORTED EXTENSION REMOVEAPI", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI_tfs), ( 0x00000004 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2,
	  { "DRSUAPI SUPPORTED EXTENSION RESERVED PART2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2_tfs), ( 0x40000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3,
	  { "DRSUAPI SUPPORTED EXTENSION RESERVED PART3", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3_tfs), ( 0x80000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION,
	  { "DRSUAPI SUPPORTED EXTENSION RESTORE USN OPTIMIZATION", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION_tfs), ( 0x00000040 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION,
	  { "DRSUAPI SUPPORTED EXTENSION STRONG ENCRYPTION", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION_tfs), ( 0x00008000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP,
	  { "DRSUAPI SUPPORTED EXTENSION TRANSITIVE MEMBERSHIP", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP_tfs), ( 0x00020000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT,
	  { "DRSUAPI SUPPORTED EXTENSION VERIFY OBJECT", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT_tfs), ( 0x08000000 ), NULL, HFILL }},
	{ &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS,
	  { "DRSUAPI SUPPORTED EXTENSION XPRESS COMPRESS", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS_tfs), ( 0x10000000 ), NULL, HFILL }},
	{ &hf_drsuapi_opnum,
	  { "Operation", "drsuapi.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
	{ &hf_drsuapi_werror,
	  { "Windows Error", "drsuapi.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
	};


	static gint *ett[] = {
		&ett_dcerpc_drsuapi,
		&ett_drsuapi_security_GroupAttrs,
		&ett_drsuapi_drsuapi_DrsOptions,
		&ett_drsuapi_drsuapi_DrsMoreOptions,
		&ett_drsuapi_drsuapi_DrsUpdate,
		&ett_drsuapi_drsuapi_SupportedExtensions,
		&ett_drsuapi_drsuapi_SupportedExtensionsExt,
		&ett_drsuapi_drsuapi_DsBindInfo24,
		&ett_drsuapi_drsuapi_DsBindInfo28,
		&ett_drsuapi_drsuapi_DsBindInfo32,
		&ett_drsuapi_drsuapi_DsBindInfo48,
		&ett_drsuapi_drsuapi_DsBindInfo52,
		&ett_drsuapi_drsuapi_DsBindInfoFallBack,
		&ett_drsuapi_drsuapi_DsBindInfo,
		&ett_drsuapi_drsuapi_DsBindInfoCtr,
		&ett_drsuapi_drsuapi_DsReplicaObjectIdentifier,
		&ett_drsuapi_drsuapi_DsReplicaSyncRequest1,
		&ett_drsuapi_drsuapi_DsReplicaSyncRequest,
		&ett_drsuapi_drsuapi_DsReplicaHighWaterMark,
		&ett_drsuapi_drsuapi_DsReplicaCursor,
		&ett_drsuapi_drsuapi_DsReplicaCursorCtrEx,
		&ett_drsuapi_drsuapi_DsGetNCChangesRequest5,
		&ett_drsuapi_drsuapi_DsReplicaOID,
		&ett_drsuapi_drsuapi_DsReplicaOIDMapping,
		&ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr,
		&ett_drsuapi_drsuapi_DsPartialAttributeSet,
		&ett_drsuapi_drsuapi_DsGetNCChangesRequest8,
		&ett_drsuapi_drsuapi_DsGetNCChangesRequest10,
		&ett_drsuapi_drsuapi_DsGetNCChangesRequest,
		&ett_drsuapi_drsuapi_DsReplicaCursor2,
		&ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx,
		&ett_drsuapi_drsuapi_DsAttributeValue,
		&ett_drsuapi_drsuapi_DsAttributeValueCtr,
		&ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3,
		&ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary,
		&ett_drsuapi_drsuapi_DsReplicaAttribute,
		&ett_drsuapi_drsuapi_DsReplicaAttributeCtr,
		&ett_drsuapi_drsuapi_DsReplicaObjectFlags,
		&ett_drsuapi_drsuapi_DsReplicaObject,
		&ett_drsuapi_drsuapi_DsReplicaMetaData,
		&ett_drsuapi_drsuapi_DsReplicaMetaDataCtr,
		&ett_drsuapi_drsuapi_DsReplicaObjectListItemEx,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr1,
		&ett_drsuapi_drsuapi_DsLinkedAttributeFlags,
		&ett_drsuapi_drsuapi_DsReplicaLinkedAttribute,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr6,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS,
		&ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1,
		&ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6,
		&ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr1,
		&ett_drsuapi_drsuapi_DsGetNCChangesWIN2K3_LZ77_DIRECT2Ctr6,
		&ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr2,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr7,
		&ett_drsuapi_drsuapi_DsGetNCChangesCtr,
		&ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1,
		&ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest,
		&ett_drsuapi_drsuapi_DsReplicaAddRequest1,
		&ett_drsuapi_drsuapi_DsReplicaAddRequest2,
		&ett_drsuapi_drsuapi_DsReplicaAddRequest,
		&ett_drsuapi_drsuapi_DsReplicaDelRequest1,
		&ett_drsuapi_drsuapi_DsReplicaDelRequest,
		&ett_drsuapi_drsuapi_DsReplicaModRequest1,
		&ett_drsuapi_drsuapi_DsReplicaModRequest,
		&ett_drsuapi_drsuapi_DsGetMembershipsCtr1,
		&ett_drsuapi_drsuapi_DsGetMembershipsCtr,
		&ett_drsuapi_drsuapi_DsGetMembershipsRequest1,
		&ett_drsuapi_drsuapi_DsGetMembershipsRequest,
		&ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags,
		&ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1,
		&ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest,
		&ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1,
		&ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo,
		&ett_drsuapi_drsuapi_DsNameString,
		&ett_drsuapi_drsuapi_DsNameRequest1,
		&ett_drsuapi_drsuapi_DsNameRequest,
		&ett_drsuapi_drsuapi_DsNameInfo1,
		&ett_drsuapi_drsuapi_DsNameCtr1,
		&ett_drsuapi_drsuapi_DsNameCtr,
		&ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1,
		&ett_drsuapi_drsuapi_DsWriteAccountSpnRequest,
		&ett_drsuapi_drsuapi_DsWriteAccountSpnResult1,
		&ett_drsuapi_drsuapi_DsWriteAccountSpnResult,
		&ett_drsuapi_drsuapi_DsRemoveDSServerRequest1,
		&ett_drsuapi_drsuapi_DsRemoveDSServerRequest,
		&ett_drsuapi_drsuapi_DsRemoveDSServerResult1,
		&ett_drsuapi_drsuapi_DsRemoveDSServerResult,
		&ett_drsuapi_drsuapi_DsGetDCInfoRequest1,
		&ett_drsuapi_drsuapi_DsGetDCInfoRequest,
		&ett_drsuapi_drsuapi_DsGetDCInfo1,
		&ett_drsuapi_drsuapi_DsGetDCInfoCtr1,
		&ett_drsuapi_drsuapi_DsGetDCInfo2,
		&ett_drsuapi_drsuapi_DsGetDCInfoCtr2,
		&ett_drsuapi_drsuapi_DsGetDCInfo3,
		&ett_drsuapi_drsuapi_DsGetDCInfoCtr3,
		&ett_drsuapi_drsuapi_DsGetDCConnection01,
		&ett_drsuapi_drsuapi_DsGetDCConnectionCtr01,
		&ett_drsuapi_drsuapi_DsGetDCInfoCtr,
		&ett_drsuapi_drsuapi_DsReplicaObjectListItem,
		&ett_drsuapi_drsuapi_DsAddEntryRequest2,
		&ett_drsuapi_drsuapi_SecBuffer,
		&ett_drsuapi_drsuapi_SecBufferDesc,
		&ett_drsuapi_drsuapi_DsAddEntryRequest3,
		&ett_drsuapi_drsuapi_DsAddEntryRequest,
		&ett_drsuapi_drsuapi_DsAddEntryErrorInfoX,
		&ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1,
		&ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1,
		&ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1,
		&ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1,
		&ett_drsuapi_drsuapi_NameResOp_V1,
		&ett_drsuapi_drsuapi_DsaAddressListItem_V1,
		&ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1,
		&ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1,
		&ett_drsuapi_drsuapi_DsAddEntryErrorInfo,
		&ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1,
		&ett_drsuapi_drsuapi_DsAddEntry_ErrData,
		&ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2,
		&ett_drsuapi_drsuapi_DsAddEntryCtr2,
		&ett_drsuapi_drsuapi_DsAddEntryCtr3,
		&ett_drsuapi_drsuapi_DsAddEntryCtr,
		&ett_drsuapi_drsuapi_DsExecuteKCCFlags,
		&ett_drsuapi_drsuapi_DsExecuteKCC1,
		&ett_drsuapi_drsuapi_DsExecuteKCCRequest,
		&ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1,
		&ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2,
		&ett_drsuapi_drsuapi_DsReplicaGetInfoRequest,
		&ett_drsuapi_drsuapi_DsReplicaNeighbour,
		&ett_drsuapi_drsuapi_DsReplicaNeighbourCtr,
		&ett_drsuapi_drsuapi_DsReplicaCursorCtr,
		&ett_drsuapi_drsuapi_DsReplicaObjMetaData,
		&ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr,
		&ett_drsuapi_drsuapi_DsReplicaKccDsaFailure,
		&ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr,
		&ett_drsuapi_drsuapi_DsReplicaOp,
		&ett_drsuapi_drsuapi_DsReplicaOpCtr,
		&ett_drsuapi_drsuapi_DsReplicaAttrValMetaData,
		&ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr,
		&ett_drsuapi_drsuapi_DsReplicaCursor2Ctr,
		&ett_drsuapi_drsuapi_DsReplicaCursor3,
		&ett_drsuapi_drsuapi_DsReplicaCursor3Ctr,
		&ett_drsuapi_drsuapi_DsReplicaObjMetaData2,
		&ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr,
		&ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2,
		&ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr,
		&ett_drsuapi_drsuapi_DsReplicaConnection04,
		&ett_drsuapi_drsuapi_DsReplicaConnection04Ctr,
		&ett_drsuapi_drsuapi_DsReplica06,
		&ett_drsuapi_drsuapi_DsReplica06Ctr,
		&ett_drsuapi_drsuapi_DsReplicaInfo,
		&ett_drsuapi_drsuapi_DsGetMemberships2Ctr1,
		&ett_drsuapi_drsuapi_DsGetMemberships2Ctr,
		&ett_drsuapi_drsuapi_DsGetMemberships2Request1,
		&ett_drsuapi_drsuapi_DsGetMemberships2Request,
		&ett_drsuapi_drsuapi_DsSiteCostInfo,
		&ett_drsuapi_drsuapi_QuerySitesByCostCtr1,
		&ett_drsuapi_drsuapi_QuerySitesByCostCtr,
		&ett_drsuapi_drsuapi_QuerySitesByCostRequest1,
		&ett_drsuapi_drsuapi_QuerySitesByCostRequest,
		&ett_drsuapi_drsuapi_ReadNgcKeyReqV1,
		&ett_drsuapi_drsuapi_ReadNgcKeyReq,
		&ett_drsuapi_drsuapi_ReadNgcKeyReplyV1,
		&ett_drsuapi_drsuapi_ReadNgcKeyReply,
	};

	proto_dcerpc_drsuapi = proto_register_protocol("Active Directory Replication", "DRSUAPI", "drsuapi");
	proto_register_field_array(proto_dcerpc_drsuapi, hf, array_length (hf));
	proto_register_subtree_array(ett, array_length(ett));
}

void proto_reg_handoff_dcerpc_drsuapi(void)
{
	dcerpc_init_uuid(proto_dcerpc_drsuapi, ett_dcerpc_drsuapi,
		&uuid_dcerpc_drsuapi, ver_dcerpc_drsuapi,
		drsuapi_dissectors, hf_drsuapi_opnum);
}
