summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-03-12 09:02:01 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-03-12 09:02:01 +0000
commit0e3ff627013f2ddf1ec759a7ab1ad51fe1178968 (patch)
tree87da1672ae016927d3ec52af910842dcbd393b06
parentbbba7523e7cd905dbe07caadce6a468369aefd2a (diff)
downloadwireshark-0e3ff627013f2ddf1ec759a7ab1ad51fe1178968.tar.gz
initial DRSUAPI dissector
now that we can decrypt DCERPC the dissection is not complete since idl2eth can not yet handle all the weird extensions in the idl file yet. svn path=/trunk/; revision=13729
-rw-r--r--epan/dissectors/dcerpc/drsuapi/Makefile16
-rwxr-xr-xepan/dissectors/dcerpc/drsuapi/drsuapi.cnf3
-rw-r--r--epan/dissectors/dcerpc/drsuapi/drsuapi.idl805
-rwxr-xr-xepan/dissectors/dcerpc/drsuapi/template.c79
-rwxr-xr-xepan/dissectors/dcerpc/drsuapi/template.h34
-rw-r--r--epan/dissectors/dcerpc/idl2eth.c88
-rw-r--r--epan/dissectors/packet-dcerpc-drsuapi.c7964
-rw-r--r--epan/dissectors/packet-dcerpc-drsuapi.h170
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 */