diff options
-rw-r--r-- | epan/dissectors/dcerpc/drsuapi/Makefile | 16 | ||||
-rwxr-xr-x | epan/dissectors/dcerpc/drsuapi/drsuapi.cnf | 3 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/drsuapi/drsuapi.idl | 805 | ||||
-rwxr-xr-x | epan/dissectors/dcerpc/drsuapi/template.c | 79 | ||||
-rwxr-xr-x | epan/dissectors/dcerpc/drsuapi/template.h | 34 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/idl2eth.c | 88 | ||||
-rw-r--r-- | epan/dissectors/packet-dcerpc-drsuapi.c | 7964 | ||||
-rw-r--r-- | epan/dissectors/packet-dcerpc-drsuapi.h | 170 |
8 files changed, 9055 insertions, 104 deletions
diff --git a/epan/dissectors/dcerpc/drsuapi/Makefile b/epan/dissectors/dcerpc/drsuapi/Makefile new file mode 100644 index 0000000000..058a1713dd --- /dev/null +++ b/epan/dissectors/dcerpc/drsuapi/Makefile @@ -0,0 +1,16 @@ +# $Id: Makefile 13071 2005-01-16 10:19:21Z guy $ + +DISSECTOR_FILES=packet-dcerpc-drsuapi.c packet-dcerpc-drsuapi.h + +all: generate_dissector + +generate_dissector: $(DISSECTOR_FILES) + +$(DISSECTOR_FILES): ../idl2eth drsuapi.idl drsuapi.cnf template.c template.h + ../idl2eth drsuapi + +clean: + rm -f ETH_* $(DISSECTOR_FILES) + +copy_files: generate_dissector + cp $(DISSECTOR_FILES) ../.. diff --git a/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf b/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf new file mode 100755 index 0000000000..407eb4e3cc --- /dev/null +++ b/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf @@ -0,0 +1,3 @@ +# +# +# diff --git a/epan/dissectors/dcerpc/drsuapi/drsuapi.idl b/epan/dissectors/dcerpc/drsuapi/drsuapi.idl new file mode 100644 index 0000000000..c7d88daed4 --- /dev/null +++ b/epan/dissectors/dcerpc/drsuapi/drsuapi.idl @@ -0,0 +1,805 @@ +/* from samba v4 revision 5742 */ + +#include "idl_types.h" + +[ + uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"), + version(4.0), + endpoint("ncacn_np:[\\pipe\\lsass]","ncacn_np:[\\pipe\\protected_storage]", "ncacn_ip_tcp:", "ncalrpc:"), + authservice("ldap"), + helpstring("Active Directory Replication"), + pointer_default(unique) +] +interface drsuapi +{ + /*****************/ + /* Function 0x00 */ + typedef [bitmap32bit] bitmap { + DRSUAPI_SUPPORTED_EXTENSION_BASE = 0x00000001, + DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = 0x00000002, + DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = 0x00000004, + DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = 0x00000008, + DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = 0x00000010, + DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = 0x00000020, + DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = 0x00000040, + DRSUAPI_SUPPORTED_EXTENSION_00000080 = 0x00000080, + DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = 0x00000100, + DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = 0x00000200, + DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = 0x00000400, + DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = 0x00000800, + DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD= 0x00001000, + DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = 0x00002000, + DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = 0x00004000, + DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = 0x00008000, + DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = 0x00010000, + DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = 0x00020000, + DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = 0x00040000, + DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = 0x00080000, + DRSUAPI_SUPPORTED_EXTENSION_00100000 = 0x00100000, + DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = 0x00200000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = 0x00400000, + DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = 0x00800000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = 0x01000000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = 0x02000000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = 0x04000000, + /* + * the following 3 have the same value + * repadmin.exe /bind says that + */ + DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = 0x08000000, + DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = 0x08000000, + DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = 0x08000000, + DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = 0x10000000, + DRSUAPI_SUPPORTED_EXTENSION_20000000 = 0x20000000, + DRSUAPI_SUPPORTED_EXTENSION_40000000 = 0x40000000, + DRSUAPI_SUPPORTED_EXTENSION_80000000 = 0x80000000 + } drsuapi_SupportedExtensions; + + /* this is used by w2k */ + typedef struct { + drsuapi_SupportedExtensions supported_extensions; + GUID site_guid; + uint32 u1; + } drsuapi_DsBindInfo24; + + /* this is used by w2k3 */ + typedef struct { + drsuapi_SupportedExtensions supported_extensions; + GUID site_guid; + uint32 u1; + uint32 repl_epoch; + } drsuapi_DsBindInfo28; + +# +# typedef struct { +# [flag(NDR_REMAINING)] DATA_BLOB info; +# } drsuapi_DsBindInfoFallBack; +# +# typedef [nodiscriminant] union { +# [case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24; +# [case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28; +# [default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack; +# } drsuapi_DsBindInfo; +# + /* the drsuapi_DsBindInfoCtr was this before + * typedef [flag(NDR_PAHEX)] struct { + * [range(1,10000)] uint32 length; + * [size_is(length)] uint8 data[]; + * } drsuapi_DsBindInfo; + * + * but we don't want the caller to manually decode this blob, + * so we're doing it here + */ +# +# typedef struct { +# [range(1,10000)] uint32 length; +# [switch_is(length)] drsuapi_DsBindInfo info; +# } drsuapi_DsBindInfoCtr; +# + /* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work + * + * maybe the bind_guid could also be the invocation_id see drsuapi_DsReplicaConnection04 + */ +# const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d"; + + WERROR drsuapi_DsBind( +# [in] GUID *bind_guid, +# [in,out] drsuapi_DsBindInfoCtr *bind_info, +# [out,ref] policy_handle *bind_handle + ); + + /*****************/ + /* Function 0x01 */ + WERROR drsuapi_DsUnbind( + [in,out,ref] policy_handle *bind_handle + ); + + /*****************/ + /* Function 0x02 */ +# typedef [gensize,flag(NDR_PAHEX)] struct { +# [value(ndr_size_drsuapi_DsReplicaSyncRequest1Info(r, ndr->flags)-4)] uint32 __ndr_size; +# uint32 unknown1; +# GUID guid1; +# uint8 byte_array[28]; +# [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string nc_dn; +# } drsuapi_DsReplicaSyncRequest1Info; +# + typedef bitmap { + DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = 0x00000002, + DRSUAPI_DS_REPLICA_SYNC_PERIODIC = 0x00000004, + DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING = 0x00000008, + DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES = 0x00000010, + DRSUAPI_DS_REPLICA_SYNC_FULL = 0x00000020, + DRSUAPI_DS_REPLICA_SYNC_URGENT = 0x00000040, + DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD = 0x00000080, + DRSUAPI_DS_REPLICA_SYNC_FORCE = 0x00000100, + DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE = 0x00000200, + DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED = 0x00000400, + DRSUAPI_DS_REPLICA_SYNC_TWO_WAY = 0x00000800, + DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY = 0x00001000, + DRSUAPI_DS_REPLICA_SYNC_INITIAL = 0x00002000, + DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION = 0x00004000, + DRSUAPI_DS_REPLICA_SYNC_ABANDONED = 0x00008000, + DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS = 0x00010000, + DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET = 0x00020000, + DRSUAPI_DS_REPLICA_SYNC_REQUEUE = 0x00040000, + DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION = 0x00080000, + DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA = 0x00100000, + DRSUAPI_DS_REPLICA_SYNC_CRITICAL = 0x00200000, + DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS = 0x00400000, + DRSUAPI_DS_REPLICA_SYNC_PREEMPTED = 0x00800000 + } drsuapi_DsReplicaSyncOptions; + +# typedef struct { +# drsuapi_DsReplicaSyncRequest1Info *info; +# GUID guid1; +# astring *string1; +# drsuapi_DsReplicaSyncOptions options; +# } drsuapi_DsReplicaSyncRequest1; +# +# typedef [switch_type(int32)] union { +# [case(1)] drsuapi_DsReplicaSyncRequest1 req1; +# } drsuapi_DsReplicaSyncRequest; + + WERROR drsuapi_DsReplicaSync( +# [in,ref] policy_handle *bind_handle, +# [in] int32 level, +# [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req + ); + + /*****************/ + /* Function 0x03 */ + typedef struct { + hyper usn1; + hyper usn2; + hyper usn3; + } drsuapi_DsGetNCChangesUsnTriple; + +# typedef struct { +# GUID guid1; +# GUID guid2; +# uint32 unknown1[20]; +# drsuapi_DsReplicaSyncRequest1Info sync_req_info1; +# drsuapi_DsGetNCChangesUsnTriple usn; +# } drsuapi_DsGetNCChangesRequest8; +# +# typedef [switch_type(int32)] union { +# [case(8)] drsuapi_DsGetNCChangesRequest8 req8; +# } drsuapi_DsGetNCChangesRequest; + +# typedef struct { +# } drsuapi_DsGetNCChangesCtr7; + +# typedef [switch_type(int32)] union { +# [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; +# } drsuapi_DsGetNCChangesCtr; + + WERROR drsuapi_DsGetNCChanges( +# [in,ref] policy_handle *bind_handle, +# [in,out] int32 level, +# [in,switch_is(level)] drsuapi_DsGetNCChangesRequest req, +# [out,switch_is(level)] drsuapi_DsGetNCChangesCtr ctr + ); + + /*****************/ + /* Function 0x04 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE = 0x00000002, + DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE = 0x00000004, + DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE = 0x00000008, + DRSUAPI_DS_REPLICA_UPDATE_0x00000010 = 0x00000010 + } drsuapi_DsReplicaUpdateRefsOptions; + +# typedef struct { +# uint32 unknown1; +# uint32 unknown2; +# GUID dest_dsa_guid; +# drsuapi_DsReplicaUpdateRefsOptions options; +# drsuapi_DsReplicaSyncRequest1Info sync_req_info1; +# ascstr dest_dsa_dns_name; +# } drsuapi_DsReplicaUpdateRefsRequest1; +# +# typedef [switch_type(int32)] union { +# [case(1)] drsuapi_DsReplicaUpdateRefsRequest1 req1; +# } drsuapi_DsReplicaUpdateRefsRequest; + + WERROR drsuapi_DsReplicaUpdateRefs( +# [in,ref] policy_handle *bind_handle, +# [in] int32 level, +# [in,switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req + ); + + /*****************/ + /* Function 0x05 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002 + /* TODO ... */ + } drsuapi_DsReplicaAddOptions; + + WERROR DRSUAPI_REPLICA_ADD(); + + /*****************/ + /* Function 0x06 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_DELETE_WRITEABLE = 0x00000002 + /* TODO ... */ + } drsuapi_DsReplicaDeleteOptions; + + WERROR DRSUAPI_REPLICA_DEL(); + + /*****************/ + /* Function 0x07 */ + typedef bitmap { + DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION = 0x00000001, + DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE = 0x00000002 + } drsuapi_DsReplicaModifyOptions; + + WERROR DRSUAPI_REPLICA_MODIFY(); + + /*****************/ + /* Function 0x08 */ + WERROR DRSUAPI_VERIFY_NAMES(); + + /*****************/ + /* Function 0x09 */ + WERROR DRSUAPI_GET_MEMBERSHIPS(); + + /*****************/ + /* Function 0x0a */ + WERROR DRSUAPI_INTER_DOMAIN_MOVE(); + + /*****************/ + /* Function 0x0b */ + WERROR DRSUAPI_GET_NT4_CHANGELOG(); + + /*****************/ + /* Function 0x0c */ + typedef [v1_enum] enum { + DRSUAPI_DS_NAME_STATUS_OK = 0, + DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR = 1, + DRSUAPI_DS_NAME_STATUS_NOT_FOUND = 2, + DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE = 3, + DRSUAPI_DS_NAME_STATUS_NO_MAPPING = 4, + DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY = 5, + DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING = 6, + DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL = 7 + } drsuapi_DsNameStatus; + + typedef [v1_enum] enum { + DRSUAPI_DS_NAME_FLAG_NO_FLAGS = 0x0, + DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1, + DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC = 0x2, + DRSUAPI_DS_NAME_FLAG_GCVERIFY = 0x4, + DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL = 0x8 + } drsuapi_DsNameFlags; + + typedef [v1_enum] enum { + DRSUAPI_DS_NAME_FORMAT_UKNOWN = 0, + DRSUAPI_DS_NAME_FORMAT_FQDN_1779 = 1, + DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT = 2, + DRSUAPI_DS_NAME_FORMAT_DISPLAY = 3, + DRSUAPI_DS_NAME_FORMAT_GUID = 6, + DRSUAPI_DS_NAME_FORMAT_CANONICAL = 7, + DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL = 8, + DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX = 9, + DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL = 10, + DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY = 11, + DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN = 12 + } drsuapi_DsNameFormat; + + typedef struct { + unistr *str; + } drsuapi_DsNameString; + + typedef struct { + uint32 unknown1; /* 0x000004e4 */ + uint32 unknown2; /* 0x00000407 */ + drsuapi_DsNameFlags format_flags; + drsuapi_DsNameFormat format_offered; + drsuapi_DsNameFormat format_desired; + [range(1,10000)] uint32 count; + [size_is(count)] drsuapi_DsNameString *names[]; + } drsuapi_DsNameRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsNameRequest1 req1; + } drsuapi_DsNameRequest; + + typedef struct { + drsuapi_DsNameStatus status; + unistr *dns_domain_name; + unistr *result_name; + } drsuapi_DsNameInfo1; + + typedef struct { + uint32 count; + [size_is(count)] drsuapi_DsNameInfo1 *array[]; + } drsuapi_DsNameCtr1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsNameCtr1 *ctr1; + } drsuapi_DsNameCtr; + + WERROR drsuapi_DsCrackNames( + [in,ref] policy_handle *bind_handle, + [in, out] int32 level, + [in,switch_is(level)] drsuapi_DsNameRequest req, + [out,switch_is(level)] drsuapi_DsNameCtr ctr + ); + + /*****************/ + /* Function 0x0d */ + typedef [v1_enum] enum { + DRSUAPI_DS_SPN_OPERATION_ADD = 0, + DRSUAPI_DS_SPN_OPERATION_REPLACE= 1, + DRSUAPI_DS_SPN_OPERATION_DELETE = 2 + } drsuapi_DsSpnOperation; + + typedef struct { + drsuapi_DsSpnOperation operation; + uint32 unknown1; + unistr *object_dn; + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsNameString *spn_names[]; + } drsuapi_DsWriteAccountSpnRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; + } drsuapi_DsWriteAccountSpnRequest; + + typedef struct { +# WERROR status; +uint32 status; + } drsuapi_DsWriteAccountSpnResult1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; + } drsuapi_DsWriteAccountSpnResult; + + WERROR drsuapi_DsWriteAccountSpn( + [in,ref] policy_handle *bind_handle, + [in, out] int32 level, + [in,switch_is(level)] drsuapi_DsWriteAccountSpnRequest req, + [out,switch_is(level)] drsuapi_DsWriteAccountSpnResult res + ); + + /*****************/ + /* Function 0x0e */ + WERROR DRSUAPI_REMOVE_DS_SERVER(); + + /*****************/ + /* Function 0x0f */ + WERROR DRSUAPI_REMOVE_DS_DOMAIN(); + + /*****************/ + /* Function 0x10 */ + typedef struct { + unistr *domain_name; /* netbios or dns */ + int32 level; /* specifies the switch level for the request */ + } drsuapi_DsGetDCInfoRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsGetDCInfoRequest1 req1; + } drsuapi_DsGetDCInfoRequest; + + typedef struct { + unistr *netbios_name; + unistr *dns_name; + unistr *site_name; + unistr *computer_dn; + unistr *server_dn; + uint32 is_pdc; + uint32 is_enabled; + } drsuapi_DsGetDCInfo1; + + typedef struct { + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsGetDCInfo1 *array[]; + } drsuapi_DsGetDCInfoCtr1; + + typedef struct { + unistr *netbios_name; + unistr *dns_name; + unistr *site_name; + unistr *site_dn; + unistr *computer_dn; + unistr *server_dn; + unistr *ntds_dn; + uint32 is_pdc; + uint32 is_enabled; + uint32 is_gc; + GUID site_guid; + GUID computer_guid; + GUID server_guid; + GUID ntds_guid; + } drsuapi_DsGetDCInfo2; + + typedef struct { + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsGetDCInfo2 *array[]; + } drsuapi_DsGetDCInfoCtr2; + + typedef struct { + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + uint32 unknown4; + uint32 unknown5; + uint32 unknown6; + unistr *server_nt4_account; + } drsuapi_DsGetDCInfo01; + + typedef struct { + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsGetDCInfo01 *array[]; + } drsuapi_DsGetDCInfoCtr01; + + typedef [v1_enum] enum { + DRSUAPI_DC_INFO_CTR_1 = 1, + DRSUAPI_DC_INFO_CTR_2 = 2, + DRSUAPI_DC_INFO_CTR_01 = -1, + } drsuapi_DsGetDCInfoCtrLevels; + + typedef [switch_type(int32)] union { + [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; + [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; + [case(DRSUAPI_DC_INFO_CTR_01)] drsuapi_DsGetDCInfoCtr01 ctr01; + } drsuapi_DsGetDCInfoCtr; + + WERROR drsuapi_DsGetDomainControllerInfo( + [in,ref] policy_handle *bind_handle, + [in, out] int32 level, + [in,switch_is(level)] drsuapi_DsGetDCInfoRequest req, + [out,switch_is(level)] drsuapi_DsGetDCInfoCtr ctr + ); + + /*****************/ + /* Function 0x11 */ + WERROR drsuapi_DsAddEntry(); + + /*****************/ + /* Function 0x12 */ + WERROR DRSUAPI_EXECUTE_KCC(); + + /*****************/ + /* Function 0x13 */ + typedef [v1_enum] enum { + DRSUAPI_DS_REPLICA_GET_INFO = 1, + DRSUAPI_DS_REPLICA_GET_INFO2 = 2 + } drsuapi_DsReplicaGetInfoLevel; + + typedef [v1_enum] enum { + DRSUAPI_DS_REPLICA_INFO_NEIGHBORS = 0, + DRSUAPI_DS_REPLICA_INFO_CURSORS = 1, + DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA = 2, + DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES = 3, + DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES = 4, + DRSUAPI_DS_REPLICA_INFO_PENDING_OPS = 5, + DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA = 6, + DRSUAPI_DS_REPLICA_INFO_CURSORS2 = 7, + DRSUAPI_DS_REPLICA_INFO_CURSORS3 = 8, + DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 = 9, + DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 = 10, + DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 = -2, + DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 = -4, + DRSUAPI_DS_REPLICA_INFO_CURSURS05 = -5, + DRSUAPI_DS_REPLICA_INFO_06 = -6 + } drsuapi_DsReplicaInfoType; + + typedef struct { + drsuapi_DsReplicaInfoType info_type; + unistr *object_dn; + GUID guid1; + } drsuapi_DsReplicaGetInfoRequest1; + + typedef struct { + drsuapi_DsReplicaInfoType info_type; + unistr *object_dn; + GUID guid1; + uint32 unknown1; + unistr *string1; + unistr *string2; + uint32 unknown2; + } drsuapi_DsReplicaGetInfoRequest2; + + typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { + [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; + [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; + } drsuapi_DsReplicaGetInfoRequest; + + typedef struct { + unistr *naming_context_dn; + unistr *source_dsa_obj_dn; + unistr *source_dsa_address; + unistr *transport_obj_dn; + uint32 replica_flags; + uint32 reserved; + GUID naming_context_obj_guid; + GUID source_dsa_obj_guid; + GUID source_dsa_invocation_id; + GUID transport_obj_guid; + hyper tmp_highest_usn; + hyper highest_usn; + NTTIME last_success; + NTTIME last_attempt; +# WERROR result_last_attempt; +uint32 result_last_attempt; + uint32 consecutive_sync_failures; + } drsuapi_DsReplicaNeighbour; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaNeighbour array[]; + } drsuapi_DsReplicaNeighbourCtr; + + typedef struct { + GUID source_dsa_invocation_id; + hyper highest_usn; + } drsuapi_DsReplicaCoursor; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaCoursor array[]; + } drsuapi_DsReplicaCoursorCtr; + + typedef struct { + unistr *attribute_name; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + hyper originating_usn; + hyper local_usn; + } drsuapi_DsReplicaObjMetaData; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaObjMetaData array[]; + } drsuapi_DsReplicaObjMetaDataCtr; + + typedef struct { + unistr *dsa_obj_dn; + GUID dsa_obj_guid; + NTTIME first_failure; + uint32 num_failures; +# WERROR last_result; +uint32 last_result; + } drsuapi_DsReplicaKccDsaFailure; + + typedef struct { + uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplicaKccDsaFailure array[]; + } drsuapi_DsReplicaKccDsaFailuresCtr; + + typedef enum { + DRSUAPI_DS_REPLICA_OP_TYPE_SYNC = 0, + DRSUAPI_DS_REPLICA_OP_TYPE_ADD = 1, + DRSUAPI_DS_REPLICA_OP_TYPE_DELETE = 2, + DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY = 3, + DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS = 4 + } drsuapi_DsReplicaOpType; + + typedef [switch_type(drsuapi_DsReplicaOpType)] union { + [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)] drsuapi_DsReplicaSyncOptions sync; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)] drsuapi_DsReplicaAddOptions add; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] drsuapi_DsReplicaDeleteOptions delete; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)] drsuapi_DsReplicaModifyOptions modify; + [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)] drsuapi_DsReplicaUpdateRefsOptions update_refs; + [default] uint32 unknown; + } drsuapi_DsRplicaOpOptions; + + typedef struct { + NTTIME operation_start; + uint32 serial_num; /* unique till reboot */ + uint32 priority; + drsuapi_DsReplicaOpType operation_type; + [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options; + unistr *nc_dn; + unistr *remote_dsa_obj_dn; + unistr *remote_dsa_address; + GUID nc_obj_guid; + GUID remote_dsa_obj_guid; + } drsuapi_DsReplicaOp; + + typedef struct { + NTTIME time; + uint32 count; + [size_is(count)] drsuapi_DsReplicaOp array[]; + } drsuapi_DsReplicaOpCtr; + + typedef struct { + unistr *attribute_name; + unistr *object_dn; + uint32 value_length; + [size_is(value_length)] uint8 *value[]; + NTTIME deleted; + NTTIME created; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + hyper originating_usn; + hyper local_usn; + } drsuapi_DsReplicaAttrValMetaData; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[]; + } drsuapi_DsReplicaAttrValMetaDataCtr; + + typedef struct { + GUID source_dsa_invocation_id; + hyper highest_usn; + NTTIME last_sync_success; + } drsuapi_DsReplicaCoursor2; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaCoursor2 array[]; + } drsuapi_DsReplicaCoursor2Ctr; + + typedef struct { + GUID source_dsa_invocation_id; + hyper highest_usn; + NTTIME last_sync_success; + unistr *source_dsa_obj_dn; + } drsuapi_DsReplicaCoursor3; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaCoursor3 array[]; + } drsuapi_DsReplicaCoursor3Ctr; + + typedef struct { + unistr *attribute_name; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + hyper originating_usn; + hyper local_usn; + unistr *originating_dsa_obj_dn; + } drsuapi_DsReplicaObjMetaData2; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[]; + } drsuapi_DsReplicaObjMetaData2Ctr; + + typedef struct { + unistr *attribute_name; + unistr *object_dn; + uint32 value_length; + [size_is(value_length)] uint8 *value[]; + NTTIME deleted; + NTTIME created; + uint32 version; + NTTIME originating_last_changed; + GUID originating_dsa_invocation_id; + hyper originating_usn; + hyper local_usn; + unistr *originating_dsa_obj_dn; + } drsuapi_DsReplicaAttrValMetaData2; + + typedef struct { + uint32 count; + int32 enumeration_context; + [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[]; + } drsuapi_DsReplicaAttrValMetaData2Ctr; + +# typedef struct { +# hyper u1; /* session number? */ +# uint32 u2; +# uint32 u3; +# GUID bind_guid; +# NTTIME_1sec bind_time; +# uint32 u4; /* flags? */ +# uint32 u5; +# } drsuapi_DsReplicaConnection04; +# +# typedef struct { +# [range(0,10000)] uint32 count; +# uint32 reserved; +# [size_is(count)] drsuapi_DsReplicaConnection04 array[]; +# } drsuapi_DsReplicaConnection04Ctr; +# + typedef struct { + uint32 u1; + uint32 u2; + [range(0,0x100000)] uint32 count; + uint32 u3; + [size_is(count)] drsuapi_DsReplicaCoursor array[]; + } drsuapi_DsReplicaCoursor05Ctr; + + typedef struct { + unistr *str1; + uint32 u1; + uint32 u2; + uint32 u3; + uint32 u4; + uint32 u5; + hyper u6; + uint32 u7; + } drsuapi_DsReplica06; + + typedef struct { + [range(0,256)] uint32 count; + uint32 reserved; + [size_is(count)] drsuapi_DsReplica06 array[]; + } drsuapi_DsReplica06Ctr; + + typedef [switch_type(drsuapi_DsReplicaInfoType)] union { + [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCoursorCtr *coursors; + [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; + [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; + [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; + [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] drsuapi_DsReplicaOpCtr *pendingops; + [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] drsuapi_DsReplicaCoursor2Ctr *coursors2; + [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCoursor3Ctr *coursors3; + [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; + [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; + [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02; +# [case(DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04; + [case(DRSUAPI_DS_REPLICA_INFO_CURSURS05)] drsuapi_DsReplicaCoursor05Ctr *coursors05; + [case(DRSUAPI_DS_REPLICA_INFO_06)] drsuapi_DsReplica06Ctr *i06; + } drsuapi_DsReplicaInfo; + + WERROR drsuapi_DsReplicaGetInfo( + [in,ref] policy_handle *bind_handle, + [in] drsuapi_DsReplicaGetInfoLevel level, + [in,switch_is(level)] drsuapi_DsReplicaGetInfoRequest req, + [out] drsuapi_DsReplicaInfoType info_type, + [out,switch_is(info_type)] drsuapi_DsReplicaInfo info + ); + + /*****************/ + /* Function 0x14 */ + WERROR DRSUAPI_ADD_SID_HISTORY(); + + /*****************/ + /* Function 0x15 */ + WERROR DRSUAPI_GET_MEMBERSHIPS2(); + + /*****************/ + /* Function 0x16 */ + WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS(); + + /*****************/ + /* Function 0x17 */ + WERROR DRSUAPI_GET_OBJECT_EXISTENCE(); + + /*****************/ + /* Function 0x18 */ + WERROR DRSUAPI_QUERY_SITES_BY_COST(); +} diff --git a/epan/dissectors/dcerpc/drsuapi/template.c b/epan/dissectors/dcerpc/drsuapi/template.c new file mode 100755 index 0000000000..fd4c1ff7db --- /dev/null +++ b/epan/dissectors/dcerpc/drsuapi/template.c @@ -0,0 +1,79 @@ +/* DO NOT EDIT + * This dissector is autogenerated + */ + +/* packet-dcerpc-drsuapi.c + * Routines for DRSUAPI packet disassembly + * ronnie sahlberg 2005 + * + * $Id: packet-dcerpc-drsuapi.c 11592 2004-08-03 02:28:49Z guy $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#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" + +static int proto_drsuapi = -1; +ETH_HF + +ETH_ETT + +ETH_CODE + +void +proto_register_drsuapi(void) +{ + static hf_register_info hf[] = { + +ETH_HFARR + }; + + static gint *ett[] = { +ETH_ETTARR + }; + + proto_drsuapi = proto_register_protocol( + "DRSUAPI", + "DRSUAPI", "drsuapi"); + proto_register_field_array(proto_drsuapi, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); +} + +static dcerpc_sub_dissector function_dissectors[] = { +ETH_FT + { 0, NULL, NULL, NULL }, +}; + +void +proto_reg_handoff_drsuapi(void) +{ +ETH_HANDOFF +} + diff --git a/epan/dissectors/dcerpc/drsuapi/template.h b/epan/dissectors/dcerpc/drsuapi/template.h new file mode 100755 index 0000000000..1b5ee9a58e --- /dev/null +++ b/epan/dissectors/dcerpc/drsuapi/template.h @@ -0,0 +1,34 @@ +/* DO NOT EDIT + * This dissector is autogenerated + * ronnie sahlberg 2005 + */ +/* packet-dcerpc-drsuapi.h + * Routines for DRSUAPI packet disassembly + * + * $Id: packet-dcerpc-drsuapi.h 11410 2004-07-18 18:06:47Z gram $ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs <gerald@ethereal.com> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __PACKET_DCERPC_DRSUAPI_H +#define __PACKET_DCERPC_DRSUAPI_H + +ETH_HDR + +#endif /* packet-dcerpc-drsuapi.h */ diff --git a/epan/dissectors/dcerpc/idl2eth.c b/epan/dissectors/dcerpc/idl2eth.c index 87fd3410e0..a8aefbf716 100644 --- a/epan/dissectors/dcerpc/idl2eth.c +++ b/epan/dissectors/dcerpc/idl2eth.c @@ -56,10 +56,12 @@ typedef struct _pointer_item_t { #define BI_LENGTH_IS 0x00000020 #define BI_POINTER 0x00000040 #define BI_BITMAP32 0x00000100 +#define BI_SWITCH_TYPE 0x00000200 typedef struct _bracket_item_t { long int flags; char *case_name; pointer_item_t *pointer_list; + int union_tag_size; } bracket_item_t; typedef struct _no_emit_item_t { @@ -360,6 +362,7 @@ prune_keyword_parameters(char *name) token_item_t * parsebrackets(token_item_t *ti, bracket_item_t **bracket){ bracket_item_t *br; + type_item_t *type_item; if(strcmp(ti->str, "[")){ fprintf(stderr, "ERROR: parsebrackets first token is not '['\n"); @@ -430,10 +433,12 @@ parsebrackets(token_item_t *ti, bracket_item_t **bracket){ if(!strcmp(ti->str, "default")){ br->flags|=BI_CASE; br->flags|=BI_CASE_DEFAULT; + br->case_name="default"; ti=ti->next; continue; } + /* in */ if(!strcmp(ti->str, "in")){ br->flags|=BI_IN; @@ -563,6 +568,34 @@ parsebrackets(token_item_t *ti, bracket_item_t **bracket){ continue; } + /* switch_type */ + if(!strcmp(ti->str, "switch_type")){ + br->flags|=BI_SWITCH_TYPE; + ti=ti->next; + + if(strcmp(ti->str, "(")){ + fprintf(stderr, "WARNING: parsebrackets switch_type was not followed by '('\n"); + Exit(10); + } + ti=ti->next; + + type_item=find_type(ti->str); + if(!type_item){ + fprintf(stderr, "ERROR : parsebrackets switch_type unknown type %s\n",ti->str); + Exit(10); + } + br->union_tag_size=type_item->alignment; + ti=ti->next; + + if(strcmp(ti->str, ")")){ + fprintf(stderr, "WARNING: parsebrackets switch_type did not end with ')'\n"); + Exit(10); + } + ti=ti->next; + + continue; + } + /* size_is */ if(!strcmp(ti->str, "size_is")){ br->flags|=BI_SIZE_IS; @@ -1319,6 +1352,7 @@ void parsetypedefstruct(int pass) FPRINTF(NULL,"\nSTRUCT:%s pass:%d\n-------\n",struct_name,pass); if(!check_if_to_emit(dissectorname)){ + FPRINTF(NULL,"NOEMIT Skipping this struct dissector.\n"); ti=tmpti; goto typedef_struct_finished; } @@ -1437,17 +1471,21 @@ void parsetypedefstruct(int pass) fixed_array_size=atoi(ti->str); sprintf(fss, "%d", fixed_array_size); - if(!strcmp("*", ti->str)){ + if(!strcmp("]", ti->str)){ + /* this is just a normal [] array */ + fixed_array_size=0; + } else if(!strcmp("*", ti->str)){ if(bi && !(bi->flags|BI_POINTER)){ pi=prepend_pointer_list(pi, 1); } fixed_array_size=0; is_array_of_pointers=1; + ti=ti->next; } else if(strcmp(fss, ti->str)){ fprintf(stderr, "ERROR: typedefstruct (%s) fixed array size looks different to calculated one %s!=%s\n", struct_name, fss, ti->str); + ti=ti->next; Exit(10); } - ti=ti->next; if(strcmp(ti->str, "]")){ fprintf(stderr, "ERROR: typedefstruct fixed array does not end with ']''\n"); @@ -1908,6 +1946,17 @@ void parsetypedefunion(int pass) } ti=ti->next; + if(!strcmp(ti->str, "[")){ + ti=parsebrackets(ti, &bi); + } + /* check that we know how to handle the bracket thing */ + if(bi){ + if(bi->flags&(~(BI_SWITCH_TYPE))){ + fprintf(stderr, "ERROR: typedefunion unknown bracket flags encountered : 0x%08x\n",bi->flags); + Exit(10); + } + } + if(strcmp(ti->str, "union")){ fprintf(stderr, "ERROR: typedefunion second token is not 'union'\n"); Exit(10); @@ -1939,8 +1988,11 @@ void parsetypedefunion(int pass) FPRINTF(NULL,"\nUNION:%s pass:%d\n-------\n",union_name,pass); - tag_alignment=get_union_tag_size(union_name); - + if(bi->flags&BI_SWITCH_TYPE){ + tag_alignment=bi->union_tag_size; + } else { + tag_alignment=get_union_tag_size(union_name); + } /* this is pass 0 so reset alignment to the minimum possible value and update as items are processed. @@ -2047,6 +2099,7 @@ void parsetypedefunion(int pass) fprintf(stderr, "ERROR : typedefunion no case found in brackets\n"); Exit(10); } +#ifdef REMOVED /* only empty default cases for now */ if(bi->flags&BI_CASE_DEFAULT){ if(strcmp(ti->str,";")){ @@ -2056,6 +2109,7 @@ void parsetypedefunion(int pass) ti=ti->next; continue; } +#endif /* just skip all and any 'empty' arms */ if(!strcmp(ti->str, ";")){ @@ -2129,8 +2183,12 @@ void parsetypedefunion(int pass) sprintf(tmpstr, "%s_%s", ptmpstr, "unique"); ptmpstr=strdup(tmpstr); } - - FPRINTF(eth_code, " case %s:\n",bi->case_name); + + if(bi->flags&BI_CASE_DEFAULT){ + FPRINTF(eth_code, " default:\n"); + } else { + FPRINTF(eth_code, " case %s:\n",bi->case_name); + } /* each arm itself is aligned independently */ switch(item_alignment){ case 1: @@ -2984,11 +3042,19 @@ int main(int argc, char *argv[]) } /* typedef union { */ - if( !strcmp(token_list->str,"typedef") - &&!strcmp(token_list->next->str,"union") ){ - parsetypedefunion(0); - parsetypedefunion(1); - continue; + if( !strcmp(token_list->str,"typedef") ){ + token_item_t *tmpti; + + tmpti=token_list->next; + if( !strcmp(tmpti->str, "[") ){ + tmpti=parsebrackets(tmpti, &bi); + /* do some sanity checks here of bi->flags */ + } + if( !strcmp(tmpti->str, "union") ){ + parsetypedefunion(0); + parsetypedefunion(1); + continue; + } } /* typedef bitmap { */ diff --git a/epan/dissectors/packet-dcerpc-drsuapi.c b/epan/dissectors/packet-dcerpc-drsuapi.c index 1f16f5ef52..2692800698 100644 --- a/epan/dissectors/packet-dcerpc-drsuapi.c +++ b/epan/dissectors/packet-dcerpc-drsuapi.c @@ -1,6 +1,10 @@ +/* DO NOT EDIT + * This dissector is autogenerated + */ + /* packet-dcerpc-drsuapi.c - * Routines for the drsuapi (Directory Replication Service) MSRPC interface - * Copyright 2003 Jean-Baptiste Marchand <jbm@hsc.fr> + * Routines for DRSUAPI packet disassembly + * ronnie sahlberg 2005 * * $Id$ * @@ -23,100 +27,7934 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - #ifdef HAVE_CONFIG_H #include "config.h" #endif #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" -static int proto_dcerpc_drsuapi = -1; +static int proto_drsuapi = -1; + + +/* INCLUDED FILE : ETH_HF */ +static int hf_drsuapi_opnum = -1; +static int hf_drsuapi_rc = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_00000080 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_00100000 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_20000000 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_40000000 = -1; +static int hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_80000000 = -1; +static int hf_drsuapi_DsBindInfo24_supported_extensions = -1; +static int hf_drsuapi_DsBindInfo24_site_guid = -1; +static int hf_drsuapi_DsBindInfo24_u1 = -1; +static int hf_drsuapi_DsBindInfo28_supported_extensions = -1; +static int hf_drsuapi_DsBindInfo28_site_guid = -1; +static int hf_drsuapi_DsBindInfo28_u1 = -1; +static int hf_drsuapi_DsBindInfo28_repl_epoch = -1; +static int hf_drsuapi_DsUnbind_bind_handle = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PERIODIC = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_URGENT = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FORCE = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_TWO_WAY = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INITIAL = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ABANDONED = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_REQUEUE = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_CRITICAL = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS = -1; +static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PREEMPTED = -1; +static int hf_drsuapi_DsGetNCChangesUsnTriple_usn1 = -1; +static int hf_drsuapi_DsGetNCChangesUsnTriple_usn2 = -1; +static int hf_drsuapi_DsGetNCChangesUsnTriple_usn3 = -1; +static int hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION = -1; +static int hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE = -1; +static int hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE = -1; +static int hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE = -1; +static int hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_0x00000010 = -1; +static int hf_drsuapi_DsReplicaAddOptions_DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = -1; +static int hf_drsuapi_DsReplicaAddOptions_DRSUAPI_DS_REPLICA_ADD_WRITEABLE = -1; +static int hf_drsuapi_DsReplicaDeleteOptions_DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION = -1; +static int hf_drsuapi_DsReplicaDeleteOptions_DRSUAPI_DS_REPLICA_DELETE_WRITEABLE = -1; +static int hf_drsuapi_DsReplicaModifyOptions_DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION = -1; +static int hf_drsuapi_DsReplicaModifyOptions_DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE = -1; +static int hf_drsuapi_DsNameString_str = -1; +static int hf_drsuapi_DsNameRequest1_unknown1 = -1; +static int hf_drsuapi_DsNameRequest1_unknown2 = -1; +static int hf_drsuapi_DsNameRequest1_format_flags = -1; +static int hf_drsuapi_DsNameRequest1_format_offered = -1; +static int hf_drsuapi_DsNameRequest1_format_desired = -1; +static int hf_drsuapi_DsNameRequest1_count = -1; +static int hf_drsuapi_DsNameRequest1_names = -1; +static int hf_drsuapi_DsNameRequest_1_req1 = -1; +static int hf_drsuapi_DsNameInfo1_status = -1; +static int hf_drsuapi_DsNameInfo1_dns_domain_name = -1; +static int hf_drsuapi_DsNameInfo1_result_name = -1; +static int hf_drsuapi_DsNameCtr1_count = -1; +static int hf_drsuapi_DsNameCtr1_array = -1; +static int hf_drsuapi_DsNameCtr_1_ctr1 = -1; +static int hf_drsuapi_DsCrackNames_bind_handle = -1; +static int hf_drsuapi_DsCrackNames_level = -1; +static int hf_drsuapi_DsCrackNames_req = -1; +static int hf_drsuapi_DsCrackNames_ctr = -1; +static int hf_drsuapi_DsWriteAccountSpnRequest1_operation = -1; +static int hf_drsuapi_DsWriteAccountSpnRequest1_unknown1 = -1; +static int hf_drsuapi_DsWriteAccountSpnRequest1_object_dn = -1; +static int hf_drsuapi_DsWriteAccountSpnRequest1_count = -1; +static int hf_drsuapi_DsWriteAccountSpnRequest1_spn_names = -1; +static int hf_drsuapi_DsWriteAccountSpnRequest_1_req1 = -1; +static int hf_drsuapi_DsWriteAccountSpnResult1_status = -1; +static int hf_drsuapi_DsWriteAccountSpnResult_1_res1 = -1; +static int hf_drsuapi_DsWriteAccountSpn_bind_handle = -1; +static int hf_drsuapi_DsWriteAccountSpn_level = -1; +static int hf_drsuapi_DsWriteAccountSpn_req = -1; +static int hf_drsuapi_DsWriteAccountSpn_res = -1; +static int hf_drsuapi_DsGetDCInfoRequest1_domain_name = -1; +static int hf_drsuapi_DsGetDCInfoRequest1_level = -1; +static int hf_drsuapi_DsGetDCInfoRequest_1_req1 = -1; +static int hf_drsuapi_DsGetDCInfo1_netbios_name = -1; +static int hf_drsuapi_DsGetDCInfo1_dns_name = -1; +static int hf_drsuapi_DsGetDCInfo1_site_name = -1; +static int hf_drsuapi_DsGetDCInfo1_computer_dn = -1; +static int hf_drsuapi_DsGetDCInfo1_server_dn = -1; +static int hf_drsuapi_DsGetDCInfo1_is_pdc = -1; +static int hf_drsuapi_DsGetDCInfo1_is_enabled = -1; +static int hf_drsuapi_DsGetDCInfoCtr1_count = -1; +static int hf_drsuapi_DsGetDCInfoCtr1_array = -1; +static int hf_drsuapi_DsGetDCInfo2_netbios_name = -1; +static int hf_drsuapi_DsGetDCInfo2_dns_name = -1; +static int hf_drsuapi_DsGetDCInfo2_site_name = -1; +static int hf_drsuapi_DsGetDCInfo2_site_dn = -1; +static int hf_drsuapi_DsGetDCInfo2_computer_dn = -1; +static int hf_drsuapi_DsGetDCInfo2_server_dn = -1; +static int hf_drsuapi_DsGetDCInfo2_ntds_dn = -1; +static int hf_drsuapi_DsGetDCInfo2_is_pdc = -1; +static int hf_drsuapi_DsGetDCInfo2_is_enabled = -1; +static int hf_drsuapi_DsGetDCInfo2_is_gc = -1; +static int hf_drsuapi_DsGetDCInfo2_site_guid = -1; +static int hf_drsuapi_DsGetDCInfo2_computer_guid = -1; +static int hf_drsuapi_DsGetDCInfo2_server_guid = -1; +static int hf_drsuapi_DsGetDCInfo2_ntds_guid = -1; +static int hf_drsuapi_DsGetDCInfoCtr2_count = -1; +static int hf_drsuapi_DsGetDCInfoCtr2_array = -1; +static int hf_drsuapi_DsGetDCInfo01_unknown1 = -1; +static int hf_drsuapi_DsGetDCInfo01_unknown2 = -1; +static int hf_drsuapi_DsGetDCInfo01_unknown3 = -1; +static int hf_drsuapi_DsGetDCInfo01_unknown4 = -1; +static int hf_drsuapi_DsGetDCInfo01_unknown5 = -1; +static int hf_drsuapi_DsGetDCInfo01_unknown6 = -1; +static int hf_drsuapi_DsGetDCInfo01_server_nt4_account = -1; +static int hf_drsuapi_DsGetDCInfoCtr01_count = -1; +static int hf_drsuapi_DsGetDCInfoCtr01_array = -1; +static int hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_1_ctr1 = -1; +static int hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_2_ctr2 = -1; +static int hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_01_ctr01 = -1; +static int hf_drsuapi_DsGetDomainControllerInfo_bind_handle = -1; +static int hf_drsuapi_DsGetDomainControllerInfo_level = -1; +static int hf_drsuapi_DsGetDomainControllerInfo_req = -1; +static int hf_drsuapi_DsGetDomainControllerInfo_ctr = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest1_info_type = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest1_object_dn = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest1_guid1 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_info_type = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_object_dn = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_guid1 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_unknown1 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_string1 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_string2 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest2_unknown2 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO_req1 = -1; +static int hf_drsuapi_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO2_req2 = -1; +static int hf_drsuapi_DsReplicaNeighbour_naming_context_dn = -1; +static int hf_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn = -1; +static int hf_drsuapi_DsReplicaNeighbour_source_dsa_address = -1; +static int hf_drsuapi_DsReplicaNeighbour_transport_obj_dn = -1; +static int hf_drsuapi_DsReplicaNeighbour_replica_flags = -1; +static int hf_drsuapi_DsReplicaNeighbour_reserved = -1; +static int hf_drsuapi_DsReplicaNeighbour_naming_context_obj_guid = -1; +static int hf_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid = -1; +static int hf_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaNeighbour_transport_obj_guid = -1; +static int hf_drsuapi_DsReplicaNeighbour_tmp_highest_usn = -1; +static int hf_drsuapi_DsReplicaNeighbour_highest_usn = -1; +static int hf_drsuapi_DsReplicaNeighbour_last_success = -1; +static int hf_drsuapi_DsReplicaNeighbour_last_attempt = -1; +static int hf_drsuapi_DsReplicaNeighbour_result_last_attempt = -1; +static int hf_drsuapi_DsReplicaNeighbour_consecutive_sync_failures = -1; +static int hf_drsuapi_DsReplicaNeighbourCtr_count = -1; +static int hf_drsuapi_DsReplicaNeighbourCtr_reserved = -1; +static int hf_drsuapi_DsReplicaNeighbourCtr_array = -1; +static int hf_drsuapi_DsReplicaCoursor_source_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaCoursor_highest_usn = -1; +static int hf_drsuapi_DsReplicaCoursorCtr_count = -1; +static int hf_drsuapi_DsReplicaCoursorCtr_reserved = -1; +static int hf_drsuapi_DsReplicaCoursorCtr_array = -1; +static int hf_drsuapi_DsReplicaObjMetaData_attribute_name = -1; +static int hf_drsuapi_DsReplicaObjMetaData_version = -1; +static int hf_drsuapi_DsReplicaObjMetaData_originating_last_changed = -1; +static int hf_drsuapi_DsReplicaObjMetaData_originating_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaObjMetaData_originating_usn = -1; +static int hf_drsuapi_DsReplicaObjMetaData_local_usn = -1; +static int hf_drsuapi_DsReplicaObjMetaDataCtr_count = -1; +static int hf_drsuapi_DsReplicaObjMetaDataCtr_reserved = -1; +static int hf_drsuapi_DsReplicaObjMetaDataCtr_array = -1; +static int hf_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn = -1; +static int hf_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid = -1; +static int hf_drsuapi_DsReplicaKccDsaFailure_first_failure = -1; +static int hf_drsuapi_DsReplicaKccDsaFailure_num_failures = -1; +static int hf_drsuapi_DsReplicaKccDsaFailure_last_result = -1; +static int hf_drsuapi_DsReplicaKccDsaFailuresCtr_count = -1; +static int hf_drsuapi_DsReplicaKccDsaFailuresCtr_reserved = -1; +static int hf_drsuapi_DsReplicaKccDsaFailuresCtr_array = -1; +static int hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_SYNC_sync = -1; +static int hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_ADD_add = -1; +static int hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_DELETE_delete = -1; +static int hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY_modify = -1; +static int hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS_update_refs = -1; +static int hf_drsuapi_DsRplicaOpOptions_default_unknown = -1; +static int hf_drsuapi_DsReplicaOp_operation_start = -1; +static int hf_drsuapi_DsReplicaOp_serial_num = -1; +static int hf_drsuapi_DsReplicaOp_priority = -1; +static int hf_drsuapi_DsReplicaOp_operation_type = -1; +static int hf_drsuapi_DsReplicaOp_options = -1; +static int hf_drsuapi_DsReplicaOp_nc_dn = -1; +static int hf_drsuapi_DsReplicaOp_remote_dsa_obj_dn = -1; +static int hf_drsuapi_DsReplicaOp_remote_dsa_address = -1; +static int hf_drsuapi_DsReplicaOp_nc_obj_guid = -1; +static int hf_drsuapi_DsReplicaOp_remote_dsa_obj_guid = -1; +static int hf_drsuapi_DsReplicaOpCtr_time = -1; +static int hf_drsuapi_DsReplicaOpCtr_count = -1; +static int hf_drsuapi_DsReplicaOpCtr_array = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_attribute_name = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_object_dn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_value_length = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_value = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_deleted = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_created = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_version = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_originating_last_changed = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_originating_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_originating_usn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData_local_usn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaDataCtr_count = -1; +static int hf_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context = -1; +static int hf_drsuapi_DsReplicaAttrValMetaDataCtr_array = -1; +static int hf_drsuapi_DsReplicaCoursor2_source_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaCoursor2_highest_usn = -1; +static int hf_drsuapi_DsReplicaCoursor2_last_sync_success = -1; +static int hf_drsuapi_DsReplicaCoursor2Ctr_count = -1; +static int hf_drsuapi_DsReplicaCoursor2Ctr_enumeration_context = -1; +static int hf_drsuapi_DsReplicaCoursor2Ctr_array = -1; +static int hf_drsuapi_DsReplicaCoursor3_source_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaCoursor3_highest_usn = -1; +static int hf_drsuapi_DsReplicaCoursor3_last_sync_success = -1; +static int hf_drsuapi_DsReplicaCoursor3_source_dsa_obj_dn = -1; +static int hf_drsuapi_DsReplicaCoursor3Ctr_count = -1; +static int hf_drsuapi_DsReplicaCoursor3Ctr_enumeration_context = -1; +static int hf_drsuapi_DsReplicaCoursor3Ctr_array = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_attribute_name = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_version = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_originating_last_changed = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_originating_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_originating_usn = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_local_usn = -1; +static int hf_drsuapi_DsReplicaObjMetaData2_originating_dsa_obj_dn = -1; +static int hf_drsuapi_DsReplicaObjMetaData2Ctr_count = -1; +static int hf_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context = -1; +static int hf_drsuapi_DsReplicaObjMetaData2Ctr_array = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_attribute_name = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_object_dn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_value_length = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_value = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_deleted = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_created = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_version = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_originating_last_changed = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_invocation_id = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_originating_usn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_local_usn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_obj_dn = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2Ctr_count = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context = -1; +static int hf_drsuapi_DsReplicaAttrValMetaData2Ctr_array = -1; +static int hf_drsuapi_DsReplicaCoursor05Ctr_u1 = -1; +static int hf_drsuapi_DsReplicaCoursor05Ctr_u2 = -1; +static int hf_drsuapi_DsReplicaCoursor05Ctr_count = -1; +static int hf_drsuapi_DsReplicaCoursor05Ctr_u3 = -1; +static int hf_drsuapi_DsReplicaCoursor05Ctr_array = -1; +static int hf_drsuapi_DsReplica06_str1 = -1; +static int hf_drsuapi_DsReplica06_u1 = -1; +static int hf_drsuapi_DsReplica06_u2 = -1; +static int hf_drsuapi_DsReplica06_u3 = -1; +static int hf_drsuapi_DsReplica06_u4 = -1; +static int hf_drsuapi_DsReplica06_u5 = -1; +static int hf_drsuapi_DsReplica06_u6 = -1; +static int hf_drsuapi_DsReplica06_u7 = -1; +static int hf_drsuapi_DsReplica06Ctr_count = -1; +static int hf_drsuapi_DsReplica06Ctr_reserved = -1; +static int hf_drsuapi_DsReplica06Ctr_array = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2 = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3 = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2 = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2 = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02 = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05 = -1; +static int hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06 = -1; +static int hf_drsuapi_DsReplicaGetInfo_bind_handle = -1; +static int hf_drsuapi_DsReplicaGetInfo_level = -1; +static int hf_drsuapi_DsReplicaGetInfo_req = -1; +static int hf_drsuapi_DsReplicaGetInfo_info_type = -1; +static int hf_drsuapi_DsReplicaGetInfo_info = -1; +/* END OF INCLUDED FILE : ETH_HF */ + + + + -static int hf_drsuapi_opnum = 0; +/* INCLUDED FILE : ETH_ETT */ +static gint ett_drsuapi = -1; +static gint ett_drsuapi_SupportedExtensions = -1; +static gint ett_drsuapi_DsBindInfo24 = -1; +static gint ett_drsuapi_DsBindInfo28 = -1; +static gint ett_drsuapi_DsReplicaSyncOptions = -1; +static gint ett_drsuapi_DsGetNCChangesUsnTriple = -1; +static gint ett_drsuapi_DsReplicaUpdateRefsOptions = -1; +static gint ett_drsuapi_DsReplicaAddOptions = -1; +static gint ett_drsuapi_DsReplicaDeleteOptions = -1; +static gint ett_drsuapi_DsReplicaModifyOptions = -1; +static gint ett_drsuapi_DsNameString = -1; +static gint ett_drsuapi_DsNameRequest1 = -1; +static gint ett_drsuapi_DsNameRequest = -1; +static gint ett_drsuapi_DsNameInfo1 = -1; +static gint ett_drsuapi_DsNameCtr1 = -1; +static gint ett_drsuapi_DsNameCtr = -1; +static gint ett_drsuapi_DsWriteAccountSpnRequest1 = -1; +static gint ett_drsuapi_DsWriteAccountSpnRequest = -1; +static gint ett_drsuapi_DsWriteAccountSpnResult1 = -1; +static gint ett_drsuapi_DsWriteAccountSpnResult = -1; +static gint ett_drsuapi_DsGetDCInfoRequest1 = -1; +static gint ett_drsuapi_DsGetDCInfoRequest = -1; +static gint ett_drsuapi_DsGetDCInfo1 = -1; +static gint ett_drsuapi_DsGetDCInfoCtr1 = -1; +static gint ett_drsuapi_DsGetDCInfo2 = -1; +static gint ett_drsuapi_DsGetDCInfoCtr2 = -1; +static gint ett_drsuapi_DsGetDCInfo01 = -1; +static gint ett_drsuapi_DsGetDCInfoCtr01 = -1; +static gint ett_drsuapi_DsGetDCInfoCtr = -1; +static gint ett_drsuapi_DsReplicaGetInfoRequest1 = -1; +static gint ett_drsuapi_DsReplicaGetInfoRequest2 = -1; +static gint ett_drsuapi_DsReplicaGetInfoRequest = -1; +static gint ett_drsuapi_DsReplicaNeighbour = -1; +static gint ett_drsuapi_DsReplicaNeighbourCtr = -1; +static gint ett_drsuapi_DsReplicaCoursor = -1; +static gint ett_drsuapi_DsReplicaCoursorCtr = -1; +static gint ett_drsuapi_DsReplicaObjMetaData = -1; +static gint ett_drsuapi_DsReplicaObjMetaDataCtr = -1; +static gint ett_drsuapi_DsReplicaKccDsaFailure = -1; +static gint ett_drsuapi_DsReplicaKccDsaFailuresCtr = -1; +static gint ett_drsuapi_DsRplicaOpOptions = -1; +static gint ett_drsuapi_DsReplicaOp = -1; +static gint ett_drsuapi_DsReplicaOpCtr = -1; +static gint ett_drsuapi_DsReplicaAttrValMetaData = -1; +static gint ett_drsuapi_DsReplicaAttrValMetaDataCtr = -1; +static gint ett_drsuapi_DsReplicaCoursor2 = -1; +static gint ett_drsuapi_DsReplicaCoursor2Ctr = -1; +static gint ett_drsuapi_DsReplicaCoursor3 = -1; +static gint ett_drsuapi_DsReplicaCoursor3Ctr = -1; +static gint ett_drsuapi_DsReplicaObjMetaData2 = -1; +static gint ett_drsuapi_DsReplicaObjMetaData2Ctr = -1; +static gint ett_drsuapi_DsReplicaAttrValMetaData2 = -1; +static gint ett_drsuapi_DsReplicaAttrValMetaData2Ctr = -1; +static gint ett_drsuapi_DsReplicaCoursor05Ctr = -1; +static gint ett_drsuapi_DsReplica06 = -1; +static gint ett_drsuapi_DsReplica06Ctr = -1; +static gint ett_drsuapi_DsReplicaInfo = -1; +/* END OF INCLUDED FILE : ETH_ETT */ -static gint ett_dcerpc_drsuapi = -1; -/* -IDL [ uuid(e3514235-4b06-11d1-ab04-00c04fc2dcd2), -IDL version(4.0), -IDL implicit_handle(handle_t rpc_binding) -IDL ] interface drsuapi -*/ + + +/* INCLUDED FILE : ETH_CODE */ static e_uuid_t uuid_dcerpc_drsuapi = { - 0xe3514235, 0x4b06, 0x11d1, - { 0xab, 0x04, 0x00, 0xc0, 0x4f, 0xc2, 0xdc, 0xd2 } -}; - -static guint16 ver_dcerpc_drsuapi = 4; - - -static dcerpc_sub_dissector dcerpc_drsuapi_dissectors[] = { - { DRSUAPI_BIND, "DRSBind", NULL, NULL}, - { DRSUAPI_UNBIND, "DRSUnbind", NULL, NULL}, - { DRSUAPI_REPLICA_SYNC, "DRSReplicaSync", NULL, NULL}, - { DRSUAPI_GET_NC_CHANGES, "DRSGetNCChanges", NULL, NULL}, - { DRSUAPI_UPDATE_REFS, "DRSUpdateRefs", NULL, NULL}, - { DRSUAPI_REPLICA_ADD, "DRSReplicaAdd", NULL, NULL}, - { DRSUAPI_REPLICA_DEL, "DRSReplicaDel", NULL, NULL}, - { DRSUAPI_REPLICA_MODIFY, "DRSReplicaModify", NULL, NULL}, - { DRSUAPI_VERIFY_NAMES, "DRSVerifyNames", NULL, NULL}, - { DRSUAPI_GET_MEMBERSHIPS, "DRSGetMemberships", NULL, NULL}, - { DRSUAPI_INTER_DOMAIN_MOVE, "DRSInterDomainMove", NULL, NULL}, - { DRSUAPI_GET_NT4_CHANGELOG, "DRSGetNT4ChangeLog", NULL, NULL}, - { DRSUAPI_CRACKNAMES, "DRSCrackNames", NULL, NULL}, - { DRSUAPI_WRITE_SPN, "DRSWriteSPN", NULL, NULL}, - { DRSUAPI_REMOVE_DS_SERVER, "DRSRemoveDsServer", NULL, NULL}, - { DRSUAPI_REMOVE_DS_DOMAIN, "DRSRemoveDsDomain", NULL, NULL}, - { DRSUAPI_DOMAIN_CONTROLLER_INFO, "DRSDomainControllerInfo", NULL, NULL}, - { DRSUAPI_ADD_ENTRY, "DRSAddEntry", NULL, NULL}, - { DRSUAPI_EXECUTE_KCC, "DRSExecuteKCC", NULL, NULL}, - { DRSUAPI_GET_REPL_INFO, "DRSGetReplInfo", NULL, NULL}, - { DRSUAPI_ADD_SID_HISTORY, "DRSAddSidHistory", NULL, NULL}, - { DRSUAPI_GET_MEMBERSHIPS2, "DRSGetMemberships2", NULL, NULL}, - { DRSUAPI_REPLICA_VERIFY_OBJECTS, "DRSReplicaVerifyObjects", NULL, NULL}, - { DRSUAPI_GET_OBJECT_EXISTENCE, "DRSGetObjectExistence", NULL, NULL}, - { DRSUAPI_QUERY_SITES_BY_COST, "DRSQuerySitesByCost", NULL, NULL}, - { 0, NULL, NULL, NULL } + 0xe3514235, 0x4b06, 0x11d1, + { 0xab, 0x04, 0x00, 0xc0, 0x4f, 0xc2, 0xdc, 0xd2} }; +static guint16 ver_drsuapi = 4; -void -proto_register_dcerpc_drsuapi(void) +static const true_false_string DRSUAPI_SUPPORTED_EXTENSION_BASE_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_BASE is SET", + "DRSUAPI_SUPPORTED_EXTENSION_BASE is NOT set" +}; + +static const true_false_string 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_SUPPORTED_EXTENSION_REMOVEAPI_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI is SET", + "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI is NOT set" +}; + +static const true_false_string 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_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_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_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_SUPPORTED_EXTENSION_00000080_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_00000080 is SET", + "DRSUAPI_SUPPORTED_EXTENSION_00000080 is NOT set" +}; + +static const true_false_string 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_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_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_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_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_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_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_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_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_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_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_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_SUPPORTED_EXTENSION_00100000_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_00100000 is SET", + "DRSUAPI_SUPPORTED_EXTENSION_00100000 is NOT set" +}; + +static const true_false_string 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_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_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_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_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_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_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_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_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_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_SUPPORTED_EXTENSION_20000000_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_20000000 is SET", + "DRSUAPI_SUPPORTED_EXTENSION_20000000 is NOT set" +}; + +static const true_false_string DRSUAPI_SUPPORTED_EXTENSION_40000000_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_40000000 is SET", + "DRSUAPI_SUPPORTED_EXTENSION_40000000 is NOT set" +}; + +static const true_false_string DRSUAPI_SUPPORTED_EXTENSION_80000000_tfs = { + "DRSUAPI_SUPPORTED_EXTENSION_80000000 is SET", + "DRSUAPI_SUPPORTED_EXTENSION_80000000 is NOT set" +}; + + +int +drsuapi_dissect_SupportedExtensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_SupportedExtensions); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_BASE"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION"); + } + flags&=(~0x00000002); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, tvb, offset-4, 4, flags); + if(flags&0x00000004){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI"); + } + flags&=(~0x00000004); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, tvb, offset-4, 4, flags); + if(flags&0x00000008){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2"); + } + flags&=(~0x00000008); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, tvb, offset-4, 4, flags); + if(flags&0x00000010){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS"); + } + flags&=(~0x00000010); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, tvb, offset-4, 4, flags); + if(flags&0x00000020){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1"); + } + flags&=(~0x00000020); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, tvb, offset-4, 4, flags); + if(flags&0x00000040){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION"); + } + flags&=(~0x00000040); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_00000080, tvb, offset-4, 4, flags); + if(flags&0x00000080){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_00000080"); + } + flags&=(~0x00000080); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, tvb, offset-4, 4, flags); + if(flags&0x00000100){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE"); + } + flags&=(~0x00000100); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, tvb, offset-4, 4, flags); + if(flags&0x00000200){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2"); + } + flags&=(~0x00000200); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, tvb, offset-4, 4, flags); + if(flags&0x00000400){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION"); + } + flags&=(~0x00000400); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, tvb, offset-4, 4, flags); + if(flags&0x00000800){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2"); + } + flags&=(~0x00000800); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD, tvb, offset-4, 4, flags); + if(flags&0x00001000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD"); + } + flags&=(~0x00001000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, tvb, offset-4, 4, flags); + if(flags&0x00002000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND"); + } + flags&=(~0x00002000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, tvb, offset-4, 4, flags); + if(flags&0x00004000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO"); + } + flags&=(~0x00004000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, tvb, offset-4, 4, flags); + if(flags&0x00008000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION"); + } + flags&=(~0x00008000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, tvb, offset-4, 4, flags); + if(flags&0x00010000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01"); + } + flags&=(~0x00010000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, tvb, offset-4, 4, flags); + if(flags&0x00020000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP"); + } + flags&=(~0x00020000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, tvb, offset-4, 4, flags); + if(flags&0x00040000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY"); + } + flags&=(~0x00040000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, tvb, offset-4, 4, flags); + if(flags&0x00080000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3"); + } + flags&=(~0x00080000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_00100000, tvb, offset-4, 4, flags); + if(flags&0x00100000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_00100000"); + } + flags&=(~0x00100000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, tvb, offset-4, 4, flags); + if(flags&0x00200000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2"); + } + flags&=(~0x00200000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, tvb, offset-4, 4, flags); + if(flags&0x00400000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6"); + } + flags&=(~0x00400000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, tvb, offset-4, 4, flags); + if(flags&0x00800000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS"); + } + flags&=(~0x00800000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, tvb, offset-4, 4, flags); + if(flags&0x01000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8"); + } + flags&=(~0x01000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, tvb, offset-4, 4, flags); + if(flags&0x02000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5"); + } + flags&=(~0x02000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, tvb, offset-4, 4, flags); + if(flags&0x04000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6"); + } + flags&=(~0x04000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, tvb, offset-4, 4, flags); + if(flags&0x08000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3"); + } + flags&=(~0x08000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, tvb, offset-4, 4, flags); + if(flags&0x08000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7"); + } + flags&=(~0x08000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, tvb, offset-4, 4, flags); + if(flags&0x08000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT"); + } + flags&=(~0x08000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, tvb, offset-4, 4, flags); + if(flags&0x10000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS"); + } + flags&=(~0x10000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_20000000, tvb, offset-4, 4, flags); + if(flags&0x20000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_20000000"); + } + flags&=(~0x20000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_40000000, tvb, offset-4, 4, flags); + if(flags&0x40000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_40000000"); + } + flags&=(~0x40000000); + + proto_tree_add_boolean(tree, hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_80000000, tvb, offset-4, 4, flags); + if(flags&0x80000000){ + proto_item_append_text(item, " DRSUAPI_SUPPORTED_EXTENSION_80000000"); + } + flags&=(~0x80000000); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} +static int +drsuapi_dissect_DsBindInfo24_supported_extensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_SupportedExtensions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo24_supported_extensions, param); + return offset; +} + + +static int +drsuapi_dissect_GUID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_DsBindInfo24_site_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo24_site_guid, param); + return offset; +} + + +static int +drsuapi_dissect_uint32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_DsBindInfo24_u1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo24_u1, param); + return offset; +} + + +int +drsuapi_dissect_DsBindInfo24(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsBindInfo24); + } + + offset=drsuapi_dissect_DsBindInfo24_supported_extensions(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsBindInfo24_site_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsBindInfo24_u1(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsBindInfo28_supported_extensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_SupportedExtensions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo28_supported_extensions, param); + return offset; +} + +static int +drsuapi_dissect_DsBindInfo28_site_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo28_site_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsBindInfo28_u1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo28_u1, param); + return offset; +} + +static int +drsuapi_dissect_DsBindInfo28_repl_epoch(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsBindInfo28_repl_epoch, param); + return offset; +} + + +int +drsuapi_dissect_DsBindInfo28(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsBindInfo28); + } + + offset=drsuapi_dissect_DsBindInfo28_supported_extensions(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsBindInfo28_site_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsBindInfo28_u1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsBindInfo28_repl_epoch(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +static int +drsuapi_dissect_DsBind_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DsBind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static e_ctx_hnd policy_hnd; +static proto_item *hnd_item; + +static int +drsuapi_dissect_policy_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param) +{ + offset = dissect_nt_policy_hnd(tvb, offset, pinfo, tree, drep, + hf_index, &policy_hnd, &hnd_item, + param&0x01, param&0x02); + return offset; +} + +static int +drsuapi_dissect_DsUnbind_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_policy_handle(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsUnbind_bind_handle, param); + return offset; +} + +static int +ref_drsuapi_dissect_DsUnbind_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsUnbind_bind_handle, NDR_POINTER_REF, "bind_handle", -1); + return offset; +} + + +static int +drsuapi_dissect_DsUnbind_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=ref_drsuapi_dissect_DsUnbind_bind_handle(tvb, offset, pinfo, tree, drep); + + + return offset; +} + +static int +drsuapi_dissect_DsUnbind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=ref_drsuapi_dissect_DsUnbind_bind_handle(tvb, offset, pinfo, tree, drep); + + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION is SET", + "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_WRITEABLE_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE is SET", + "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_PERIODIC_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_PERIODIC is SET", + "DRSUAPI_DS_REPLICA_SYNC_PERIODIC is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING is SET", + "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES is SET", + "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_FULL_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_FULL is SET", + "DRSUAPI_DS_REPLICA_SYNC_FULL is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_URGENT_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_URGENT is SET", + "DRSUAPI_DS_REPLICA_SYNC_URGENT is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD is SET", + "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_FORCE_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_FORCE is SET", + "DRSUAPI_DS_REPLICA_SYNC_FORCE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE is SET", + "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED is SET", + "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_TWO_WAY_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY is SET", + "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY is SET", + "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_INITIAL_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_INITIAL is SET", + "DRSUAPI_DS_REPLICA_SYNC_INITIAL is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION is SET", + "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_ABANDONED_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_ABANDONED is SET", + "DRSUAPI_DS_REPLICA_SYNC_ABANDONED is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS is SET", + "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET is SET", + "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_REQUEUE_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_REQUEUE is SET", + "DRSUAPI_DS_REPLICA_SYNC_REQUEUE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION is SET", + "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA is SET", + "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_CRITICAL_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_CRITICAL is SET", + "DRSUAPI_DS_REPLICA_SYNC_CRITICAL is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS is SET", + "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_SYNC_PREEMPTED_tfs = { + "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED is SET", + "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED is NOT set" +}; + + +int +drsuapi_dissect_DsReplicaSyncOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaSyncOptions); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_WRITEABLE, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_WRITEABLE"); + } + flags&=(~0x00000002); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PERIODIC, tvb, offset-4, 4, flags); + if(flags&0x00000004){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_PERIODIC"); + } + flags&=(~0x00000004); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING, tvb, offset-4, 4, flags); + if(flags&0x00000008){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING"); + } + flags&=(~0x00000008); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES, tvb, offset-4, 4, flags); + if(flags&0x00000010){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES"); + } + flags&=(~0x00000010); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL, tvb, offset-4, 4, flags); + if(flags&0x00000020){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_FULL"); + } + flags&=(~0x00000020); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_URGENT, tvb, offset-4, 4, flags); + if(flags&0x00000040){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_URGENT"); + } + flags&=(~0x00000040); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD, tvb, offset-4, 4, flags); + if(flags&0x00000080){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD"); + } + flags&=(~0x00000080); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FORCE, tvb, offset-4, 4, flags); + if(flags&0x00000100){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_FORCE"); + } + flags&=(~0x00000100); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE, tvb, offset-4, 4, flags); + if(flags&0x00000200){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE"); + } + flags&=(~0x00000200); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED, tvb, offset-4, 4, flags); + if(flags&0x00000400){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED"); + } + flags&=(~0x00000400); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_TWO_WAY, tvb, offset-4, 4, flags); + if(flags&0x00000800){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_TWO_WAY"); + } + flags&=(~0x00000800); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY, tvb, offset-4, 4, flags); + if(flags&0x00001000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY"); + } + flags&=(~0x00001000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INITIAL, tvb, offset-4, 4, flags); + if(flags&0x00002000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_INITIAL"); + } + flags&=(~0x00002000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION, tvb, offset-4, 4, flags); + if(flags&0x00004000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION"); + } + flags&=(~0x00004000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ABANDONED, tvb, offset-4, 4, flags); + if(flags&0x00008000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_ABANDONED"); + } + flags&=(~0x00008000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS, tvb, offset-4, 4, flags); + if(flags&0x00010000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS"); + } + flags&=(~0x00010000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET, tvb, offset-4, 4, flags); + if(flags&0x00020000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET"); + } + flags&=(~0x00020000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_REQUEUE, tvb, offset-4, 4, flags); + if(flags&0x00040000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_REQUEUE"); + } + flags&=(~0x00040000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION, tvb, offset-4, 4, flags); + if(flags&0x00080000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION"); + } + flags&=(~0x00080000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA, tvb, offset-4, 4, flags); + if(flags&0x00100000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA"); + } + flags&=(~0x00100000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_CRITICAL, tvb, offset-4, 4, flags); + if(flags&0x00200000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_CRITICAL"); + } + flags&=(~0x00200000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS, tvb, offset-4, 4, flags); + if(flags&0x00400000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS"); + } + flags&=(~0x00400000); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PREEMPTED, tvb, offset-4, 4, flags); + if(flags&0x00800000){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_SYNC_PREEMPTED"); + } + flags&=(~0x00800000); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} + +static int +drsuapi_dissect_DsReplicaSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DsReplicaSync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_uint64(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + + ALIGN_TO_8_BYTES; + offset=dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_index, NULL); + + return offset; +} + +static int +drsuapi_dissect_DsGetNCChangesUsnTriple_usn1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetNCChangesUsnTriple_usn1, param); + return offset; +} + +static int +drsuapi_dissect_DsGetNCChangesUsnTriple_usn2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetNCChangesUsnTriple_usn2, param); + return offset; +} + +static int +drsuapi_dissect_DsGetNCChangesUsnTriple_usn3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetNCChangesUsnTriple_usn3, param); + return offset; +} + + +int +drsuapi_dissect_DsGetNCChangesUsnTriple(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetNCChangesUsnTriple); + } + + offset=drsuapi_dissect_DsGetNCChangesUsnTriple_usn1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetNCChangesUsnTriple_usn2(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetNCChangesUsnTriple_usn3(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +static int +drsuapi_dissect_DsGetNCChanges_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DsGetNCChanges_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +static const true_false_string DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION_tfs = { + "DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION is SET", + "DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE_tfs = { + "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE is SET", + "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE_tfs = { + "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE is SET", + "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE_tfs = { + "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE is SET", + "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_UPDATE_0x00000010_tfs = { + "DRSUAPI_DS_REPLICA_UPDATE_0x00000010 is SET", + "DRSUAPI_DS_REPLICA_UPDATE_0x00000010 is NOT set" +}; + + +int +drsuapi_dissect_DsReplicaUpdateRefsOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaUpdateRefsOptions); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE"); + } + flags&=(~0x00000002); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE, tvb, offset-4, 4, flags); + if(flags&0x00000004){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE"); + } + flags&=(~0x00000004); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE, tvb, offset-4, 4, flags); + if(flags&0x00000008){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE"); + } + flags&=(~0x00000008); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_0x00000010, tvb, offset-4, 4, flags); + if(flags&0x00000010){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_UPDATE_0x00000010"); + } + flags&=(~0x00000010); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} + +static int +drsuapi_dissect_DsReplicaUpdateRefs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DsReplicaUpdateRefs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +static const true_false_string DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION_tfs = { + "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION is SET", + "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_ADD_WRITEABLE_tfs = { + "DRSUAPI_DS_REPLICA_ADD_WRITEABLE is SET", + "DRSUAPI_DS_REPLICA_ADD_WRITEABLE is NOT set" +}; + + +int +drsuapi_dissect_DsReplicaAddOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaAddOptions); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaAddOptions_DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaAddOptions_DRSUAPI_DS_REPLICA_ADD_WRITEABLE, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_ADD_WRITEABLE"); + } + flags&=(~0x00000002); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_ADD_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_ADD_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +static const true_false_string DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION_tfs = { + "DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION is SET", + "DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_DELETE_WRITEABLE_tfs = { + "DRSUAPI_DS_REPLICA_DELETE_WRITEABLE is SET", + "DRSUAPI_DS_REPLICA_DELETE_WRITEABLE is NOT set" +}; + + +int +drsuapi_dissect_DsReplicaDeleteOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaDeleteOptions); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaDeleteOptions_DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaDeleteOptions_DRSUAPI_DS_REPLICA_DELETE_WRITEABLE, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_DELETE_WRITEABLE"); + } + flags&=(~0x00000002); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_DEL_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_DEL_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +static const true_false_string DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION_tfs = { + "DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION is SET", + "DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION is NOT set" +}; + +static const true_false_string DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE_tfs = { + "DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE is SET", + "DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE is NOT set" +}; + + +int +drsuapi_dissect_DsReplicaModifyOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + guint32 flags; + + ALIGN_TO_4_BYTES; + + if(parent_tree){ + item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaModifyOptions); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags); + + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaModifyOptions_DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION, tvb, offset-4, 4, flags); + if(flags&0x00000001){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION"); + } + flags&=(~0x00000001); + + proto_tree_add_boolean(tree, hf_drsuapi_DsReplicaModifyOptions_DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE, tvb, offset-4, 4, flags); + if(flags&0x00000002){ + proto_item_append_text(item, " DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE"); + } + flags&=(~0x00000002); + + if(flags){ + proto_item_append_text(item, "UNKNOWN-FLAGS"); + } + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_MODIFY_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_MODIFY_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + 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_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_VERIFY_NAMES_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + 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_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_NT4_CHANGELOG_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_NT4_CHANGELOG_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +const value_string drsuapi_DsNameStatus_vals[] = { + { 0 , "DRSUAPI_DS_NAME_STATUS_OK" }, + { 1 , "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR" }, + { 2 , "DRSUAPI_DS_NAME_STATUS_NOT_FOUND" }, + { 3 , "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE" }, + { 4 , "DRSUAPI_DS_NAME_STATUS_NO_MAPPING" }, + { 5 , "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY" }, + { 6 , "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING" }, + { 7 , "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsNameStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + + +const value_string drsuapi_DsNameFlags_vals[] = { + { 0 , "DRSUAPI_DS_NAME_FLAG_NO_FLAGS" }, + { 0 , "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY" }, + { 0 , "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC" }, + { 0 , "DRSUAPI_DS_NAME_FLAG_GCVERIFY" }, + { 0 , "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsNameFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + + +const value_string drsuapi_DsNameFormat_vals[] = { + { 0 , "DRSUAPI_DS_NAME_FORMAT_UKNOWN" }, + { 1 , "DRSUAPI_DS_NAME_FORMAT_FQDN_1779" }, + { 2 , "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT" }, + { 3 , "DRSUAPI_DS_NAME_FORMAT_DISPLAY" }, + { 6 , "DRSUAPI_DS_NAME_FORMAT_GUID" }, + { 7 , "DRSUAPI_DS_NAME_FORMAT_CANONICAL" }, + { 8 , "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL" }, + { 9 , "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX" }, + { 10 , "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL" }, + { 11 , "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY" }, + { 12 , "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsNameFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + + +static int +drsuapi_dissect_unistr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, 2, hf_index, FALSE, NULL); + return offset; +} + +static int +drsuapi_dissect_DsNameString_str(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameString_str, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsNameString_str(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsNameString_str, NDR_POINTER_UNIQUE, "str", -1); + return offset; +} + + +int +drsuapi_dissect_DsNameString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsNameString); + } + + offset=unique_drsuapi_dissect_DsNameString_str(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsNameRequest1_unknown1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_unknown1, param); + return offset; +} + +static int +drsuapi_dissect_DsNameRequest1_unknown2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_unknown2, param); + return offset; +} + +static int +drsuapi_dissect_DsNameRequest1_format_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameFlags(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_format_flags, param); + return offset; +} + +static int +drsuapi_dissect_DsNameRequest1_format_offered(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameFormat(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_format_offered, param); + return offset; +} + +static int +drsuapi_dissect_DsNameRequest1_format_desired(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameFormat(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_format_desired, param); + return offset; +} + +static int +drsuapi_dissect_DsNameRequest1_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_count, param); + return offset; +} + +static int +drsuapi_dissect_DsNameRequest1_names(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameString(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest1_names, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsNameRequest1_names(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsNameRequest1_names); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsNameRequest1_names(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsNameRequest1_names, NDR_POINTER_UNIQUE, "names", -1); + return offset; +} + + +int +drsuapi_dissect_DsNameRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsNameRequest1); + } + + offset=drsuapi_dissect_DsNameRequest1_unknown1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsNameRequest1_unknown2(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsNameRequest1_format_flags(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsNameRequest1_format_offered(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsNameRequest1_format_desired(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsNameRequest1_count(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsNameRequest1_names(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +static int +drsuapi_dissect_int32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_union_DsNameRequest_1_req1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameRequest1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameRequest_1_req1, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsNameRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsNameRequest"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsNameRequest); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case 1: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsNameRequest_1_req1(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsNameInfo1_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameStatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameInfo1_status, param); + return offset; +} + +static int +drsuapi_dissect_DsNameInfo1_dns_domain_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameInfo1_dns_domain_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsNameInfo1_dns_domain_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsNameInfo1_dns_domain_name, NDR_POINTER_UNIQUE, "dns_domain_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsNameInfo1_result_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameInfo1_result_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsNameInfo1_result_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsNameInfo1_result_name, NDR_POINTER_UNIQUE, "result_name", -1); + return offset; +} + + +int +drsuapi_dissect_DsNameInfo1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsNameInfo1); + } + + offset=drsuapi_dissect_DsNameInfo1_status(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsNameInfo1_dns_domain_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsNameInfo1_result_name(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsNameCtr1_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameCtr1_count, param); + return offset; +} + +static int +drsuapi_dissect_DsNameCtr1_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameInfo1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameCtr1_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsNameCtr1_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsNameCtr1_array); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsNameCtr1_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsNameCtr1_array, NDR_POINTER_UNIQUE, "array", -1); + return offset; +} + + +int +drsuapi_dissect_DsNameCtr1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsNameCtr1); + } + + offset=drsuapi_dissect_DsNameCtr1_count(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsNameCtr1_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_union_DsNameCtr_1_ctr1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameCtr1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsNameCtr_1_ctr1, param); + return offset; +} + +static int +drsuapi_dissect_union_DsNameCtr_1_ctr1_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsNameCtr_1_ctr1, NDR_POINTER_UNIQUE, "ctr1", -1); + return offset; +} + + +static int +drsuapi_dissect_union_DsNameCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsNameCtr"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsNameCtr); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case 1: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsNameCtr_1_ctr1_unique(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsCrackNames_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_policy_handle(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsCrackNames_bind_handle, param); + return offset; +} + +static int +ref_drsuapi_dissect_DsCrackNames_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsCrackNames_bind_handle, NDR_POINTER_REF, "bind_handle", -1); + return offset; +} + +static int +drsuapi_dissect_DsCrackNames_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsCrackNames_level, param); + return offset; +} + +static int +drsuapi_dissect_DsCrackNames_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { + guint32 param=0; + offset=drsuapi_dissect_union_DsNameRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsCrackNames_req, param); + return offset; +} + +static int +drsuapi_dissect_DsCrackNames_ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsNameCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsCrackNames_ctr, param); + return offset; +} + + +static int +drsuapi_dissect_DsCrackNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=ref_drsuapi_dissect_DsCrackNames_bind_handle(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsCrackNames_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsCrackNames_req(tvb, offset, pinfo, tree, drep); + + + return offset; +} + +static int +drsuapi_dissect_DsCrackNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=drsuapi_dissect_DsCrackNames_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsCrackNames_ctr(tvb, offset, pinfo, tree, drep); + + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +const value_string drsuapi_DsSpnOperation_vals[] = { + { 0 , "DRSUAPI_DS_SPN_OPERATION_ADD" }, + { 1 , "DRSUAPI_DS_SPN_OPERATION_REPLACE" }, + { 2 , "DRSUAPI_DS_SPN_OPERATION_DELETE" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsSpnOperation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpnRequest1_operation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsSpnOperation(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnRequest1_operation, param); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpnRequest1_unknown1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnRequest1_unknown1, param); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpnRequest1_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnRequest1_object_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsWriteAccountSpnRequest1_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsWriteAccountSpnRequest1_object_dn, NDR_POINTER_UNIQUE, "object_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpnRequest1_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnRequest1_count, param); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsNameString(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnRequest1_spn_names, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsWriteAccountSpnRequest1_spn_names); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsWriteAccountSpnRequest1_spn_names, NDR_POINTER_UNIQUE, "spn_names", -1); + return offset; +} + + +int +drsuapi_dissect_DsWriteAccountSpnRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsWriteAccountSpnRequest1); + } + + offset=drsuapi_dissect_DsWriteAccountSpnRequest1_operation(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsWriteAccountSpnRequest1_unknown1(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsWriteAccountSpnRequest1_object_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsWriteAccountSpnRequest1_count(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsWriteAccountSpnRequest1_spn_names(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_union_DsWriteAccountSpnRequest_1_req1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsWriteAccountSpnRequest1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnRequest_1_req1, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsWriteAccountSpnRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsWriteAccountSpnRequest"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsWriteAccountSpnRequest); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case 1: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsWriteAccountSpnRequest_1_req1(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsWriteAccountSpnResult1_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnResult1_status, param); + return offset; +} + + +int +drsuapi_dissect_DsWriteAccountSpnResult1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsWriteAccountSpnResult1); + } + + offset=drsuapi_dissect_DsWriteAccountSpnResult1_status(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_union_DsWriteAccountSpnResult_1_res1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsWriteAccountSpnResult1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpnResult_1_res1, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsWriteAccountSpnResult(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsWriteAccountSpnResult"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsWriteAccountSpnResult); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case 1: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsWriteAccountSpnResult_1_res1(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsWriteAccountSpn_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_policy_handle(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpn_bind_handle, param); + return offset; +} + +static int +ref_drsuapi_dissect_DsWriteAccountSpn_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsWriteAccountSpn_bind_handle, NDR_POINTER_REF, "bind_handle", -1); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpn_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpn_level, param); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpn_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsWriteAccountSpnRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpn_req, param); + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpn_res(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsWriteAccountSpnResult(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsWriteAccountSpn_res, param); + return offset; +} + + +static int +drsuapi_dissect_DsWriteAccountSpn_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=ref_drsuapi_dissect_DsWriteAccountSpn_bind_handle(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsWriteAccountSpn_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsWriteAccountSpn_req(tvb, offset, pinfo, tree, drep); + + + return offset; +} + +static int +drsuapi_dissect_DsWriteAccountSpn_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=drsuapi_dissect_DsWriteAccountSpn_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsWriteAccountSpn_res(tvb, offset, pinfo, tree, drep); + + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REMOVE_DS_SERVER_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REMOVE_DS_SERVER_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + 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_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfoRequest1_domain_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoRequest1_domain_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfoRequest1_domain_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfoRequest1_domain_name, NDR_POINTER_UNIQUE, "domain_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfoRequest1_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoRequest1_level, param); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfoRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfoRequest1); + } + + offset=unique_drsuapi_dissect_DsGetDCInfoRequest1_domain_name(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfoRequest1_level(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_union_DsGetDCInfoRequest_1_req1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfoRequest1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoRequest_1_req1, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsGetDCInfoRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsGetDCInfoRequest"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfoRequest); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case 1: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsGetDCInfoRequest_1_req1(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfo1_netbios_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_netbios_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo1_netbios_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo1_netbios_name, NDR_POINTER_UNIQUE, "netbios_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo1_dns_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_dns_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo1_dns_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo1_dns_name, NDR_POINTER_UNIQUE, "dns_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo1_site_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_site_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo1_site_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo1_site_name, NDR_POINTER_UNIQUE, "site_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo1_computer_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_computer_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo1_computer_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo1_computer_dn, NDR_POINTER_UNIQUE, "computer_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo1_server_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_server_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo1_server_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo1_server_dn, NDR_POINTER_UNIQUE, "server_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo1_is_pdc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_is_pdc, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo1_is_enabled(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo1_is_enabled, param); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfo1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfo1); + } + + offset=unique_drsuapi_dissect_DsGetDCInfo1_netbios_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo1_dns_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo1_site_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo1_computer_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo1_server_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo1_is_pdc(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo1_is_enabled(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfoCtr1_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr1_count, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfoCtr1_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfo1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr1_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsGetDCInfoCtr1_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfoCtr1_array); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsGetDCInfoCtr1_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsGetDCInfoCtr1_array, NDR_POINTER_UNIQUE, "array", -1); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfoCtr1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfoCtr1); + } + + offset=drsuapi_dissect_DsGetDCInfoCtr1_count(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsGetDCInfoCtr1_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfo2_netbios_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_netbios_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_netbios_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_netbios_name, NDR_POINTER_UNIQUE, "netbios_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_dns_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_dns_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_dns_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_dns_name, NDR_POINTER_UNIQUE, "dns_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_site_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_site_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_site_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_site_name, NDR_POINTER_UNIQUE, "site_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_site_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_site_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_site_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_site_dn, NDR_POINTER_UNIQUE, "site_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_computer_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_computer_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_computer_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_computer_dn, NDR_POINTER_UNIQUE, "computer_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_server_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_server_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_server_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_server_dn, NDR_POINTER_UNIQUE, "server_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_ntds_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_ntds_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo2_ntds_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo2_ntds_dn, NDR_POINTER_UNIQUE, "ntds_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_is_pdc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_is_pdc, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_is_enabled(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_is_enabled, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_is_gc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_is_gc, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_site_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_site_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_computer_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_computer_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_server_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_server_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo2_ntds_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo2_ntds_guid, param); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfo2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfo2); + } + + offset=unique_drsuapi_dissect_DsGetDCInfo2_netbios_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo2_dns_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo2_site_name(tvb, offset, pinfo, tree, drep); + offset=unique_drsuapi_dissect_DsGetDCInfo2_site_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo2_computer_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo2_server_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo2_ntds_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_is_pdc(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_is_enabled(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_is_gc(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_site_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_computer_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_server_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo2_ntds_guid(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfoCtr2_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr2_count, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfoCtr2_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfo2(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr2_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsGetDCInfoCtr2_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfoCtr2_array); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsGetDCInfoCtr2_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsGetDCInfoCtr2_array, NDR_POINTER_UNIQUE, "array", -1); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfoCtr2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfoCtr2); + } + + offset=drsuapi_dissect_DsGetDCInfoCtr2_count(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsGetDCInfoCtr2_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfo01_unknown1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_unknown1, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo01_unknown2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_unknown2, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo01_unknown3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_unknown3, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo01_unknown4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_unknown4, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo01_unknown5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_unknown5, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo01_unknown6(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_unknown6, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfo01_server_nt4_account(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfo01_server_nt4_account, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsGetDCInfo01_server_nt4_account(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfo01_server_nt4_account, NDR_POINTER_UNIQUE, "server_nt4_account", -1); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfo01(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfo01); + } + + offset=drsuapi_dissect_DsGetDCInfo01_unknown1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo01_unknown2(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo01_unknown3(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo01_unknown4(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo01_unknown5(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDCInfo01_unknown6(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsGetDCInfo01_server_nt4_account(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDCInfoCtr01_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr01_count, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDCInfoCtr01_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfo01(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr01_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsGetDCInfoCtr01_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDCInfoCtr01_array); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsGetDCInfoCtr01_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsGetDCInfoCtr01_array, NDR_POINTER_UNIQUE, "array", -1); + return offset; +} + + +int +drsuapi_dissect_DsGetDCInfoCtr01(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfoCtr01); + } + + offset=drsuapi_dissect_DsGetDCInfoCtr01_count(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsGetDCInfoCtr01_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +const value_string drsuapi_DsGetDCInfoCtrLevels_vals[] = { + { 1 , "DRSUAPI_DC_INFO_CTR_1" }, + { 2 , "DRSUAPI_DC_INFO_CTR_2" }, + { -1 , "DRSUAPI_DC_INFO_CTR_01" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsGetDCInfoCtrLevels(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_union_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_1_ctr1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfoCtr1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_1_ctr1, param); + return offset; +} + +static int +drsuapi_dissect_union_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_2_ctr2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfoCtr2(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_2_ctr2, param); + return offset; +} + +static int +drsuapi_dissect_union_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_01_ctr01(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsGetDCInfoCtr01(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_01_ctr01, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsGetDCInfoCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsGetDCInfoCtr"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsGetDCInfoCtr); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case DRSUAPI_DC_INFO_CTR_1: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_1_ctr1(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DC_INFO_CTR_2: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_2_ctr2(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DC_INFO_CTR_01: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_01_ctr01(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsGetDomainControllerInfo_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_policy_handle(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDomainControllerInfo_bind_handle, param); + return offset; +} + +static int +ref_drsuapi_dissect_DsGetDomainControllerInfo_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsGetDomainControllerInfo_bind_handle, NDR_POINTER_REF, "bind_handle", -1); + return offset; +} + +static int +drsuapi_dissect_DsGetDomainControllerInfo_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDomainControllerInfo_level, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDomainControllerInfo_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsGetDCInfoRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDomainControllerInfo_req, param); + return offset; +} + +static int +drsuapi_dissect_DsGetDomainControllerInfo_ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsGetDCInfoCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsGetDomainControllerInfo_ctr, param); + return offset; +} + + +static int +drsuapi_dissect_DsGetDomainControllerInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=ref_drsuapi_dissect_DsGetDomainControllerInfo_bind_handle(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDomainControllerInfo_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDomainControllerInfo_req(tvb, offset, pinfo, tree, drep); + + + return offset; +} + +static int +drsuapi_dissect_DsGetDomainControllerInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=drsuapi_dissect_DsGetDomainControllerInfo_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsGetDomainControllerInfo_ctr(tvb, offset, pinfo, tree, drep); + + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DsAddEntry_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DsAddEntry_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_EXECUTE_KCC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_EXECUTE_KCC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +const value_string drsuapi_DsReplicaGetInfoLevel_vals[] = { + { 1 , "DRSUAPI_DS_REPLICA_GET_INFO" }, + { 2 , "DRSUAPI_DS_REPLICA_GET_INFO2" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsReplicaGetInfoLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + + +const value_string drsuapi_DsReplicaInfoType_vals[] = { + { 0 , "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS" }, + { 1 , "DRSUAPI_DS_REPLICA_INFO_CURSORS" }, + { 2 , "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA" }, + { 3 , "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES" }, + { 4 , "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES" }, + { 5 , "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS" }, + { 6 , "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA" }, + { 7 , "DRSUAPI_DS_REPLICA_INFO_CURSORS2" }, + { 8 , "DRSUAPI_DS_REPLICA_INFO_CURSORS3" }, + { 9 , "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2" }, + { 10 , "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2" }, + { -2 , "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02" }, + { -4 , "DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04" }, + { -5 , "DRSUAPI_DS_REPLICA_INFO_CURSURS05" }, + { -6 , "DRSUAPI_DS_REPLICA_INFO_06" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsReplicaInfoType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest1_info_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaInfoType(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest1_info_type, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest1_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest1_object_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaGetInfoRequest1_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaGetInfoRequest1_object_dn, NDR_POINTER_UNIQUE, "object_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest1_guid1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest1_guid1, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaGetInfoRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaGetInfoRequest1); + } + + offset=drsuapi_dissect_DsReplicaGetInfoRequest1_info_type(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaGetInfoRequest1_object_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfoRequest1_guid1(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_info_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaInfoType(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_info_type, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_object_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaGetInfoRequest2_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaGetInfoRequest2_object_dn, NDR_POINTER_UNIQUE, "object_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_guid1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_guid1, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_unknown1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_unknown1, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_string1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_string1, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaGetInfoRequest2_string1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaGetInfoRequest2_string1, NDR_POINTER_UNIQUE, "string1", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_string2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_string2, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaGetInfoRequest2_string2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaGetInfoRequest2_string2, NDR_POINTER_UNIQUE, "string2", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfoRequest2_unknown2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest2_unknown2, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaGetInfoRequest2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaGetInfoRequest2); + } + + offset=drsuapi_dissect_DsReplicaGetInfoRequest2_info_type(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaGetInfoRequest2_object_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfoRequest2_guid1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfoRequest2_unknown1(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaGetInfoRequest2_string1(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaGetInfoRequest2_string2(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfoRequest2_unknown2(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_union_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO_req1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaGetInfoRequest1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO_req1, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO2_req2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaGetInfoRequest2(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO2_req2, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsReplicaGetInfoRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsReplicaGetInfoRequest"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaGetInfoRequest); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case DRSUAPI_DS_REPLICA_GET_INFO: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO_req1(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_GET_INFO2: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO2_req2(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaNeighbour_naming_context_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_naming_context_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaNeighbour_naming_context_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaNeighbour_naming_context_dn, NDR_POINTER_UNIQUE, "naming_context_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_source_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaNeighbour_source_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaNeighbour_source_dsa_obj_dn, NDR_POINTER_UNIQUE, "source_dsa_obj_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_source_dsa_address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_source_dsa_address, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaNeighbour_source_dsa_address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaNeighbour_source_dsa_address, NDR_POINTER_UNIQUE, "source_dsa_address", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_transport_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_transport_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaNeighbour_transport_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaNeighbour_transport_obj_dn, NDR_POINTER_UNIQUE, "transport_obj_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_replica_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_replica_flags, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_reserved, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_naming_context_obj_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_naming_context_obj_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_source_dsa_obj_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_source_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_transport_obj_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_transport_obj_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_tmp_highest_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_tmp_highest_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_highest_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_highest_usn, param); + return offset; +} + + +static int +drsuapi_dissect_NTTIME(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_index); + + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_last_success(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_last_success, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_last_attempt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_last_attempt, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_result_last_attempt(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_result_last_attempt, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbour_consecutive_sync_failures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbour_consecutive_sync_failures, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaNeighbour(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaNeighbour); + } + + offset=unique_drsuapi_dissect_DsReplicaNeighbour_naming_context_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaNeighbour_source_dsa_obj_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaNeighbour_source_dsa_address(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaNeighbour_transport_obj_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_replica_flags(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_reserved(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_naming_context_obj_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_source_dsa_obj_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_transport_obj_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_tmp_highest_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_highest_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_last_success(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_last_attempt(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_result_last_attempt(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbour_consecutive_sync_failures(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaNeighbourCtr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbourCtr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbourCtr_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbourCtr_reserved, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaNeighbourCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaNeighbour(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaNeighbourCtr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaNeighbourCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaNeighbourCtr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaNeighbourCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaNeighbourCtr); + } + + offset=drsuapi_dissect_DsReplicaNeighbourCtr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaNeighbourCtr_reserved(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaNeighbourCtr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursor_source_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor_source_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor_highest_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor_highest_usn, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursor); + } + + offset=drsuapi_dissect_DsReplicaCoursor_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor_highest_usn(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursorCtr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursorCtr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursorCtr_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursorCtr_reserved, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursorCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursorCtr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaCoursorCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaCoursorCtr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursorCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursorCtr); + } + + offset=drsuapi_dissect_DsReplicaCoursorCtr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursorCtr_reserved(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaCoursorCtr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaObjMetaData_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData_attribute_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaObjMetaData_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaObjMetaData_attribute_name, NDR_POINTER_UNIQUE, "attribute_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData_version, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData_originating_last_changed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData_originating_last_changed, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData_originating_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData_originating_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData_originating_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData_originating_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData_local_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData_local_usn, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaObjMetaData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaObjMetaData); + } + + offset=unique_drsuapi_dissect_DsReplicaObjMetaData_attribute_name(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData_version(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData_originating_last_changed(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData_originating_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData_originating_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData_local_usn(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaObjMetaDataCtr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaDataCtr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaDataCtr_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaDataCtr_reserved, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaDataCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaObjMetaData(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaDataCtr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaObjMetaDataCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaObjMetaDataCtr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaObjMetaDataCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaObjMetaDataCtr); + } + + offset=drsuapi_dissect_DsReplicaObjMetaDataCtr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaDataCtr_reserved(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaObjMetaDataCtr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaKccDsaFailure_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaKccDsaFailure_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaKccDsaFailure_dsa_obj_dn, NDR_POINTER_UNIQUE, "dsa_obj_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaKccDsaFailure_dsa_obj_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaKccDsaFailure_first_failure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailure_first_failure, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaKccDsaFailure_num_failures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailure_num_failures, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaKccDsaFailure_last_result(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailure_last_result, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaKccDsaFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaKccDsaFailure); + } + + offset=unique_drsuapi_dissect_DsReplicaKccDsaFailure_dsa_obj_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaKccDsaFailure_dsa_obj_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaKccDsaFailure_first_failure(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaKccDsaFailure_num_failures(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaKccDsaFailure_last_result(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaKccDsaFailuresCtr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailuresCtr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaKccDsaFailuresCtr_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailuresCtr_reserved, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaKccDsaFailuresCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaKccDsaFailure(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaKccDsaFailuresCtr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaKccDsaFailuresCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaKccDsaFailuresCtr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaKccDsaFailuresCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaKccDsaFailuresCtr); + } + + offset=drsuapi_dissect_DsReplicaKccDsaFailuresCtr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaKccDsaFailuresCtr_reserved(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaKccDsaFailuresCtr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} + +const value_string drsuapi_DsReplicaOpType_vals[] = { + { 0 , "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC" }, + { 1 , "DRSUAPI_DS_REPLICA_OP_TYPE_ADD" }, + { 2 , "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE" }, + { 3 , "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY" }, + { 4 , "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS" }, + { 0 , NULL } +}; + +int +drsuapi_dissect_DsReplicaOpType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_SYNC_sync(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaSyncOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_SYNC_sync, param); + return offset; +} + +static int +drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_ADD_add(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaAddOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_ADD_add, param); + return offset; +} + +static int +drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_DELETE_delete(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaDeleteOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_DELETE_delete, param); + return offset; +} + +static int +drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY_modify(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaModifyOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY_modify, param); + return offset; +} + +static int +drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS_update_refs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaUpdateRefsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS_update_refs, param); + return offset; +} + +static int +drsuapi_dissect_union_DsRplicaOpOptions_default_unknown(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsRplicaOpOptions_default_unknown, param); + return offset; +} + + +static int +drsuapi_dissect_union_DsRplicaOpOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint16 level; + + ALIGN_TO_2_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsRplicaOpOptions"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsRplicaOpOptions); + } + + offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_SYNC_sync(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_ADD_add(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_DELETE_delete(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY_modify(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS_update_refs(tvb, offset, pinfo, tree, drep); + break; + + default: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsRplicaOpOptions_default_unknown(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaOp_operation_start(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_operation_start, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_serial_num(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_serial_num, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_priority, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_operation_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaOpType(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_operation_type, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_options(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsRplicaOpOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_options, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_nc_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_nc_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaOp_nc_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaOp_nc_dn, NDR_POINTER_UNIQUE, "nc_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_remote_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_remote_dsa_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaOp_remote_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaOp_remote_dsa_obj_dn, NDR_POINTER_UNIQUE, "remote_dsa_obj_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_remote_dsa_address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_remote_dsa_address, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaOp_remote_dsa_address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaOp_remote_dsa_address, NDR_POINTER_UNIQUE, "remote_dsa_address", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_nc_obj_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_nc_obj_guid, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOp_remote_dsa_obj_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOp_remote_dsa_obj_guid, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaOp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaOp); + } + + offset=drsuapi_dissect_DsReplicaOp_operation_start(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOp_serial_num(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOp_priority(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOp_operation_type(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOp_options(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaOp_nc_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaOp_remote_dsa_obj_dn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaOp_remote_dsa_address(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOp_nc_obj_guid(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOp_remote_dsa_obj_guid(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaOpCtr_time(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOpCtr_time, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOpCtr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOpCtr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaOpCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaOp(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaOpCtr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaOpCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaOpCtr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaOpCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaOpCtr); + } + + offset=drsuapi_dissect_DsReplicaOpCtr_time(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaOpCtr_count(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaOpCtr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaAttrValMetaData_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_attribute_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaAttrValMetaData_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData_attribute_name, NDR_POINTER_UNIQUE, "attribute_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_object_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaAttrValMetaData_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData_object_dn, NDR_POINTER_UNIQUE, "object_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_value_length(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_value_length, param); + return offset; +} + + +static int +drsuapi_dissect_uint8(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, NULL); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_value, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaAttrValMetaData_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData_value); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsReplicaAttrValMetaData_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsReplicaAttrValMetaData_value, NDR_POINTER_UNIQUE, "value", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_deleted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_deleted, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_created(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_created, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_version, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_originating_last_changed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_originating_last_changed, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_originating_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_originating_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_originating_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_originating_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData_local_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData_local_usn, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaAttrValMetaData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaAttrValMetaData); + } + + offset=unique_drsuapi_dissect_DsReplicaAttrValMetaData_attribute_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaAttrValMetaData_object_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_value_length(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsReplicaAttrValMetaData_value(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_deleted(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_created(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_version(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_originating_last_changed(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_originating_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_originating_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData_local_usn(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaAttrValMetaDataCtr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaDataCtr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaDataCtr_enumeration_context(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaDataCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaAttrValMetaData(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaDataCtr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaAttrValMetaDataCtr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaDataCtr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaAttrValMetaDataCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaAttrValMetaDataCtr); + } + + offset=drsuapi_dissect_DsReplicaAttrValMetaDataCtr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaDataCtr_enumeration_context(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaAttrValMetaDataCtr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursor2_source_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor2_source_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor2_highest_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor2_highest_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor2_last_sync_success(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor2_last_sync_success, param); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursor2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursor2); + } + + offset=drsuapi_dissect_DsReplicaCoursor2_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor2_highest_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor2_last_sync_success(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursor2Ctr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor2Ctr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor2Ctr_enumeration_context(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor2Ctr_enumeration_context, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor2Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor2(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor2Ctr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaCoursor2Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaCoursor2Ctr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursor2Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursor2Ctr); + } + + offset=drsuapi_dissect_DsReplicaCoursor2Ctr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor2Ctr_enumeration_context(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaCoursor2Ctr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursor3_source_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3_source_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor3_highest_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3_highest_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor3_last_sync_success(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3_last_sync_success, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor3_source_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3_source_dsa_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaCoursor3_source_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaCoursor3_source_dsa_obj_dn, NDR_POINTER_UNIQUE, "source_dsa_obj_dn", -1); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursor3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursor3); + } + + offset=drsuapi_dissect_DsReplicaCoursor3_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor3_highest_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor3_last_sync_success(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaCoursor3_source_dsa_obj_dn(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursor3Ctr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3Ctr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor3Ctr_enumeration_context(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3Ctr_enumeration_context, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor3Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor3(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor3Ctr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaCoursor3Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaCoursor3Ctr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursor3Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursor3Ctr); + } + + offset=drsuapi_dissect_DsReplicaCoursor3Ctr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor3Ctr_enumeration_context(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaCoursor3Ctr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaObjMetaData2_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_attribute_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaObjMetaData2_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaObjMetaData2_attribute_name, NDR_POINTER_UNIQUE, "attribute_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_version, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2_originating_last_changed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_originating_last_changed, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2_originating_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_originating_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2_originating_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_originating_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2_local_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_local_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2_originating_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2_originating_dsa_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaObjMetaData2_originating_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaObjMetaData2_originating_dsa_obj_dn, NDR_POINTER_UNIQUE, "originating_dsa_obj_dn", -1); + return offset; +} + + +int +drsuapi_dissect_DsReplicaObjMetaData2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaObjMetaData2); + } + + offset=unique_drsuapi_dissect_DsReplicaObjMetaData2_attribute_name(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData2_version(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData2_originating_last_changed(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData2_originating_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData2_originating_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData2_local_usn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaObjMetaData2_originating_dsa_obj_dn(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaObjMetaData2Ctr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2Ctr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2Ctr_enumeration_context(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaObjMetaData2Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaObjMetaData2(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaObjMetaData2Ctr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaObjMetaData2Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaObjMetaData2Ctr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaObjMetaData2Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaObjMetaData2Ctr); + } + + offset=drsuapi_dissect_DsReplicaObjMetaData2Ctr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaObjMetaData2Ctr_enumeration_context(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaObjMetaData2Ctr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_attribute_name, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaAttrValMetaData2_attribute_name(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData2_attribute_name, NDR_POINTER_UNIQUE, "attribute_name", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_object_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaAttrValMetaData2_object_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData2_object_dn, NDR_POINTER_UNIQUE, "object_dn", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_value_length(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_value_length, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_value, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaAttrValMetaData2_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData2_value); + return offset; +} + +static int +unique_ucarray_drsuapi_dissect_DsReplicaAttrValMetaData2_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, ucarray_drsuapi_dissect_DsReplicaAttrValMetaData2_value, NDR_POINTER_UNIQUE, "value", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_deleted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_deleted, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_created(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_created, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_version, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_originating_last_changed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_originating_last_changed, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_originating_dsa_invocation_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_invocation_id, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_originating_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_originating_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_local_usn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_local_usn, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2_originating_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_obj_dn, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplicaAttrValMetaData2_originating_dsa_obj_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData2_originating_dsa_obj_dn, NDR_POINTER_UNIQUE, "originating_dsa_obj_dn", -1); + return offset; +} + + +int +drsuapi_dissect_DsReplicaAttrValMetaData2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaAttrValMetaData2); + } + + offset=unique_drsuapi_dissect_DsReplicaAttrValMetaData2_attribute_name(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaAttrValMetaData2_object_dn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_value_length(tvb, offset, pinfo, tree, drep); + + offset=unique_ucarray_drsuapi_dissect_DsReplicaAttrValMetaData2_value(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_deleted(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_created(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_version(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_originating_last_changed(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_originating_dsa_invocation_id(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_originating_usn(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2_local_usn(tvb, offset, pinfo, tree, drep); + + offset=unique_drsuapi_dissect_DsReplicaAttrValMetaData2_originating_dsa_obj_dn(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2Ctr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaAttrValMetaData2(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaAttrValMetaData2Ctr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaAttrValMetaData2Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaAttrValMetaData2Ctr); + } + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaAttrValMetaData2Ctr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaCoursor05Ctr_u1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor05Ctr_u1, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor05Ctr_u2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor05Ctr_u2, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor05Ctr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor05Ctr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor05Ctr_u3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor05Ctr_u3, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaCoursor05Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaCoursor05Ctr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplicaCoursor05Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaCoursor05Ctr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplicaCoursor05Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaCoursor05Ctr); + } + + offset=drsuapi_dissect_DsReplicaCoursor05Ctr_u1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor05Ctr_u2(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor05Ctr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaCoursor05Ctr_u3(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplicaCoursor05Ctr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplica06_str1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_unistr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_str1, param); + return offset; +} + +static int +unique_drsuapi_dissect_DsReplica06_str1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplica06_str1, NDR_POINTER_UNIQUE, "str1", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u1, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u2, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u3, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u4, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u5, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u6(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u6, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06_u7(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06_u7, param); + return offset; +} + + +int +drsuapi_dissect_DsReplica06(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplica06); + } + + offset=unique_drsuapi_dissect_DsReplica06_str1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u1(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u2(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u3(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u4(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u5(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u6(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06_u7(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplica06Ctr_count(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06Ctr_count, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06Ctr_reserved(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06Ctr_reserved, param); + return offset; +} + +static int +drsuapi_dissect_DsReplica06Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplica06(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplica06Ctr_array, param); + return offset; +} + +static int +ucarray_drsuapi_dissect_DsReplica06Ctr_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplica06Ctr_array); + return offset; +} + + +int +drsuapi_dissect_DsReplica06Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, 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, TRUE); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplica06Ctr); + } + + offset=drsuapi_dissect_DsReplica06Ctr_count(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplica06Ctr_reserved(tvb, offset, pinfo, tree, drep); + + offset=ucarray_drsuapi_dissect_DsReplica06Ctr_array(tvb, offset, pinfo, tree, drep); + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaNeighbourCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours, NDR_POINTER_UNIQUE, "neighbours", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursorCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors, NDR_POINTER_UNIQUE, "coursors", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaObjMetaDataCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata, NDR_POINTER_UNIQUE, "objmetadata", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaKccDsaFailuresCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures, NDR_POINTER_UNIQUE, "connectfailures", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaKccDsaFailuresCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures, NDR_POINTER_UNIQUE, "linkfailures", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaOpCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops, NDR_POINTER_UNIQUE, "pendingops", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaAttrValMetaDataCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata, NDR_POINTER_UNIQUE, "attrvalmetadata", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor2Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2, NDR_POINTER_UNIQUE, "coursors2", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor3Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3, NDR_POINTER_UNIQUE, "coursors3", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaObjMetaData2Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2, NDR_POINTER_UNIQUE, "objmetadata2", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaAttrValMetaData2Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2, NDR_POINTER_UNIQUE, "attrvalmetadata2", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaNeighbourCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02, NDR_POINTER_UNIQUE, "neighbours02", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaCoursor05Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05, NDR_POINTER_UNIQUE, "coursors05", -1); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplica06Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06, param); + return offset; +} + +static int +drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06_unique(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06, NDR_POINTER_UNIQUE, "i06", -1); + return offset; +} + + +static int +drsuapi_dissect_union_DsReplicaInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + proto_item *item=NULL; + proto_tree *tree=NULL; + int old_offset; + guint32 level; + + ALIGN_TO_4_BYTES; + + old_offset=offset; + if(parent_tree){ + item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsReplicaInfo"); + tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaInfo); + } + + offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, + drep, hf_index, &level); + + switch(level){ + case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_CURSORS: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_CURSORS2: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_CURSORS3: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_CURSURS05: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05_unique(tvb, offset, pinfo, tree, drep); + break; + + case DRSUAPI_DS_REPLICA_INFO_06: + ALIGN_TO_4_BYTES; + offset=drsuapi_dissect_union_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06_unique(tvb, offset, pinfo, tree, drep); + break; + + } + + proto_item_set_len(item, offset-old_offset); + + return offset; +} +static int +drsuapi_dissect_DsReplicaGetInfo_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_policy_handle(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfo_bind_handle, param); + return offset; +} + +static int +ref_drsuapi_dissect_DsReplicaGetInfo_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaGetInfo_bind_handle, NDR_POINTER_REF, "bind_handle", -1); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfo_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaGetInfoLevel(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfo_level, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfo_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsReplicaGetInfoRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfo_req, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfo_info_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_DsReplicaInfoType(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfo_info_type, param); + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfo_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) +{ + guint32 param=0; + offset=drsuapi_dissect_union_DsReplicaInfo(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaGetInfo_info, param); + return offset; +} + + +static int +drsuapi_dissect_DsReplicaGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=ref_drsuapi_dissect_DsReplicaGetInfo_bind_handle(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfo_level(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfo_req(tvb, offset, pinfo, tree, drep); + + + return offset; +} + +static int +drsuapi_dissect_DsReplicaGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=drsuapi_dissect_DsReplicaGetInfo_info_type(tvb, offset, pinfo, tree, drep); + + offset=drsuapi_dissect_DsReplicaGetInfo_info(tvb, offset, pinfo, tree, drep); + + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + 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_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + 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_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + 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_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_QUERY_SITES_BY_COST_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + + return offset; +} + +static int +drsuapi_dissect_DRSUAPI_QUERY_SITES_BY_COST_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_) +{ + offset=dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_rc, NULL); + + + return offset; +} +/* END OF INCLUDED FILE : ETH_CODE */ + + + +void +proto_register_drsuapi(void) +{ static hf_register_info hf[] = { - { &hf_drsuapi_opnum, - { "Operation", "drsuapi.opnum", FT_UINT16, BASE_DEC, - NULL, 0x0, "Operation", HFILL }}, - }; +/* INCLUDED FILE : ETH_HFARR */ + { &hf_drsuapi_opnum, + { "Operation", "drsuapi.opnum", FT_UINT16, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_rc, + { "Return code", "drsuapi.rc", FT_UINT32, BASE_HEX, + VALS(NT_errors), 0, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE, + { "DRSUAPI_SUPPORTED_EXTENSION_BASE", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_BASE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_BASE_tfs), 0x00000001, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, + { "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION_tfs), 0x00000002, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, + { "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI_tfs), 0x00000004, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, + { "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2_tfs), 0x00000008, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, + { "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS_tfs), 0x00000010, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, + { "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1_tfs), 0x00000020, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, + { "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION_tfs), 0x00000040, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_00000080, + { "DRSUAPI_SUPPORTED_EXTENSION_00000080", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_00000080", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_00000080_tfs), 0x00000080, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, + { "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE_tfs), 0x00000100, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, + { "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2_tfs), 0x00000200, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, + { "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION_tfs), 0x00000400, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, + { "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2_tfs), 0x00000800, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD, + { "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD_tfs), 0x00001000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, + { "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND_tfs), 0x00002000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, + { "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO_tfs), 0x00004000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, + { "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION_tfs), 0x00008000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, + { "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01_tfs), 0x00010000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, + { "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP_tfs), 0x00020000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, + { "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY_tfs), 0x00040000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, + { "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3_tfs), 0x00080000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_00100000, + { "DRSUAPI_SUPPORTED_EXTENSION_00100000", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_00100000", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_00100000_tfs), 0x00100000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, + { "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2_tfs), 0x00200000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, + { "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6_tfs), 0x00400000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, + { "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS_tfs), 0x00800000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, + { "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8_tfs), 0x01000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, + { "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5_tfs), 0x02000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, + { "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6_tfs), 0x04000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, + { "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3_tfs), 0x08000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, + { "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7_tfs), 0x08000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, + { "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT_tfs), 0x08000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, + { "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS_tfs), 0x10000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_20000000, + { "DRSUAPI_SUPPORTED_EXTENSION_20000000", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_20000000", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_20000000_tfs), 0x20000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_40000000, + { "DRSUAPI_SUPPORTED_EXTENSION_40000000", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_40000000", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_40000000_tfs), 0x40000000, + "", HFILL }}, + + { &hf_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_80000000, + { "DRSUAPI_SUPPORTED_EXTENSION_80000000", "drsuapi.SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_80000000", FT_BOOLEAN, 32, + TFS(&DRSUAPI_SUPPORTED_EXTENSION_80000000_tfs), 0x80000000, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo24_supported_extensions, + { "supported_extensions", "drsuapi.DsBindInfo24.supported_extensions", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo24_site_guid, + { "site_guid", "drsuapi.DsBindInfo24.site_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo24_u1, + { "u1", "drsuapi.DsBindInfo24.u1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo28_supported_extensions, + { "supported_extensions", "drsuapi.DsBindInfo28.supported_extensions", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo28_site_guid, + { "site_guid", "drsuapi.DsBindInfo28.site_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo28_u1, + { "u1", "drsuapi.DsBindInfo28.u1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsBindInfo28_repl_epoch, + { "repl_epoch", "drsuapi.DsBindInfo28.repl_epoch", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsUnbind_bind_handle, + { "bind_handle", "drsuapi.DsUnbind.bind_handle", FT_BYTES, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION, + { "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION_tfs), 0x00000001, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_WRITEABLE, + { "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_WRITEABLE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_WRITEABLE_tfs), 0x00000002, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PERIODIC, + { "DRSUAPI_DS_REPLICA_SYNC_PERIODIC", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_PERIODIC", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_PERIODIC_tfs), 0x00000004, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING, + { "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING_tfs), 0x00000008, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES, + { "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES_tfs), 0x00000010, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL, + { "DRSUAPI_DS_REPLICA_SYNC_FULL", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_FULL", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_FULL_tfs), 0x00000020, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_URGENT, + { "DRSUAPI_DS_REPLICA_SYNC_URGENT", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_URGENT", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_URGENT_tfs), 0x00000040, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD, + { "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD_tfs), 0x00000080, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FORCE, + { "DRSUAPI_DS_REPLICA_SYNC_FORCE", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_FORCE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_FORCE_tfs), 0x00000100, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE, + { "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE_tfs), 0x00000200, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED, + { "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED_tfs), 0x00000400, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_TWO_WAY, + { "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_TWO_WAY", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_TWO_WAY_tfs), 0x00000800, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY, + { "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY_tfs), 0x00001000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INITIAL, + { "DRSUAPI_DS_REPLICA_SYNC_INITIAL", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_INITIAL", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_INITIAL_tfs), 0x00002000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION, + { "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION_tfs), 0x00004000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ABANDONED, + { "DRSUAPI_DS_REPLICA_SYNC_ABANDONED", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_ABANDONED", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_ABANDONED_tfs), 0x00008000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS, + { "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS_tfs), 0x00010000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET, + { "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET_tfs), 0x00020000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_REQUEUE, + { "DRSUAPI_DS_REPLICA_SYNC_REQUEUE", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_REQUEUE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_REQUEUE_tfs), 0x00040000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION, + { "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION_tfs), 0x00080000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA, + { "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA_tfs), 0x00100000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_CRITICAL, + { "DRSUAPI_DS_REPLICA_SYNC_CRITICAL", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_CRITICAL", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_CRITICAL_tfs), 0x00200000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS, + { "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS_tfs), 0x00400000, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PREEMPTED, + { "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_PREEMPTED", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_SYNC_PREEMPTED_tfs), 0x00800000, + "", HFILL }}, + + { &hf_drsuapi_DsGetNCChangesUsnTriple_usn1, + { "usn1", "drsuapi.DsGetNCChangesUsnTriple.usn1", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetNCChangesUsnTriple_usn2, + { "usn2", "drsuapi.DsGetNCChangesUsnTriple.usn2", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetNCChangesUsnTriple_usn3, + { "usn3", "drsuapi.DsGetNCChangesUsnTriple.usn3", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION, + { "DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION", "drsuapi.DsReplicaUpdateRefsOptions.DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION_tfs), 0x00000001, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE, + { "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", "drsuapi.DsReplicaUpdateRefsOptions.DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE_tfs), 0x00000002, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE, + { "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", "drsuapi.DsReplicaUpdateRefsOptions.DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE_tfs), 0x00000004, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE, + { "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", "drsuapi.DsReplicaUpdateRefsOptions.DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE_tfs), 0x00000008, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaUpdateRefsOptions_DRSUAPI_DS_REPLICA_UPDATE_0x00000010, + { "DRSUAPI_DS_REPLICA_UPDATE_0x00000010", "drsuapi.DsReplicaUpdateRefsOptions.DRSUAPI_DS_REPLICA_UPDATE_0x00000010", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_UPDATE_0x00000010_tfs), 0x00000010, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAddOptions_DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, + { "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", "drsuapi.DsReplicaAddOptions.DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION_tfs), 0x00000001, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAddOptions_DRSUAPI_DS_REPLICA_ADD_WRITEABLE, + { "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", "drsuapi.DsReplicaAddOptions.DRSUAPI_DS_REPLICA_ADD_WRITEABLE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_ADD_WRITEABLE_tfs), 0x00000002, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaDeleteOptions_DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION, + { "DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION", "drsuapi.DsReplicaDeleteOptions.DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_DELETE_ASYNCHRONOUS_OPERATION_tfs), 0x00000001, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaDeleteOptions_DRSUAPI_DS_REPLICA_DELETE_WRITEABLE, + { "DRSUAPI_DS_REPLICA_DELETE_WRITEABLE", "drsuapi.DsReplicaDeleteOptions.DRSUAPI_DS_REPLICA_DELETE_WRITEABLE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_DELETE_WRITEABLE_tfs), 0x00000002, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaModifyOptions_DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION, + { "DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION", "drsuapi.DsReplicaModifyOptions.DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_MODIFY_ASYNCHRONOUS_OPERATION_tfs), 0x00000001, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaModifyOptions_DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE, + { "DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE", "drsuapi.DsReplicaModifyOptions.DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE", FT_BOOLEAN, 32, + TFS(&DRSUAPI_DS_REPLICA_MODIFY_WRITEABLE_tfs), 0x00000002, + "", HFILL }}, + + { &hf_drsuapi_DsNameString_str, + { "str", "drsuapi.DsNameString.str", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_unknown1, + { "unknown1", "drsuapi.DsNameRequest1.unknown1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_unknown2, + { "unknown2", "drsuapi.DsNameRequest1.unknown2", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_format_flags, + { "format_flags", "drsuapi.DsNameRequest1.format_flags", FT_INT32, BASE_DEC, + VALS(drsuapi_DsNameFlags_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_format_offered, + { "format_offered", "drsuapi.DsNameRequest1.format_offered", FT_INT32, BASE_DEC, + VALS(drsuapi_DsNameFormat_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_format_desired, + { "format_desired", "drsuapi.DsNameRequest1.format_desired", FT_INT32, BASE_DEC, + VALS(drsuapi_DsNameFormat_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_count, + { "count", "drsuapi.DsNameRequest1.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest1_names, + { "names", "drsuapi.DsNameRequest1.names", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameRequest_1_req1, + { "req1", "drsuapi.DsNameRequest.req1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameInfo1_status, + { "status", "drsuapi.DsNameInfo1.status", FT_INT32, BASE_DEC, + VALS(drsuapi_DsNameStatus_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameInfo1_dns_domain_name, + { "dns_domain_name", "drsuapi.DsNameInfo1.dns_domain_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameInfo1_result_name, + { "result_name", "drsuapi.DsNameInfo1.result_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameCtr1_count, + { "count", "drsuapi.DsNameCtr1.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameCtr1_array, + { "array", "drsuapi.DsNameCtr1.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsNameCtr_1_ctr1, + { "ctr1", "drsuapi.DsNameCtr.ctr1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsCrackNames_bind_handle, + { "bind_handle", "drsuapi.DsCrackNames.bind_handle", FT_BYTES, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsCrackNames_level, + { "level", "drsuapi.DsCrackNames.level", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsCrackNames_req, + { "req", "drsuapi.DsCrackNames.req", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsCrackNames_ctr, + { "ctr", "drsuapi.DsCrackNames.ctr", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnRequest1_operation, + { "operation", "drsuapi.DsWriteAccountSpnRequest1.operation", FT_INT32, BASE_DEC, + VALS(drsuapi_DsSpnOperation_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnRequest1_unknown1, + { "unknown1", "drsuapi.DsWriteAccountSpnRequest1.unknown1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnRequest1_object_dn, + { "object_dn", "drsuapi.DsWriteAccountSpnRequest1.object_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnRequest1_count, + { "count", "drsuapi.DsWriteAccountSpnRequest1.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnRequest1_spn_names, + { "spn_names", "drsuapi.DsWriteAccountSpnRequest1.spn_names", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnRequest_1_req1, + { "req1", "drsuapi.DsWriteAccountSpnRequest.req1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnResult1_status, + { "status", "drsuapi.DsWriteAccountSpnResult1.status", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpnResult_1_res1, + { "res1", "drsuapi.DsWriteAccountSpnResult.res1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpn_bind_handle, + { "bind_handle", "drsuapi.DsWriteAccountSpn.bind_handle", FT_BYTES, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpn_level, + { "level", "drsuapi.DsWriteAccountSpn.level", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpn_req, + { "req", "drsuapi.DsWriteAccountSpn.req", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsWriteAccountSpn_res, + { "res", "drsuapi.DsWriteAccountSpn.res", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoRequest1_domain_name, + { "domain_name", "drsuapi.DsGetDCInfoRequest1.domain_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoRequest1_level, + { "level", "drsuapi.DsGetDCInfoRequest1.level", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoRequest_1_req1, + { "req1", "drsuapi.DsGetDCInfoRequest.req1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_netbios_name, + { "netbios_name", "drsuapi.DsGetDCInfo1.netbios_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_dns_name, + { "dns_name", "drsuapi.DsGetDCInfo1.dns_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_site_name, + { "site_name", "drsuapi.DsGetDCInfo1.site_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_computer_dn, + { "computer_dn", "drsuapi.DsGetDCInfo1.computer_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_server_dn, + { "server_dn", "drsuapi.DsGetDCInfo1.server_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_is_pdc, + { "is_pdc", "drsuapi.DsGetDCInfo1.is_pdc", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo1_is_enabled, + { "is_enabled", "drsuapi.DsGetDCInfo1.is_enabled", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr1_count, + { "count", "drsuapi.DsGetDCInfoCtr1.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr1_array, + { "array", "drsuapi.DsGetDCInfoCtr1.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_netbios_name, + { "netbios_name", "drsuapi.DsGetDCInfo2.netbios_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_dns_name, + { "dns_name", "drsuapi.DsGetDCInfo2.dns_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_site_name, + { "site_name", "drsuapi.DsGetDCInfo2.site_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_site_dn, + { "site_dn", "drsuapi.DsGetDCInfo2.site_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_computer_dn, + { "computer_dn", "drsuapi.DsGetDCInfo2.computer_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_server_dn, + { "server_dn", "drsuapi.DsGetDCInfo2.server_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_ntds_dn, + { "ntds_dn", "drsuapi.DsGetDCInfo2.ntds_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_is_pdc, + { "is_pdc", "drsuapi.DsGetDCInfo2.is_pdc", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_is_enabled, + { "is_enabled", "drsuapi.DsGetDCInfo2.is_enabled", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_is_gc, + { "is_gc", "drsuapi.DsGetDCInfo2.is_gc", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_site_guid, + { "site_guid", "drsuapi.DsGetDCInfo2.site_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_computer_guid, + { "computer_guid", "drsuapi.DsGetDCInfo2.computer_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_server_guid, + { "server_guid", "drsuapi.DsGetDCInfo2.server_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo2_ntds_guid, + { "ntds_guid", "drsuapi.DsGetDCInfo2.ntds_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr2_count, + { "count", "drsuapi.DsGetDCInfoCtr2.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr2_array, + { "array", "drsuapi.DsGetDCInfoCtr2.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_unknown1, + { "unknown1", "drsuapi.DsGetDCInfo01.unknown1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_unknown2, + { "unknown2", "drsuapi.DsGetDCInfo01.unknown2", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_unknown3, + { "unknown3", "drsuapi.DsGetDCInfo01.unknown3", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_unknown4, + { "unknown4", "drsuapi.DsGetDCInfo01.unknown4", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_unknown5, + { "unknown5", "drsuapi.DsGetDCInfo01.unknown5", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_unknown6, + { "unknown6", "drsuapi.DsGetDCInfo01.unknown6", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfo01_server_nt4_account, + { "server_nt4_account", "drsuapi.DsGetDCInfo01.server_nt4_account", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr01_count, + { "count", "drsuapi.DsGetDCInfoCtr01.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr01_array, + { "array", "drsuapi.DsGetDCInfoCtr01.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_1_ctr1, + { "ctr1", "drsuapi.DsGetDCInfoCtr.ctr1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_2_ctr2, + { "ctr2", "drsuapi.DsGetDCInfoCtr.ctr2", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDCInfoCtr_DRSUAPI_DC_INFO_CTR_01_ctr01, + { "ctr01", "drsuapi.DsGetDCInfoCtr.ctr01", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDomainControllerInfo_bind_handle, + { "bind_handle", "drsuapi.DsGetDomainControllerInfo.bind_handle", FT_BYTES, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDomainControllerInfo_level, + { "level", "drsuapi.DsGetDomainControllerInfo.level", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDomainControllerInfo_req, + { "req", "drsuapi.DsGetDomainControllerInfo.req", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsGetDomainControllerInfo_ctr, + { "ctr", "drsuapi.DsGetDomainControllerInfo.ctr", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest1_info_type, + { "info_type", "drsuapi.DsReplicaGetInfoRequest1.info_type", FT_INT32, BASE_DEC, + VALS(drsuapi_DsReplicaInfoType_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest1_object_dn, + { "object_dn", "drsuapi.DsReplicaGetInfoRequest1.object_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest1_guid1, + { "guid1", "drsuapi.DsReplicaGetInfoRequest1.guid1", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_info_type, + { "info_type", "drsuapi.DsReplicaGetInfoRequest2.info_type", FT_INT32, BASE_DEC, + VALS(drsuapi_DsReplicaInfoType_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_object_dn, + { "object_dn", "drsuapi.DsReplicaGetInfoRequest2.object_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_guid1, + { "guid1", "drsuapi.DsReplicaGetInfoRequest2.guid1", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_unknown1, + { "unknown1", "drsuapi.DsReplicaGetInfoRequest2.unknown1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_string1, + { "string1", "drsuapi.DsReplicaGetInfoRequest2.string1", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_string2, + { "string2", "drsuapi.DsReplicaGetInfoRequest2.string2", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest2_unknown2, + { "unknown2", "drsuapi.DsReplicaGetInfoRequest2.unknown2", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO_req1, + { "req1", "drsuapi.DsReplicaGetInfoRequest.req1", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfoRequest_DRSUAPI_DS_REPLICA_GET_INFO2_req2, + { "req2", "drsuapi.DsReplicaGetInfoRequest.req2", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_naming_context_dn, + { "naming_context_dn", "drsuapi.DsReplicaNeighbour.naming_context_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn, + { "source_dsa_obj_dn", "drsuapi.DsReplicaNeighbour.source_dsa_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_source_dsa_address, + { "source_dsa_address", "drsuapi.DsReplicaNeighbour.source_dsa_address", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_transport_obj_dn, + { "transport_obj_dn", "drsuapi.DsReplicaNeighbour.transport_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_replica_flags, + { "replica_flags", "drsuapi.DsReplicaNeighbour.replica_flags", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_reserved, + { "reserved", "drsuapi.DsReplicaNeighbour.reserved", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_naming_context_obj_guid, + { "naming_context_obj_guid", "drsuapi.DsReplicaNeighbour.naming_context_obj_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid, + { "source_dsa_obj_guid", "drsuapi.DsReplicaNeighbour.source_dsa_obj_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id, + { "source_dsa_invocation_id", "drsuapi.DsReplicaNeighbour.source_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_transport_obj_guid, + { "transport_obj_guid", "drsuapi.DsReplicaNeighbour.transport_obj_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_tmp_highest_usn, + { "tmp_highest_usn", "drsuapi.DsReplicaNeighbour.tmp_highest_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_highest_usn, + { "highest_usn", "drsuapi.DsReplicaNeighbour.highest_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_last_success, + { "last_success", "drsuapi.DsReplicaNeighbour.last_success", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_last_attempt, + { "last_attempt", "drsuapi.DsReplicaNeighbour.last_attempt", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_result_last_attempt, + { "result_last_attempt", "drsuapi.DsReplicaNeighbour.result_last_attempt", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbour_consecutive_sync_failures, + { "consecutive_sync_failures", "drsuapi.DsReplicaNeighbour.consecutive_sync_failures", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbourCtr_count, + { "count", "drsuapi.DsReplicaNeighbourCtr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbourCtr_reserved, + { "reserved", "drsuapi.DsReplicaNeighbourCtr.reserved", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaNeighbourCtr_array, + { "array", "drsuapi.DsReplicaNeighbourCtr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor_source_dsa_invocation_id, + { "source_dsa_invocation_id", "drsuapi.DsReplicaCoursor.source_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor_highest_usn, + { "highest_usn", "drsuapi.DsReplicaCoursor.highest_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursorCtr_count, + { "count", "drsuapi.DsReplicaCoursorCtr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursorCtr_reserved, + { "reserved", "drsuapi.DsReplicaCoursorCtr.reserved", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursorCtr_array, + { "array", "drsuapi.DsReplicaCoursorCtr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData_attribute_name, + { "attribute_name", "drsuapi.DsReplicaObjMetaData.attribute_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData_version, + { "version", "drsuapi.DsReplicaObjMetaData.version", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData_originating_last_changed, + { "originating_last_changed", "drsuapi.DsReplicaObjMetaData.originating_last_changed", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData_originating_dsa_invocation_id, + { "originating_dsa_invocation_id", "drsuapi.DsReplicaObjMetaData.originating_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData_originating_usn, + { "originating_usn", "drsuapi.DsReplicaObjMetaData.originating_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData_local_usn, + { "local_usn", "drsuapi.DsReplicaObjMetaData.local_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaDataCtr_count, + { "count", "drsuapi.DsReplicaObjMetaDataCtr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaDataCtr_reserved, + { "reserved", "drsuapi.DsReplicaObjMetaDataCtr.reserved", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaDataCtr_array, + { "array", "drsuapi.DsReplicaObjMetaDataCtr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn, + { "dsa_obj_dn", "drsuapi.DsReplicaKccDsaFailure.dsa_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid, + { "dsa_obj_guid", "drsuapi.DsReplicaKccDsaFailure.dsa_obj_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailure_first_failure, + { "first_failure", "drsuapi.DsReplicaKccDsaFailure.first_failure", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailure_num_failures, + { "num_failures", "drsuapi.DsReplicaKccDsaFailure.num_failures", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailure_last_result, + { "last_result", "drsuapi.DsReplicaKccDsaFailure.last_result", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailuresCtr_count, + { "count", "drsuapi.DsReplicaKccDsaFailuresCtr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailuresCtr_reserved, + { "reserved", "drsuapi.DsReplicaKccDsaFailuresCtr.reserved", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaKccDsaFailuresCtr_array, + { "array", "drsuapi.DsReplicaKccDsaFailuresCtr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_SYNC_sync, + { "sync", "drsuapi.DsRplicaOpOptions.sync", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_ADD_add, + { "add", "drsuapi.DsRplicaOpOptions.add", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_DELETE_delete, + { "delete", "drsuapi.DsRplicaOpOptions.delete", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY_modify, + { "modify", "drsuapi.DsRplicaOpOptions.modify", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsRplicaOpOptions_DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS_update_refs, + { "update_refs", "drsuapi.DsRplicaOpOptions.update_refs", FT_UINT32, BASE_HEX, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsRplicaOpOptions_default_unknown, + { "unknown", "drsuapi.DsRplicaOpOptions.unknown", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_operation_start, + { "operation_start", "drsuapi.DsReplicaOp.operation_start", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_serial_num, + { "serial_num", "drsuapi.DsReplicaOp.serial_num", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_priority, + { "priority", "drsuapi.DsReplicaOp.priority", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_operation_type, + { "operation_type", "drsuapi.DsReplicaOp.operation_type", FT_INT16, BASE_DEC, + VALS(drsuapi_DsReplicaOpType_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_options, + { "options", "drsuapi.DsReplicaOp.options", FT_UINT16, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_nc_dn, + { "nc_dn", "drsuapi.DsReplicaOp.nc_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_remote_dsa_obj_dn, + { "remote_dsa_obj_dn", "drsuapi.DsReplicaOp.remote_dsa_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_remote_dsa_address, + { "remote_dsa_address", "drsuapi.DsReplicaOp.remote_dsa_address", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_nc_obj_guid, + { "nc_obj_guid", "drsuapi.DsReplicaOp.nc_obj_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOp_remote_dsa_obj_guid, + { "remote_dsa_obj_guid", "drsuapi.DsReplicaOp.remote_dsa_obj_guid", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOpCtr_time, + { "time", "drsuapi.DsReplicaOpCtr.time", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOpCtr_count, + { "count", "drsuapi.DsReplicaOpCtr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaOpCtr_array, + { "array", "drsuapi.DsReplicaOpCtr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_attribute_name, + { "attribute_name", "drsuapi.DsReplicaAttrValMetaData.attribute_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_object_dn, + { "object_dn", "drsuapi.DsReplicaAttrValMetaData.object_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_value_length, + { "value_length", "drsuapi.DsReplicaAttrValMetaData.value_length", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_value, + { "value", "drsuapi.DsReplicaAttrValMetaData.value", FT_UINT8, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_deleted, + { "deleted", "drsuapi.DsReplicaAttrValMetaData.deleted", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_created, + { "created", "drsuapi.DsReplicaAttrValMetaData.created", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_version, + { "version", "drsuapi.DsReplicaAttrValMetaData.version", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_originating_last_changed, + { "originating_last_changed", "drsuapi.DsReplicaAttrValMetaData.originating_last_changed", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_originating_dsa_invocation_id, + { "originating_dsa_invocation_id", "drsuapi.DsReplicaAttrValMetaData.originating_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_originating_usn, + { "originating_usn", "drsuapi.DsReplicaAttrValMetaData.originating_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData_local_usn, + { "local_usn", "drsuapi.DsReplicaAttrValMetaData.local_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaDataCtr_count, + { "count", "drsuapi.DsReplicaAttrValMetaDataCtr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context, + { "enumeration_context", "drsuapi.DsReplicaAttrValMetaDataCtr.enumeration_context", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaDataCtr_array, + { "array", "drsuapi.DsReplicaAttrValMetaDataCtr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor2_source_dsa_invocation_id, + { "source_dsa_invocation_id", "drsuapi.DsReplicaCoursor2.source_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor2_highest_usn, + { "highest_usn", "drsuapi.DsReplicaCoursor2.highest_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor2_last_sync_success, + { "last_sync_success", "drsuapi.DsReplicaCoursor2.last_sync_success", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor2Ctr_count, + { "count", "drsuapi.DsReplicaCoursor2Ctr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor2Ctr_enumeration_context, + { "enumeration_context", "drsuapi.DsReplicaCoursor2Ctr.enumeration_context", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor2Ctr_array, + { "array", "drsuapi.DsReplicaCoursor2Ctr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3_source_dsa_invocation_id, + { "source_dsa_invocation_id", "drsuapi.DsReplicaCoursor3.source_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3_highest_usn, + { "highest_usn", "drsuapi.DsReplicaCoursor3.highest_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3_last_sync_success, + { "last_sync_success", "drsuapi.DsReplicaCoursor3.last_sync_success", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3_source_dsa_obj_dn, + { "source_dsa_obj_dn", "drsuapi.DsReplicaCoursor3.source_dsa_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3Ctr_count, + { "count", "drsuapi.DsReplicaCoursor3Ctr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3Ctr_enumeration_context, + { "enumeration_context", "drsuapi.DsReplicaCoursor3Ctr.enumeration_context", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor3Ctr_array, + { "array", "drsuapi.DsReplicaCoursor3Ctr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_attribute_name, + { "attribute_name", "drsuapi.DsReplicaObjMetaData2.attribute_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_version, + { "version", "drsuapi.DsReplicaObjMetaData2.version", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_originating_last_changed, + { "originating_last_changed", "drsuapi.DsReplicaObjMetaData2.originating_last_changed", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_originating_dsa_invocation_id, + { "originating_dsa_invocation_id", "drsuapi.DsReplicaObjMetaData2.originating_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_originating_usn, + { "originating_usn", "drsuapi.DsReplicaObjMetaData2.originating_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_local_usn, + { "local_usn", "drsuapi.DsReplicaObjMetaData2.local_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2_originating_dsa_obj_dn, + { "originating_dsa_obj_dn", "drsuapi.DsReplicaObjMetaData2.originating_dsa_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2Ctr_count, + { "count", "drsuapi.DsReplicaObjMetaData2Ctr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context, + { "enumeration_context", "drsuapi.DsReplicaObjMetaData2Ctr.enumeration_context", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaObjMetaData2Ctr_array, + { "array", "drsuapi.DsReplicaObjMetaData2Ctr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_attribute_name, + { "attribute_name", "drsuapi.DsReplicaAttrValMetaData2.attribute_name", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_object_dn, + { "object_dn", "drsuapi.DsReplicaAttrValMetaData2.object_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_value_length, + { "value_length", "drsuapi.DsReplicaAttrValMetaData2.value_length", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_value, + { "value", "drsuapi.DsReplicaAttrValMetaData2.value", FT_UINT8, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_deleted, + { "deleted", "drsuapi.DsReplicaAttrValMetaData2.deleted", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_created, + { "created", "drsuapi.DsReplicaAttrValMetaData2.created", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_version, + { "version", "drsuapi.DsReplicaAttrValMetaData2.version", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_originating_last_changed, + { "originating_last_changed", "drsuapi.DsReplicaAttrValMetaData2.originating_last_changed", FT_ABSOLUTE_TIME, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_invocation_id, + { "originating_dsa_invocation_id", "drsuapi.DsReplicaAttrValMetaData2.originating_dsa_invocation_id", FT_STRING, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_originating_usn, + { "originating_usn", "drsuapi.DsReplicaAttrValMetaData2.originating_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_local_usn, + { "local_usn", "drsuapi.DsReplicaAttrValMetaData2.local_usn", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_obj_dn, + { "originating_dsa_obj_dn", "drsuapi.DsReplicaAttrValMetaData2.originating_dsa_obj_dn", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2Ctr_count, + { "count", "drsuapi.DsReplicaAttrValMetaData2Ctr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context, + { "enumeration_context", "drsuapi.DsReplicaAttrValMetaData2Ctr.enumeration_context", FT_INT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaAttrValMetaData2Ctr_array, + { "array", "drsuapi.DsReplicaAttrValMetaData2Ctr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor05Ctr_u1, + { "u1", "drsuapi.DsReplicaCoursor05Ctr.u1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor05Ctr_u2, + { "u2", "drsuapi.DsReplicaCoursor05Ctr.u2", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor05Ctr_count, + { "count", "drsuapi.DsReplicaCoursor05Ctr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor05Ctr_u3, + { "u3", "drsuapi.DsReplicaCoursor05Ctr.u3", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaCoursor05Ctr_array, + { "array", "drsuapi.DsReplicaCoursor05Ctr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_str1, + { "str1", "drsuapi.DsReplica06.str1", FT_STRING, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u1, + { "u1", "drsuapi.DsReplica06.u1", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u2, + { "u2", "drsuapi.DsReplica06.u2", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u3, + { "u3", "drsuapi.DsReplica06.u3", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u4, + { "u4", "drsuapi.DsReplica06.u4", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u5, + { "u5", "drsuapi.DsReplica06.u5", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u6, + { "u6", "drsuapi.DsReplica06.u6", FT_UINT64, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06_u7, + { "u7", "drsuapi.DsReplica06.u7", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06Ctr_count, + { "count", "drsuapi.DsReplica06Ctr.count", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06Ctr_reserved, + { "reserved", "drsuapi.DsReplica06Ctr.reserved", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplica06Ctr_array, + { "array", "drsuapi.DsReplica06Ctr.array", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS_neighbours, + { "neighbours", "drsuapi.DsReplicaInfo.neighbours", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS_coursors, + { "coursors", "drsuapi.DsReplicaInfo.coursors", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA_objmetadata, + { "objmetadata", "drsuapi.DsReplicaInfo.objmetadata", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES_connectfailures, + { "connectfailures", "drsuapi.DsReplicaInfo.connectfailures", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES_linkfailures, + { "linkfailures", "drsuapi.DsReplicaInfo.linkfailures", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_PENDING_OPS_pendingops, + { "pendingops", "drsuapi.DsReplicaInfo.pendingops", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA_attrvalmetadata, + { "attrvalmetadata", "drsuapi.DsReplicaInfo.attrvalmetadata", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS2_coursors2, + { "coursors2", "drsuapi.DsReplicaInfo.coursors2", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSORS3_coursors3, + { "coursors3", "drsuapi.DsReplicaInfo.coursors3", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2_objmetadata2, + { "objmetadata2", "drsuapi.DsReplicaInfo.objmetadata2", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2_attrvalmetadata2, + { "attrvalmetadata2", "drsuapi.DsReplicaInfo.attrvalmetadata2", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02_neighbours02, + { "neighbours02", "drsuapi.DsReplicaInfo.neighbours02", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_CURSURS05_coursors05, + { "coursors05", "drsuapi.DsReplicaInfo.coursors05", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaInfo_DRSUAPI_DS_REPLICA_INFO_06_i06, + { "i06", "drsuapi.DsReplicaInfo.i06", FT_NONE, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfo_bind_handle, + { "bind_handle", "drsuapi.DsReplicaGetInfo.bind_handle", FT_BYTES, BASE_NONE, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfo_level, + { "level", "drsuapi.DsReplicaGetInfo.level", FT_INT32, BASE_DEC, + VALS(drsuapi_DsReplicaGetInfoLevel_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfo_req, + { "req", "drsuapi.DsReplicaGetInfo.req", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfo_info_type, + { "info_type", "drsuapi.DsReplicaGetInfo.info_type", FT_INT32, BASE_DEC, + VALS(drsuapi_DsReplicaInfoType_vals), 0, + "", HFILL }}, + + { &hf_drsuapi_DsReplicaGetInfo_info, + { "info", "drsuapi.DsReplicaGetInfo.info", FT_UINT32, BASE_DEC, + NULL, 0, + "", HFILL }}, + +/* END OF INCLUDED FILE : ETH_HFARR */ + + + }; + static gint *ett[] = { - &ett_dcerpc_drsuapi, - }; - proto_dcerpc_drsuapi = proto_register_protocol( - "Microsoft Directory Replication Service", "DRSUAPI", "drsuapi"); +/* INCLUDED FILE : ETH_ETTARR */ + &ett_drsuapi, + &ett_drsuapi_SupportedExtensions, + &ett_drsuapi_DsBindInfo24, + &ett_drsuapi_DsBindInfo28, + &ett_drsuapi_DsReplicaSyncOptions, + &ett_drsuapi_DsGetNCChangesUsnTriple, + &ett_drsuapi_DsReplicaUpdateRefsOptions, + &ett_drsuapi_DsReplicaAddOptions, + &ett_drsuapi_DsReplicaDeleteOptions, + &ett_drsuapi_DsReplicaModifyOptions, + &ett_drsuapi_DsNameString, + &ett_drsuapi_DsNameRequest1, + &ett_drsuapi_DsNameRequest, + &ett_drsuapi_DsNameInfo1, + &ett_drsuapi_DsNameCtr1, + &ett_drsuapi_DsNameCtr, + &ett_drsuapi_DsWriteAccountSpnRequest1, + &ett_drsuapi_DsWriteAccountSpnRequest, + &ett_drsuapi_DsWriteAccountSpnResult1, + &ett_drsuapi_DsWriteAccountSpnResult, + &ett_drsuapi_DsGetDCInfoRequest1, + &ett_drsuapi_DsGetDCInfoRequest, + &ett_drsuapi_DsGetDCInfo1, + &ett_drsuapi_DsGetDCInfoCtr1, + &ett_drsuapi_DsGetDCInfo2, + &ett_drsuapi_DsGetDCInfoCtr2, + &ett_drsuapi_DsGetDCInfo01, + &ett_drsuapi_DsGetDCInfoCtr01, + &ett_drsuapi_DsGetDCInfoCtr, + &ett_drsuapi_DsReplicaGetInfoRequest1, + &ett_drsuapi_DsReplicaGetInfoRequest2, + &ett_drsuapi_DsReplicaGetInfoRequest, + &ett_drsuapi_DsReplicaNeighbour, + &ett_drsuapi_DsReplicaNeighbourCtr, + &ett_drsuapi_DsReplicaCoursor, + &ett_drsuapi_DsReplicaCoursorCtr, + &ett_drsuapi_DsReplicaObjMetaData, + &ett_drsuapi_DsReplicaObjMetaDataCtr, + &ett_drsuapi_DsReplicaKccDsaFailure, + &ett_drsuapi_DsReplicaKccDsaFailuresCtr, + &ett_drsuapi_DsRplicaOpOptions, + &ett_drsuapi_DsReplicaOp, + &ett_drsuapi_DsReplicaOpCtr, + &ett_drsuapi_DsReplicaAttrValMetaData, + &ett_drsuapi_DsReplicaAttrValMetaDataCtr, + &ett_drsuapi_DsReplicaCoursor2, + &ett_drsuapi_DsReplicaCoursor2Ctr, + &ett_drsuapi_DsReplicaCoursor3, + &ett_drsuapi_DsReplicaCoursor3Ctr, + &ett_drsuapi_DsReplicaObjMetaData2, + &ett_drsuapi_DsReplicaObjMetaData2Ctr, + &ett_drsuapi_DsReplicaAttrValMetaData2, + &ett_drsuapi_DsReplicaAttrValMetaData2Ctr, + &ett_drsuapi_DsReplicaCoursor05Ctr, + &ett_drsuapi_DsReplica06, + &ett_drsuapi_DsReplica06Ctr, + &ett_drsuapi_DsReplicaInfo, +/* END OF INCLUDED FILE : ETH_ETTARR */ - proto_register_field_array(proto_dcerpc_drsuapi, hf, array_length(hf)); - proto_register_subtree_array(ett, array_length(ett)); + }; + proto_drsuapi = proto_register_protocol( + "DRSUAPI", + "DRSUAPI", "drsuapi"); + proto_register_field_array(proto_drsuapi, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); } +static dcerpc_sub_dissector function_dissectors[] = { + + +/* INCLUDED FILE : ETH_FT */ + { 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, "DRSUAPI_REPLICA_ADD", + drsuapi_dissect_DRSUAPI_REPLICA_ADD_request, + drsuapi_dissect_DRSUAPI_REPLICA_ADD_response }, + { 6, "DRSUAPI_REPLICA_DEL", + drsuapi_dissect_DRSUAPI_REPLICA_DEL_request, + drsuapi_dissect_DRSUAPI_REPLICA_DEL_response }, + { 7, "DRSUAPI_REPLICA_MODIFY", + drsuapi_dissect_DRSUAPI_REPLICA_MODIFY_request, + drsuapi_dissect_DRSUAPI_REPLICA_MODIFY_response }, + { 8, "DRSUAPI_VERIFY_NAMES", + drsuapi_dissect_DRSUAPI_VERIFY_NAMES_request, + drsuapi_dissect_DRSUAPI_VERIFY_NAMES_response }, + { 9, "DRSUAPI_GET_MEMBERSHIPS", + drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS_request, + drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS_response }, + { 10, "DRSUAPI_INTER_DOMAIN_MOVE", + drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_request, + drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_response }, + { 11, "DRSUAPI_GET_NT4_CHANGELOG", + drsuapi_dissect_DRSUAPI_GET_NT4_CHANGELOG_request, + drsuapi_dissect_DRSUAPI_GET_NT4_CHANGELOG_response }, + { 12, "DsCrackNames", + drsuapi_dissect_DsCrackNames_request, + drsuapi_dissect_DsCrackNames_response }, + { 13, "DsWriteAccountSpn", + drsuapi_dissect_DsWriteAccountSpn_request, + drsuapi_dissect_DsWriteAccountSpn_response }, + { 14, "DRSUAPI_REMOVE_DS_SERVER", + drsuapi_dissect_DRSUAPI_REMOVE_DS_SERVER_request, + drsuapi_dissect_DRSUAPI_REMOVE_DS_SERVER_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, "DRSUAPI_EXECUTE_KCC", + drsuapi_dissect_DRSUAPI_EXECUTE_KCC_request, + drsuapi_dissect_DRSUAPI_EXECUTE_KCC_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, "DRSUAPI_GET_MEMBERSHIPS2", + drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS2_request, + drsuapi_dissect_DRSUAPI_GET_MEMBERSHIPS2_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, "DRSUAPI_QUERY_SITES_BY_COST", + drsuapi_dissect_DRSUAPI_QUERY_SITES_BY_COST_request, + drsuapi_dissect_DRSUAPI_QUERY_SITES_BY_COST_response }, +/* END OF INCLUDED FILE : ETH_FT */ + + + { 0, NULL, NULL, NULL }, +}; void -proto_reg_handoff_dcerpc_drsuapi(void) +proto_reg_handoff_drsuapi(void) { - /* register protocol as dcerpc */ - dcerpc_init_uuid( - proto_dcerpc_drsuapi, ett_dcerpc_drsuapi, &uuid_dcerpc_drsuapi, - ver_dcerpc_drsuapi, dcerpc_drsuapi_dissectors, hf_drsuapi_opnum); + +/* INCLUDED FILE : ETH_HANDOFF */ + dcerpc_init_uuid(proto_drsuapi, ett_drsuapi, + &uuid_dcerpc_drsuapi, ver_drsuapi, + function_dissectors, hf_drsuapi_opnum); +/* END OF INCLUDED FILE : ETH_HANDOFF */ + + } + diff --git a/epan/dissectors/packet-dcerpc-drsuapi.h b/epan/dissectors/packet-dcerpc-drsuapi.h index eeb4a6c7a0..9e9cd1cd7f 100644 --- a/epan/dissectors/packet-dcerpc-drsuapi.h +++ b/epan/dissectors/packet-dcerpc-drsuapi.h @@ -1,6 +1,9 @@ +/* DO NOT EDIT + * This dissector is autogenerated + * ronnie sahlberg 2005 + */ /* packet-dcerpc-drsuapi.h - * Routines for the drsuapi (Directory Replication Service) MSRPC interface - * Copyright 2003 Jean-Baptiste Marchand <jbm@hsc.fr> + * Routines for DRSUAPI packet disassembly * * $Id$ * @@ -26,35 +29,142 @@ #ifndef __PACKET_DCERPC_DRSUAPI_H #define __PACKET_DCERPC_DRSUAPI_H -/* MSRPC functions available in the drsuapi interface */ - -#define DRSUAPI_BIND 0x00 -#define DRSUAPI_UNBIND 0x01 -#define DRSUAPI_REPLICA_SYNC 0x02 -#define DRSUAPI_GET_NC_CHANGES 0x03 -#define DRSUAPI_UPDATE_REFS 0x04 -#define DRSUAPI_REPLICA_ADD 0x05 -#define DRSUAPI_REPLICA_DEL 0x06 -#define DRSUAPI_REPLICA_MODIFY 0x07 -#define DRSUAPI_VERIFY_NAMES 0x08 -#define DRSUAPI_GET_MEMBERSHIPS 0x09 -#define DRSUAPI_INTER_DOMAIN_MOVE 0x0a -#define DRSUAPI_GET_NT4_CHANGELOG 0x0b -#define DRSUAPI_CRACKNAMES 0x0c -#define DRSUAPI_WRITE_SPN 0x0d -#define DRSUAPI_REMOVE_DS_SERVER 0x0e -#define DRSUAPI_REMOVE_DS_DOMAIN 0x0f -#define DRSUAPI_DOMAIN_CONTROLLER_INFO 0x10 -#define DRSUAPI_ADD_ENTRY 0x11 -#define DRSUAPI_EXECUTE_KCC 0x12 -#define DRSUAPI_GET_REPL_INFO 0x13 -#define DRSUAPI_ADD_SID_HISTORY 0x14 -#define DRSUAPI_GET_MEMBERSHIPS2 0x15 -#define DRSUAPI_REPLICA_VERIFY_OBJECTS 0x16 -#define DRSUAPI_GET_OBJECT_EXISTENCE 0x17 -#define DRSUAPI_QUERY_SITES_BY_COST 0x18 -#endif /* packet-dcerpc-drsuapi.h */ +/* INCLUDED FILE : ETH_HDR */ +int drsuapi_dissect_SupportedExtensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsBindInfo24(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsBindInfo28(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaSyncOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetNCChangesUsnTriple(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaUpdateRefsOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaAddOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaDeleteOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaModifyOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_NAME_STATUS_OK 0 +#define DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR 1 +#define DRSUAPI_DS_NAME_STATUS_NOT_FOUND 2 +#define DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE 3 +#define DRSUAPI_DS_NAME_STATUS_NO_MAPPING 4 +#define DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY 5 +#define DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING 6 +#define DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL 7 + +extern const value_string drsuapi_DsNameStatus_vals[]; +int drsuapi_dissect_DsNameStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_NAME_FLAG_NO_FLAGS 0 +#define DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY 0 +#define DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC 0 +#define DRSUAPI_DS_NAME_FLAG_GCVERIFY 0 +#define DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL 0 + +extern const value_string drsuapi_DsNameFlags_vals[]; +int drsuapi_dissect_DsNameFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_NAME_FORMAT_UKNOWN 0 +#define DRSUAPI_DS_NAME_FORMAT_FQDN_1779 1 +#define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT 2 +#define DRSUAPI_DS_NAME_FORMAT_DISPLAY 3 +#define DRSUAPI_DS_NAME_FORMAT_GUID 6 +#define DRSUAPI_DS_NAME_FORMAT_CANONICAL 7 +#define DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL 8 +#define DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX 9 +#define DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL 10 +#define DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY 11 +#define DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN 12 + +extern const value_string drsuapi_DsNameFormat_vals[]; +int drsuapi_dissect_DsNameFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsNameString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsNameRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsNameInfo1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsNameCtr1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_SPN_OPERATION_ADD 0 +#define DRSUAPI_DS_SPN_OPERATION_REPLACE 1 +#define DRSUAPI_DS_SPN_OPERATION_DELETE 2 + +extern const value_string drsuapi_DsSpnOperation_vals[]; +int drsuapi_dissect_DsSpnOperation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsWriteAccountSpnRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsWriteAccountSpnResult1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfoRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfo1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfoCtr1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfo2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfoCtr2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfo01(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsGetDCInfoCtr01(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +#define DRSUAPI_DC_INFO_CTR_1 1 +#define DRSUAPI_DC_INFO_CTR_2 2 +#define DRSUAPI_DC_INFO_CTR_01 -1 +extern const value_string drsuapi_DsGetDCInfoCtrLevels_vals[]; +int drsuapi_dissect_DsGetDCInfoCtrLevels(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_REPLICA_GET_INFO 1 +#define DRSUAPI_DS_REPLICA_GET_INFO2 2 + +extern const value_string drsuapi_DsReplicaGetInfoLevel_vals[]; +int drsuapi_dissect_DsReplicaGetInfoLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS 0 +#define DRSUAPI_DS_REPLICA_INFO_CURSORS 1 +#define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA 2 +#define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES 3 +#define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES 4 +#define DRSUAPI_DS_REPLICA_INFO_PENDING_OPS 5 +#define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA 6 +#define DRSUAPI_DS_REPLICA_INFO_CURSORS2 7 +#define DRSUAPI_DS_REPLICA_INFO_CURSORS3 8 +#define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 9 +#define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 10 +#define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02 -2 +#define DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04 -4 +#define DRSUAPI_DS_REPLICA_INFO_CURSURS05 -5 +#define DRSUAPI_DS_REPLICA_INFO_06 -6 + +extern const value_string drsuapi_DsReplicaInfoType_vals[]; +int drsuapi_dissect_DsReplicaInfoType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaGetInfoRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaGetInfoRequest2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaNeighbour(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaNeighbourCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursorCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaObjMetaData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaObjMetaDataCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaKccDsaFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaKccDsaFailuresCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); + +#define DRSUAPI_DS_REPLICA_OP_TYPE_SYNC 0 +#define DRSUAPI_DS_REPLICA_OP_TYPE_ADD 1 +#define DRSUAPI_DS_REPLICA_OP_TYPE_DELETE 2 +#define DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY 3 +#define DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS 4 + +extern const value_string drsuapi_DsReplicaOpType_vals[]; +int drsuapi_dissect_DsReplicaOpType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaOp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaOpCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaAttrValMetaData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaAttrValMetaDataCtr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursor2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursor2Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursor3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursor3Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaObjMetaData2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaObjMetaData2Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaAttrValMetaData2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaAttrValMetaData2Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplicaCoursor05Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplica06(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +int drsuapi_dissect_DsReplica06Ctr(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param); +/* END OF INCLUDED FILE : ETH_HDR */ + + + +#endif /* packet-dcerpc-drsuapi.h */ |