diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/packet-dcerpc-drsuapi.c | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/packet-dcerpc-drsuapi.c')
-rw-r--r-- | epan/dissectors/packet-dcerpc-drsuapi.c | 20960 |
1 files changed, 20960 insertions, 0 deletions
diff --git a/epan/dissectors/packet-dcerpc-drsuapi.c b/epan/dissectors/packet-dcerpc-drsuapi.c new file mode 100644 index 00000000..4b7fbed6 --- /dev/null +++ b/epan/dissectors/packet-dcerpc-drsuapi.c @@ -0,0 +1,20960 @@ +/* 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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, ¶meter); + 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); +} |