aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-10-21 19:41:54 +0000
committerMichael Mann <mmann78@netscape.net>2013-10-21 19:41:54 +0000
commit87e55cb9e046e4d7749333c67862e5bf935ed6a1 (patch)
treee984e35b5eed1a6a0eaea7ea19189c1ad72c17e6 /epan/dissectors
parent15294a1261961d7ac2ad4316eb83b0e413effc47 (diff)
Sync with latest SAMBA PIDL source per http://www.wireshark.org/lists/wireshark-dev/201310/msg00217.html
Didn't integrate 0010-frsrpc-Regenerate-frsrpc-due-to-changes-in-the-pidl-.patch 0016-Regenerate-the-dnserver.patch due to compilation errors on Windows. svn path=/trunk/; revision=52744
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/Makefile.common1
-rw-r--r--epan/dissectors/packet-dcerpc-atsvc.c399
-rw-r--r--epan/dissectors/packet-dcerpc-dssetup.c308
-rw-r--r--epan/dissectors/packet-dcerpc-dssetup.h20
-rw-r--r--epan/dissectors/packet-dcerpc-efs.c215
-rw-r--r--epan/dissectors/packet-dcerpc-eventlog.c41
-rw-r--r--epan/dissectors/packet-dcerpc-initshutdown.c339
-rw-r--r--epan/dissectors/packet-dcerpc-initshutdown.h44
-rw-r--r--epan/dissectors/packet-dcerpc-lsa.c266
-rw-r--r--epan/dissectors/packet-dcerpc-misc.c625
-rw-r--r--epan/dissectors/packet-dcerpc-samr.c149
-rw-r--r--epan/dissectors/packet-dcerpc-winreg.c1665
-rw-r--r--epan/dissectors/packet-dcerpc-winreg.h31
-rw-r--r--epan/dissectors/packet-dcerpc-wzcsvc.c1
-rw-r--r--epan/dissectors/pidl/README127
-rw-r--r--epan/dissectors/pidl/dnsserver.cnf6
-rw-r--r--epan/dissectors/pidl/dssetup.idl35
-rw-r--r--epan/dissectors/pidl/frsrpc.cnf6
-rw-r--r--epan/dissectors/pidl/frsrpc.idl28
-rw-r--r--epan/dissectors/pidl/initshutdown.cnf1
-rw-r--r--epan/dissectors/pidl/initshutdown.idl71
-rw-r--r--epan/dissectors/pidl/lsa.cnf8
-rw-r--r--epan/dissectors/pidl/misc.cnf28
-rw-r--r--epan/dissectors/pidl/misc.idl6
-rw-r--r--epan/dissectors/pidl/samr.cnf4
-rw-r--r--epan/dissectors/pidl/winreg.cnf16
-rw-r--r--epan/dissectors/pidl/winreg.idl199
27 files changed, 3330 insertions, 1309 deletions
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 3005e79904..b8c809c73e 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -70,6 +70,7 @@ DIRTY_PIDL_DISSECTOR_SRC = \
packet-dcerpc-eventlog.c \
packet-dcerpc-lsa.c \
packet-dcerpc-mapi.c \
+ packet-dcerpc-misc.c \
packet-dcerpc-winreg.c
#
diff --git a/epan/dissectors/packet-dcerpc-atsvc.c b/epan/dissectors/packet-dcerpc-atsvc.c
index 2c1eebda33..44e1dd888a 100644
--- a/epan/dissectors/packet-dcerpc-atsvc.c
+++ b/epan/dissectors/packet-dcerpc-atsvc.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -40,72 +39,72 @@ static gint ett_atsvc_atsvc_enum_ctr = -1;
/* Header field declarations */
-static gint hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fourteenth = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY = -1;
-static gint hf_atsvc_atsvc_enum_ctr_entries_read = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyeighth = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Second = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Ninth = -1;
-static gint hf_atsvc_servername = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyninth = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Tenth = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_days_of_month = -1;
static gint hf_atsvc_atsvc_JobEnum_resume_handle = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eight = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Third = -1;
+static gint hf_atsvc_atsvc_JobInfo_days_of_week = -1;
static gint hf_atsvc_atsvc_DaysOfMonth_Twentyseventh = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fifteenth = -1;
-static gint hf_atsvc_atsvc_JobInfo_command = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Ninteenth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Seventh = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfourth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyth = -1;
static gint hf_atsvc_atsvc_DaysOfMonth_Seventeenth = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fifth = -1;
+static gint hf_atsvc_job_info = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thitteenth = -1;
+static gint hf_atsvc_atsvc_enum_ctr_entries_read = -1;
+static gint hf_atsvc_atsvc_enum_ctr_first_entry = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE = -1;
static gint hf_atsvc_opnum = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twelfth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Eighteenth = -1;
static gint hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY = -1;
-static gint hf_atsvc_atsvc_JobEnum_total_entries = -1;
-static gint hf_atsvc_atsvc_enum_ctr_first_entry = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_job_time = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Third = -1;
-static gint hf_atsvc_atsvc_JobEnum_preferred_max_len = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_days_of_month = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eighteenth = -1;
+static gint hf_atsvc_job_id = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Ninteenth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentysecond = -1;
static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentythird = -1;
-static gint hf_atsvc_atsvc_JobInfo_job_time = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Second = -1;
static gint hf_atsvc_status = -1;
-static gint hf_atsvc_atsvc_JobInfo_flags = -1;
-static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Sixth = -1;
-static gint hf_atsvc_job_id = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentysixth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fifth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Fourth = -1;
-static gint hf_atsvc_job_info = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Eleventh = -1;
+static gint hf_atsvc_atsvc_JobEnum_ctr = -1;
+static gint hf_atsvc_atsvc_JobInfo_command = -1;
static gint hf_atsvc_atsvc_DaysOfMonth_Sixteenth = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_command = -1;
static gint hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE = -1;
-static gint hf_atsvc_atsvc_JobEnum_ctr = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfifth = -1;
-static gint hf_atsvc_atsvc_JobInfo_days_of_month = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Twentysecond = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fourth = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_days_of_week = -1;
static gint hf_atsvc_atsvc_DaysOfMonth_First = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_command = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Thirtieth = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Eight = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_job_time = -1;
+static gint hf_atsvc_atsvc_JobEnum_total_entries = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyninth = -1;
+static gint hf_atsvc_atsvc_JobDel_max_job_id = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentythird = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fifteenth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyeighth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twelfth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY = -1;
+static gint hf_atsvc_atsvc_JobInfo_flags = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Seventh = -1;
static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfirst = -1;
-static gint hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR = -1;
-static gint hf_atsvc_atsvc_JobInfo_days_of_week = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Tenth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fourteenth = -1;
+static gint hf_atsvc_atsvc_JobEnum_preferred_max_len = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfourth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfifth = -1;
+static gint hf_atsvc_servername = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thirtieth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Sixth = -1;
static gint hf_atsvc_atsvc_JobDel_min_job_id = -1;
-static gint hf_atsvc_atsvc_JobEnumInfo_days_of_week = -1;
+static gint hf_atsvc_atsvc_JobInfo_job_time = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Ninth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eleventh = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentysixth = -1;
+static gint hf_atsvc_atsvc_JobInfo_days_of_month = -1;
static gint hf_atsvc_atsvc_JobEnumInfo_flags = -1;
-static gint hf_atsvc_atsvc_JobDel_max_job_id = -1;
-static gint hf_atsvc_atsvc_DaysOfMonth_Thitteenth = -1;
static gint proto_dcerpc_atsvc = -1;
/* Version information */
@@ -377,7 +376,7 @@ atsvc_dissect_bitmap_DaysOfMonth(tvbuff_t *tvb _U_, int offset _U_, packet_info
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_atsvc_atsvc_DaysOfMonth);
}
@@ -660,7 +659,7 @@ atsvc_dissect_bitmap_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo
guint8 flags;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_atsvc_atsvc_Flags);
}
@@ -737,7 +736,7 @@ atsvc_dissect_bitmap_DaysOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *
guint8 flags;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_atsvc_atsvc_DaysOfWeek);
}
@@ -816,7 +815,7 @@ atsvc_dissect_bitmap_DaysOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *
/* IDL: atsvc_DaysOfMonth days_of_month; */
/* IDL: atsvc_DaysOfWeek days_of_week; */
/* IDL: atsvc_Flags flags; */
-/* IDL: [charset(UTF16)] [unique(1)] uint16 *command; */
+/* IDL: [unique(1)] [charset(UTF16)] uint16 *command; */
/* IDL: } */
static int
@@ -875,14 +874,15 @@ atsvc_dissect_struct_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobInfo);
}
@@ -899,6 +899,11 @@ atsvc_dissect_struct_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -909,7 +914,7 @@ atsvc_dissect_struct_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
/* IDL: atsvc_DaysOfMonth days_of_month; */
/* IDL: atsvc_DaysOfWeek days_of_week; */
/* IDL: atsvc_Flags flags; */
-/* IDL: [charset(UTF16)] [unique(1)] uint16 *command; */
+/* IDL: [unique(1)] [charset(UTF16)] uint16 *command; */
/* IDL: } */
static int
@@ -976,14 +981,15 @@ atsvc_dissect_struct_JobEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobEnumInfo);
}
@@ -1002,13 +1008,18 @@ atsvc_dissect_struct_JobEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
/* IDL: struct { */
/* IDL: uint32 entries_read; */
-/* IDL: [size_is(entries_read)] [unique(1)] atsvc_JobEnumInfo *first_entry; */
+/* IDL: [unique(1)] [size_is(entries_read)] atsvc_JobEnumInfo *first_entry; */
/* IDL: } */
static int
@@ -1048,14 +1059,15 @@ atsvc_dissect_struct_enum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_atsvc_atsvc_enum_ctr);
}
@@ -1066,6 +1078,11 @@ atsvc_dissect_struct_enum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -1121,8 +1138,8 @@ atsvc_dissect_element_JobAdd_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_i
}
/* IDL: NTSTATUS atsvc_JobAdd( */
-/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
-/* IDL: [in] [ref] atsvc_JobInfo *job_info, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [ref] [in] atsvc_JobInfo *job_info, */
/* IDL: [out] [ref] uint32 *job_id */
/* IDL: ); */
@@ -1190,7 +1207,7 @@ atsvc_dissect_element_JobDel_max_job_id(tvbuff_t *tvb _U_, int offset _U_, packe
}
/* IDL: NTSTATUS atsvc_JobDel( */
-/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
/* IDL: [in] uint32 min_job_id, */
/* IDL: [in] uint32 max_job_id */
/* IDL: ); */
@@ -1298,11 +1315,11 @@ atsvc_dissect_element_JobEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_,
}
/* IDL: NTSTATUS atsvc_JobEnum( */
-/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
-/* IDL: [out] [in] [ref] atsvc_enum_ctr *ctr, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [out] [ref] [in] atsvc_enum_ctr *ctr, */
/* IDL: [in] uint32 preferred_max_len, */
/* IDL: [out] [ref] uint32 *total_entries, */
-/* IDL: [out] [in] [unique(1)] uint32 *resume_handle */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
/* IDL: ); */
static int
@@ -1381,7 +1398,7 @@ atsvc_dissect_element_JobGetInfo_job_info(tvbuff_t *tvb _U_, int offset _U_, pac
static int
atsvc_dissect_element_JobGetInfo_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobGetInfo_job_info__, NDR_POINTER_REF, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_job_info);
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobGetInfo_job_info__, NDR_POINTER_UNIQUE, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_job_info);
return offset;
}
@@ -1395,7 +1412,7 @@ atsvc_dissect_element_JobGetInfo_job_info__(tvbuff_t *tvb _U_, int offset _U_, p
}
/* IDL: NTSTATUS atsvc_JobGetInfo( */
-/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
/* IDL: [in] uint32 job_id, */
/* IDL: [out] [ref] atsvc_JobInfo **job_info */
/* IDL: ); */
@@ -1444,138 +1461,138 @@ static dcerpc_sub_dissector atsvc_dissectors[] = {
void proto_register_dcerpc_atsvc(void)
{
static hf_register_info hf[] = {
- { &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
- { "Job Noninteractive", "atsvc.Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_NONINTERACTIVE_tfs), ( 0x10 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
- { "Fourteenth", "atsvc.DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourteenth_tfs), ( 0x00002000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
- { "Job Run Periodically", "atsvc.Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUN_PERIODICALLY_tfs), ( 0x01 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_enum_ctr_entries_read,
- { "Entries Read", "atsvc.enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
- { "Twentyeighth", "atsvc.DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyeighth_tfs), ( 0x08000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
- { "Daysofweek Monday", "atsvc.DaysOfWeek.DAYSOFWEEK_MONDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs), ( 0x01 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
- { "Daysofweek Sunday", "atsvc.DaysOfWeek.DAYSOFWEEK_SUNDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs), ( 0x40 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Second,
- { "Second", "atsvc.DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Second_tfs), ( 0x00000002 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
- { "Twentyth", "atsvc.DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyth_tfs), ( 0x00080000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Ninth,
- { "Ninth", "atsvc.DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninth_tfs), ( 0x00000100 ), NULL, HFILL }},
- { &hf_atsvc_servername,
- { "Server", "atsvc.server", FT_STRING, BASE_NONE, NULL, 0, "Name of the server", HFILL }},
- { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
- { "Daysofweek Wednesday", "atsvc.DaysOfWeek.DAYSOFWEEK_WEDNESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs), ( 0x04 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
- { "Twentyninth", "atsvc.DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyninth_tfs), ( 0x10000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
- { "Daysofweek Tuesday", "atsvc.DaysOfWeek.DAYSOFWEEK_TUESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs), ( 0x02 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Tenth,
- { "Tenth", "atsvc.DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Tenth_tfs), ( 0x00000200 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnumInfo_days_of_month,
+ { "Days Of Month", "atsvc.atsvc_JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_atsvc_atsvc_JobEnum_resume_handle,
- { "Resume Handle", "atsvc.JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Resume Handle", "atsvc.atsvc_JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
+ { "Daysofweek Thursday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_THURSDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs), ( 0x08 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Eight,
+ { "Eight", "atsvc.atsvc_DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eight_tfs), ( 0x00000080 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Third,
+ { "Third", "atsvc.atsvc_DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Third_tfs), ( 0x00000004 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobInfo_days_of_week,
+ { "Days Of Week", "atsvc.atsvc_JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh,
- { "Twentyseventh", "atsvc.DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyseventh_tfs), ( 0x04000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
- { "Fifteenth", "atsvc.DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifteenth_tfs), ( 0x00004000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobInfo_command,
- { "Command", "atsvc.JobInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
- { "Ninteenth", "atsvc.DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninteenth_tfs), ( 0x00040000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Seventh,
- { "Seventh", "atsvc.DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventh_tfs), ( 0x00000040 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
- { "Twentyfourth", "atsvc.DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfourth_tfs), ( 0x00800000 ), NULL, HFILL }},
+ { "Twentyseventh", "atsvc.atsvc_DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyseventh_tfs), ( 0x04000000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
+ { "Twentyth", "atsvc.atsvc_DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyth_tfs), ( 0x00080000 ), NULL, HFILL }},
{ &hf_atsvc_atsvc_DaysOfMonth_Seventeenth,
- { "Seventeenth", "atsvc.DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventeenth_tfs), ( 0x00010000 ), NULL, HFILL }},
+ { "Seventeenth", "atsvc.atsvc_DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventeenth_tfs), ( 0x00010000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
+ { "Job Run Periodically", "atsvc.atsvc_Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUN_PERIODICALLY_tfs), ( 0x01 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Fifth,
+ { "Fifth", "atsvc.atsvc_DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifth_tfs), ( 0x00000010 ), NULL, HFILL }},
+ { &hf_atsvc_job_info,
+ { "JobInfo", "atcvs.job_info", FT_NONE, BASE_NONE, NULL, 0, "JobInfo structure", HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
+ { "Thitteenth", "atsvc.atsvc_DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thitteenth_tfs), ( 0x00001000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_enum_ctr_entries_read,
+ { "Entries Read", "atsvc.atsvc_enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_enum_ctr_first_entry,
+ { "First Entry", "atsvc.atsvc_enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
+ { "Job Exec Error", "atsvc.atsvc_Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_EXEC_ERROR_tfs), ( 0x02 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
+ { "Job Noninteractive", "atsvc.atsvc_Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_NONINTERACTIVE_tfs), ( 0x10 ), NULL, HFILL }},
{ &hf_atsvc_opnum,
{ "Operation", "atsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
- { "Twelfth", "atsvc.DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twelfth_tfs), ( 0x00000800 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
- { "Eighteenth", "atsvc.DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eighteenth_tfs), ( 0x00020000 ), NULL, HFILL }},
{ &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY,
- { "Job Runs Today", "atsvc.Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUNS_TODAY_tfs), ( 0x04 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnum_total_entries,
- { "Total Entries", "atsvc.JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_enum_ctr_first_entry,
- { "First Entry", "atsvc.enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnumInfo_job_time,
- { "Job Time", "atsvc.JobEnumInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
- { "Thirtyfirst", "atsvc.DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtyfirst_tfs), ( 0x40000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Third,
- { "Third", "atsvc.DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Third_tfs), ( 0x00000004 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnum_preferred_max_len,
- { "Preferred Max Len", "atsvc.JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnumInfo_days_of_month,
- { "Days Of Month", "atsvc.JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
- { "Daysofweek Thursday", "atsvc.DaysOfWeek.DAYSOFWEEK_THURSDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs), ( 0x08 ), NULL, HFILL }},
+ { "Job Runs Today", "atsvc.atsvc_Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUNS_TODAY_tfs), ( 0x04 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
+ { "Eighteenth", "atsvc.atsvc_DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eighteenth_tfs), ( 0x00020000 ), NULL, HFILL }},
+ { &hf_atsvc_job_id,
+ { "Job Id", "atsvc.job_id", FT_UINT32, BASE_DEC, NULL, 0, "Identifier of the scheduled job", HFILL }},
+ { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
+ { "Daysofweek Saturday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SATURDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs), ( 0x20 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
+ { "Ninteenth", "atsvc.atsvc_DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninteenth_tfs), ( 0x00040000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
+ { "Daysofweek Monday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_MONDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs), ( 0x01 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
+ { "Twentysecond", "atsvc.atsvc_DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysecond_tfs), ( 0x00200000 ), NULL, HFILL }},
{ &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY,
- { "Daysofweek Friday", "atsvc.DaysOfWeek.DAYSOFWEEK_FRIDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs), ( 0x10 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
- { "Twentythird", "atsvc.DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentythird_tfs), ( 0x00400000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobInfo_job_time,
- { "Job Time", "atsvc.JobInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Daysofweek Friday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_FRIDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs), ( 0x10 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Second,
+ { "Second", "atsvc.atsvc_DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Second_tfs), ( 0x00000002 ), NULL, HFILL }},
{ &hf_atsvc_status,
{ "NT Error", "atsvc.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_JobInfo_flags,
- { "Flags", "atsvc.JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
- { "Daysofweek Saturday", "atsvc.DaysOfWeek.DAYSOFWEEK_SATURDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs), ( 0x20 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Sixth,
- { "Sixth", "atsvc.DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixth_tfs), ( 0x00000020 ), NULL, HFILL }},
- { &hf_atsvc_job_id,
- { "Job Id", "atsvc.job_id", FT_UINT32, BASE_DEC, NULL, 0, "Identifier of the scheduled job", HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
- { "Twentysixth", "atsvc.DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysixth_tfs), ( 0x02000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Fifth,
- { "Fifth", "atsvc.DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifth_tfs), ( 0x00000010 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Fourth,
- { "Fourth", "atsvc.DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourth_tfs), ( 0x00000008 ), NULL, HFILL }},
- { &hf_atsvc_job_info,
- { "JobInfo", "atcvs.job_info", FT_NONE, BASE_NONE, NULL, 0, "JobInfo structure", HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
- { "Eleventh", "atsvc.DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eleventh_tfs), ( 0x00000400 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnum_ctr,
+ { "Ctr", "atsvc.atsvc_JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobInfo_command,
+ { "Command", "atsvc.atsvc_JobInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_atsvc_atsvc_DaysOfMonth_Sixteenth,
- { "Sixteenth", "atsvc.DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixteenth_tfs), ( 0x00008000 ), NULL, HFILL }},
+ { "Sixteenth", "atsvc.atsvc_DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixteenth_tfs), ( 0x00008000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnumInfo_command,
+ { "Command", "atsvc.atsvc_JobEnumInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE,
- { "Job Add Current Date", "atsvc.Flags.JOB_ADD_CURRENT_DATE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs), ( 0x08 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnum_ctr,
- { "Ctr", "atsvc.JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
- { "Twentyfifth", "atsvc.DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfifth_tfs), ( 0x01000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobInfo_days_of_month,
- { "Days Of Month", "atsvc.JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
- { "Twentysecond", "atsvc.DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysecond_tfs), ( 0x00200000 ), NULL, HFILL }},
+ { "Job Add Current Date", "atsvc.atsvc_Flags.JOB_ADD_CURRENT_DATE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs), ( 0x08 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
+ { "Thirtyfirst", "atsvc.atsvc_DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtyfirst_tfs), ( 0x40000000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Fourth,
+ { "Fourth", "atsvc.atsvc_DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourth_tfs), ( 0x00000008 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnumInfo_days_of_week,
+ { "Days Of Week", "atsvc.atsvc_JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_atsvc_atsvc_DaysOfMonth_First,
- { "First", "atsvc.DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_First_tfs), ( 0x00000001 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnumInfo_command,
- { "Command", "atsvc.JobEnumInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
- { "Thirtieth", "atsvc.DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtieth_tfs), ( 0x20000000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Eight,
- { "Eight", "atsvc.DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eight_tfs), ( 0x00000080 ), NULL, HFILL }},
+ { "First", "atsvc.atsvc_DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_First_tfs), ( 0x00000001 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnumInfo_job_time,
+ { "Job Time", "atsvc.atsvc_JobEnumInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnum_total_entries,
+ { "Total Entries", "atsvc.atsvc_JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
+ { "Twentyninth", "atsvc.atsvc_DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyninth_tfs), ( 0x10000000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobDel_max_job_id,
+ { "Max Job Id", "atsvc.atsvc_JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
+ { "Daysofweek Tuesday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_TUESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs), ( 0x02 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
+ { "Twentythird", "atsvc.atsvc_DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentythird_tfs), ( 0x00400000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
+ { "Fifteenth", "atsvc.atsvc_DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifteenth_tfs), ( 0x00004000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
+ { "Twentyeighth", "atsvc.atsvc_DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyeighth_tfs), ( 0x08000000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
+ { "Twelfth", "atsvc.atsvc_DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twelfth_tfs), ( 0x00000800 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
+ { "Daysofweek Wednesday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_WEDNESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs), ( 0x04 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobInfo_flags,
+ { "Flags", "atsvc.atsvc_JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Seventh,
+ { "Seventh", "atsvc.atsvc_DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventh_tfs), ( 0x00000040 ), NULL, HFILL }},
{ &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst,
- { "Twentyfirst", "atsvc.DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfirst_tfs), ( 0x00100000 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
- { "Job Exec Error", "atsvc.Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_EXEC_ERROR_tfs), ( 0x02 ), NULL, HFILL }},
- { &hf_atsvc_atsvc_JobInfo_days_of_week,
- { "Days Of Week", "atsvc.JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { "Twentyfirst", "atsvc.atsvc_DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfirst_tfs), ( 0x00100000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Tenth,
+ { "Tenth", "atsvc.atsvc_DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Tenth_tfs), ( 0x00000200 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
+ { "Fourteenth", "atsvc.atsvc_DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourteenth_tfs), ( 0x00002000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobEnum_preferred_max_len,
+ { "Preferred Max Len", "atsvc.atsvc_JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
+ { "Twentyfourth", "atsvc.atsvc_DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfourth_tfs), ( 0x00800000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
+ { "Twentyfifth", "atsvc.atsvc_DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfifth_tfs), ( 0x01000000 ), NULL, HFILL }},
+ { &hf_atsvc_servername,
+ { "Server", "atsvc.server", FT_STRING, BASE_NONE, NULL, 0, "Name of the server", HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
+ { "Thirtieth", "atsvc.atsvc_DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtieth_tfs), ( 0x20000000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
+ { "Daysofweek Sunday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SUNDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs), ( 0x40 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Sixth,
+ { "Sixth", "atsvc.atsvc_DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixth_tfs), ( 0x00000020 ), NULL, HFILL }},
{ &hf_atsvc_atsvc_JobDel_min_job_id,
- { "Min Job Id", "atsvc.JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_JobEnumInfo_days_of_week,
- { "Days Of Week", "atsvc.JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { "Min Job Id", "atsvc.atsvc_JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobInfo_job_time,
+ { "Job Time", "atsvc.atsvc_JobInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Ninth,
+ { "Ninth", "atsvc.atsvc_DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninth_tfs), ( 0x00000100 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
+ { "Eleventh", "atsvc.atsvc_DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eleventh_tfs), ( 0x00000400 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
+ { "Twentysixth", "atsvc.atsvc_DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysixth_tfs), ( 0x02000000 ), NULL, HFILL }},
+ { &hf_atsvc_atsvc_JobInfo_days_of_month,
+ { "Days Of Month", "atsvc.atsvc_JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_atsvc_atsvc_JobEnumInfo_flags,
- { "Flags", "atsvc.JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_JobDel_max_job_id,
- { "Max Job Id", "atsvc.JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
- { "Thitteenth", "atsvc.DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thitteenth_tfs), ( 0x00001000 ), NULL, HFILL }},
+ { "Flags", "atsvc.atsvc_JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
};
diff --git a/epan/dissectors/packet-dcerpc-dssetup.c b/epan/dissectors/packet-dcerpc-dssetup.c
index 456930fd2a..075ce72a7b 100644
--- a/epan/dissectors/packet-dcerpc-dssetup.c
+++ b/epan/dissectors/packet-dcerpc-dssetup.c
@@ -12,6 +12,12 @@
#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
#include <glib.h>
#include <string.h>
@@ -88,15 +94,15 @@ static const true_false_string dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_P
"DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT is SET",
"DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT is NOT SET",
};
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
const value_string dssetup_dssetup_DsUpgrade_vals[] = {
{ DS_ROLE_NOT_UPGRADING, "DS_ROLE_NOT_UPGRADING" },
{ DS_ROLE_UPGRADING, "DS_ROLE_UPGRADING" },
@@ -108,53 +114,62 @@ const value_string dssetup_dssetup_DsPrevious_vals[] = {
{ DS_ROLE_PREVIOUS_BACKUP, "DS_ROLE_PREVIOUS_BACKUP" },
{ 0, NULL }
};
-static int dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
+static int dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
const value_string dssetup_dssetup_DsRoleOp_vals[] = {
{ DS_ROLE_OP_IDLE, "DS_ROLE_OP_IDLE" },
{ DS_ROLE_OP_ACTIVE, "DS_ROLE_OP_ACTIVE" },
{ DS_ROLE_OP_NEEDS_REBOOT, "DS_ROLE_OP_NEEDS_REBOOT" },
{ 0, NULL }
};
-static int dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
+static int dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
const value_string dssetup_dssetup_DsRoleInfoLevel_vals[] = {
{ DS_ROLE_BASIC_INFORMATION, "DS_ROLE_BASIC_INFORMATION" },
{ DS_ROLE_UPGRADE_STATUS, "DS_ROLE_UPGRADE_STATUS" },
{ DS_ROLE_OP_STATUS, "DS_ROLE_OP_STATUS" },
{ 0, NULL }
};
-static int dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep);
-
-/* IDL: typedef enum { */
+static int dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
/* IDL: DS_ROLE_STANDALONE_WORKSTATION=0, */
/* IDL: DS_ROLE_MEMBER_WORKSTATION=1, */
/* IDL: DS_ROLE_STANDALONE_SERVER=2, */
/* IDL: DS_ROLE_MEMBER_SERVER=3, */
/* IDL: DS_ROLE_BACKUP_DC=4, */
/* IDL: DS_ROLE_PRIMARY_DC=5, */
-/* IDL: } dssetup_DsRole; */
+/* IDL: } */
int
-dssetup_dissect_enum_DsRole(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_enum_DsRole(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ guint1632 parameter=0;
+ if(param){
+ parameter=(guint1632)*param;
+ }
+ offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
return offset;
}
-/* IDL: typedef bitmap { */
+
+/* IDL: bitmap { */
/* IDL: DS_ROLE_PRIMARY_DS_RUNNING = 0x00000001 , */
/* IDL: DS_ROLE_PRIMARY_DS_MIXED_MODE = 0x00000002 , */
/* IDL: DS_ROLE_UPGRADE_IN_PROGRESS = 0x00000004 , */
/* IDL: DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT = 0x01000000 , */
-/* IDL: } dssetup_DsRoleFlags; */
+/* IDL: } */
int
-dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
@@ -162,8 +177,8 @@ dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb, int offset, packet_info *pinfo
guint32 flags;
ALIGN_TO_4_BYTES;
- if(parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_dssetup_dssetup_DsRoleFlags);
}
@@ -205,24 +220,25 @@ dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb, int offset, packet_info *pinfo
}
flags&=(~( 0x01000000 ));
- if(flags){
+ if (flags) {
proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
}
return offset;
}
-/* IDL: typedef struct { */
+
+/* IDL: struct { */
/* IDL: dssetup_DsRole role; */
/* IDL: dssetup_DsRoleFlags flags; */
-/* IDL: [unique(1)] uint16 *domain; */
-/* IDL: [unique(1)] uint16 *dns_domain; */
-/* IDL: [unique(1)] uint16 *forest; */
+/* IDL: [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL: [unique(1)] [charset(UTF16)] uint16 *dns_domain; */
+/* IDL: [unique(1)] [charset(UTF16)] uint16 *forest; */
/* IDL: GUID domain_guid; */
-/* IDL: } dssetup_DsRolePrimaryDomInfoBasic; */
+/* IDL: } */
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_enum_DsRole(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role, 0);
@@ -230,7 +246,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb, int offset
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_bitmap_DsRoleFlags(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags, 0);
@@ -238,7 +254,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb, int offse
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain);
@@ -246,7 +262,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb, int offs
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
char *data;
@@ -257,7 +273,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb, int off
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_, NDR_POINTER_UNIQUE, "Pointer to Dns Domain (uint16)",hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain);
@@ -265,7 +281,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb, int
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
char *data;
@@ -276,7 +292,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb, int
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_, NDR_POINTER_UNIQUE, "Pointer to Forest (uint16)",hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest);
@@ -284,7 +300,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb, int offs
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
char *data;
@@ -295,7 +311,7 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb, int off
}
static int
-dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid, NULL);
@@ -303,18 +319,19 @@ dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb, int
}
int
-dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
- if(parent_tree){
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRolePrimaryDomInfoBasic);
}
@@ -333,41 +350,63 @@ dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb, int offset, pack
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
-/* IDL: typedef enum { */
+
+/* IDL: enum { */
/* IDL: DS_ROLE_NOT_UPGRADING=0, */
/* IDL: DS_ROLE_UPGRADING=1, */
-/* IDL: } dssetup_DsUpgrade; */
+/* IDL: } */
int
-dssetup_dissect_enum_DsUpgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_enum_DsUpgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ guint32 parameter=0;
+ if(param){
+ parameter=(guint32)*param;
+ }
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
return offset;
}
-/* IDL: typedef enum { */
+
+/* IDL: enum { */
/* IDL: DS_ROLE_PREVIOUS_UNKNOWN=0, */
/* IDL: DS_ROLE_PREVIOUS_PRIMARY=1, */
/* IDL: DS_ROLE_PREVIOUS_BACKUP=2, */
-/* IDL: } dssetup_DsPrevious; */
+/* IDL: } */
int
-dssetup_dissect_enum_DsPrevious(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_enum_DsPrevious(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ guint1632 parameter=0;
+ if(param){
+ parameter=(guint1632)*param;
+ }
+ offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
return offset;
}
-/* IDL: typedef struct { */
+
+/* IDL: struct { */
/* IDL: dssetup_DsUpgrade upgrading; */
/* IDL: dssetup_DsPrevious previous_role; */
-/* IDL: } dssetup_DsRoleUpgradeStatus; */
+/* IDL: } */
static int
-dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_enum_DsUpgrade(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleUpgradeStatus_upgrading, 0);
@@ -375,7 +414,7 @@ dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb, int offset,
}
static int
-dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_enum_DsPrevious(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role, 0);
@@ -383,18 +422,19 @@ dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb, int off
}
int
-dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
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);
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRoleUpgradeStatus);
}
@@ -405,28 +445,42 @@ dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb, int offset, packet_inf
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
return offset;
}
-/* IDL: typedef enum { */
+
+/* IDL: enum { */
/* IDL: DS_ROLE_OP_IDLE=0, */
/* IDL: DS_ROLE_OP_ACTIVE=1, */
/* IDL: DS_ROLE_OP_NEEDS_REBOOT=2, */
-/* IDL: } dssetup_DsRoleOp; */
+/* IDL: } */
int
-dssetup_dissect_enum_DsRoleOp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_enum_DsRoleOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ guint1632 parameter=0;
+ if(param){
+ parameter=(guint1632)*param;
+ }
+ offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
return offset;
}
-/* IDL: typedef struct { */
+
+/* IDL: struct { */
/* IDL: dssetup_DsRoleOp status; */
-/* IDL: } dssetup_DsRoleOpStatus; */
+/* IDL: } */
static int
-dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_enum_DsRoleOp(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleOpStatus_status, 0);
@@ -434,18 +488,19 @@ dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb, int offset, packet_
}
int
-dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_2_BYTES;
+ ALIGN_TO_3_BYTES;
old_offset = offset;
- if(parent_tree){
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRoleOpStatus);
}
@@ -454,30 +509,44 @@ dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb, int offset, packet_info *pi
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_3_BYTES;
+ }
+
return offset;
}
-/* IDL: typedef enum { */
+
+/* IDL: enum { */
/* IDL: DS_ROLE_BASIC_INFORMATION=1, */
/* IDL: DS_ROLE_UPGRADE_STATUS=2, */
/* IDL: DS_ROLE_OP_STATUS=3, */
-/* IDL: } dssetup_DsRoleInfoLevel; */
+/* IDL: } */
int
-dssetup_dissect_enum_DsRoleInfoLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_enum_DsRoleInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ guint1632 parameter=0;
+ if(param){
+ parameter=(guint1632)*param;
+ }
+ offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
return offset;
}
-/* IDL: typedef [switch_type(dssetup_DsRoleInfoLevel)] union { */
+
+/* IDL: [switch_type(dssetup_DsRoleInfoLevel)] union { */
/* IDL: [case(DS_ROLE_BASIC_INFORMATION)] [case(DS_ROLE_BASIC_INFORMATION)] dssetup_DsRolePrimaryDomInfoBasic basic; */
/* IDL: [case(DS_ROLE_UPGRADE_STATUS)] [case(DS_ROLE_UPGRADE_STATUS)] dssetup_DsRoleUpgradeStatus upgrade; */
/* IDL: [case(DS_ROLE_OP_STATUS)] [case(DS_ROLE_OP_STATUS)] dssetup_DsRoleOpStatus opstatus; */
-/* IDL: } dssetup_DsRoleInfo; */
+/* IDL: } */
static int
-dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvb,offset,pinfo,tree,drep,hf_dssetup_dssetup_DsRoleInfo_basic,0);
@@ -485,7 +554,7 @@ dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb, int offset, packet_info
}
static int
-dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_struct_DsRoleUpgradeStatus(tvb,offset,pinfo,tree,drep,hf_dssetup_dssetup_DsRoleInfo_upgrade,0);
@@ -493,7 +562,7 @@ dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb, int offset, packet_inf
}
static int
-dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_struct_DsRoleOpStatus(tvb,offset,pinfo,tree,drep,hf_dssetup_dssetup_DsRoleInfo_opstatus,0);
@@ -501,22 +570,22 @@ dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb, int offset, packet_in
}
static int
-dssetup_dissect_DsRoleInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+dssetup_dissect_DsRoleInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
int old_offset;
- guint16 level;
-
- ALIGN_TO_4_BYTES;
+ guint1632 level;
old_offset = offset;
- if(parent_tree){
+ if (parent_tree) {
item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dssetup_DsRoleInfo");
tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRoleInfo);
}
- offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+ offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+ ALIGN_TO_5_BYTES;
+
switch(level) {
case DS_ROLE_BASIC_INFORMATION:
offset = dssetup_dissect_element_DsRoleInfo_basic(tvb, offset, pinfo, tree, drep);
@@ -532,10 +601,11 @@ dssetup_dissect_DsRoleInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
}
proto_item_set_len(item, offset-old_offset);
+
return offset;
}
static int
-dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_enum_DsRoleInfoLevel(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level, 0);
@@ -543,7 +613,7 @@ dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb, i
}
static int
-dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_, NDR_POINTER_UNIQUE, "Pointer to Info (dssetup_DsRoleInfo)",hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info);
@@ -551,7 +621,7 @@ dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb, in
}
static int
-dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
offset = dssetup_dissect_DsRoleInfo(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info, 0);
@@ -560,7 +630,7 @@ dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb, i
/* IDL: WERROR dssetup_DsRoleGetPrimaryDomainInformation( */
/* IDL: [in] dssetup_DsRoleInfoLevel level, */
-/* IDL: [unique(1)] [out] [switch_is(level)] dssetup_DsRoleInfo *info */
+/* IDL: [out] [unique(1)] [switch_is(level)] dssetup_DsRoleInfo *info */
/* IDL: ); */
static int
@@ -568,13 +638,14 @@ dssetup_dissect_DsRoleGetPrimaryDomainInformation_response(tvbuff_t *tvb _U_, in
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleGetPrimaryDomainInformation";
offset = dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -582,6 +653,7 @@ dssetup_dissect_DsRoleGetPrimaryDomainInformation_response(tvbuff_t *tvb _U_, in
static int
dssetup_dissect_DsRoleGetPrimaryDomainInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleGetPrimaryDomainInformation";
offset = dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
@@ -596,10 +668,11 @@ dssetup_dissect_DsRoleDnsNameToFlatName_response(tvbuff_t *tvb _U_, int offset _
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleDnsNameToFlatName";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -607,6 +680,7 @@ dssetup_dissect_DsRoleDnsNameToFlatName_response(tvbuff_t *tvb _U_, int offset _
static int
dssetup_dissect_DsRoleDnsNameToFlatName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleDnsNameToFlatName";
return offset;
}
@@ -619,10 +693,11 @@ dssetup_dissect_DsRoleDcAsDc_response(tvbuff_t *tvb _U_, int offset _U_, packet_
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleDcAsDc";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -630,6 +705,7 @@ dssetup_dissect_DsRoleDcAsDc_response(tvbuff_t *tvb _U_, int offset _U_, packet_
static int
dssetup_dissect_DsRoleDcAsDc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleDcAsDc";
return offset;
}
@@ -642,10 +718,11 @@ dssetup_dissect_DsRoleDcAsReplica_response(tvbuff_t *tvb _U_, int offset _U_, pa
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleDcAsReplica";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -653,6 +730,7 @@ dssetup_dissect_DsRoleDcAsReplica_response(tvbuff_t *tvb _U_, int offset _U_, pa
static int
dssetup_dissect_DsRoleDcAsReplica_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleDcAsReplica";
return offset;
}
@@ -665,10 +743,11 @@ dssetup_dissect_DsRoleDemoteDc_response(tvbuff_t *tvb _U_, int offset _U_, packe
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleDemoteDc";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -676,6 +755,7 @@ dssetup_dissect_DsRoleDemoteDc_response(tvbuff_t *tvb _U_, int offset _U_, packe
static int
dssetup_dissect_DsRoleDemoteDc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleDemoteDc";
return offset;
}
@@ -688,10 +768,11 @@ dssetup_dissect_DsRoleGetDcOperationProgress_response(tvbuff_t *tvb _U_, int off
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleGetDcOperationProgress";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -699,6 +780,7 @@ dssetup_dissect_DsRoleGetDcOperationProgress_response(tvbuff_t *tvb _U_, int off
static int
dssetup_dissect_DsRoleGetDcOperationProgress_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleGetDcOperationProgress";
return offset;
}
@@ -711,10 +793,11 @@ dssetup_dissect_DsRoleGetDcOperationResults_response(tvbuff_t *tvb _U_, int offs
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleGetDcOperationResults";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -722,6 +805,7 @@ dssetup_dissect_DsRoleGetDcOperationResults_response(tvbuff_t *tvb _U_, int offs
static int
dssetup_dissect_DsRoleGetDcOperationResults_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleGetDcOperationResults";
return offset;
}
@@ -734,10 +818,11 @@ dssetup_dissect_DsRoleCancel_response(tvbuff_t *tvb _U_, int offset _U_, packet_
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleCancel";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -745,6 +830,7 @@ dssetup_dissect_DsRoleCancel_response(tvbuff_t *tvb _U_, int offset _U_, packet_
static int
dssetup_dissect_DsRoleCancel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleCancel";
return offset;
}
@@ -757,10 +843,11 @@ dssetup_dissect_DsRoleServerSaveStateForUpgrade_response(tvbuff_t *tvb _U_, int
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleServerSaveStateForUpgrade";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -768,6 +855,7 @@ dssetup_dissect_DsRoleServerSaveStateForUpgrade_response(tvbuff_t *tvb _U_, int
static int
dssetup_dissect_DsRoleServerSaveStateForUpgrade_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleServerSaveStateForUpgrade";
return offset;
}
@@ -780,10 +868,11 @@ dssetup_dissect_DsRoleUpgradeDownlevelServer_response(tvbuff_t *tvb _U_, int off
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleUpgradeDownlevelServer";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -791,6 +880,7 @@ dssetup_dissect_DsRoleUpgradeDownlevelServer_response(tvbuff_t *tvb _U_, int off
static int
dssetup_dissect_DsRoleUpgradeDownlevelServer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleUpgradeDownlevelServer";
return offset;
}
@@ -803,10 +893,11 @@ dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_response(tvbuff_t *tvb _U_, in
{
guint32 status;
+ pinfo->dcerpc_procedure_name="DsRoleAbortDownlevelServerUpgrade";
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
if (status != 0)
- col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, DOS_errors, "Unknown DOS error 0x%08x"));
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
return offset;
}
@@ -814,6 +905,7 @@ dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_response(tvbuff_t *tvb _U_, in
static int
dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ pinfo->dcerpc_procedure_name="DsRoleAbortDownlevelServerUpgrade";
return offset;
}
@@ -848,19 +940,19 @@ void proto_register_dcerpc_dssetup(void)
{
static hf_register_info hf[] = {
{ &hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level,
- { "Level", "dssetup.dssetup_DsRoleGetPrimaryDomainInformation.level", FT_UINT16, BASE_DEC, VALS(dssetup_dssetup_DsRoleInfoLevel_vals), 0, NULL, HFILL }},
+ { "Level", "dssetup.dssetup_DsRoleGetPrimaryDomainInformation.level", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsRoleInfoLevel_vals), 0, NULL, HFILL }},
{ &hf_dssetup_opnum,
{ "Operation", "dssetup.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags,
{ "Flags", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role,
- { "Previous Role", "dssetup.dssetup_DsRoleUpgradeStatus.previous_role", FT_UINT16, BASE_DEC, VALS(dssetup_dssetup_DsPrevious_vals), 0, NULL, HFILL }},
+ { "Previous Role", "dssetup.dssetup_DsRoleUpgradeStatus.previous_role", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsPrevious_vals), 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleInfo_opstatus,
{ "Opstatus", "dssetup.dssetup_DsRoleInfo.opstatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid,
{ "Domain Guid", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleOpStatus_status,
- { "Status", "dssetup.dssetup_DsRoleOpStatus.status", FT_UINT16, BASE_DEC, VALS(dssetup_dssetup_DsRoleOp_vals), 0, NULL, HFILL }},
+ { "Status", "dssetup.dssetup_DsRoleOpStatus.status", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsRoleOp_vals), 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleInfo_upgrade,
{ "Upgrade", "dssetup.dssetup_DsRoleInfo.upgrade", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info,
@@ -872,7 +964,7 @@ void proto_register_dcerpc_dssetup(void)
{ &hf_dssetup_dssetup_DsRoleInfo_basic,
{ "Basic", "dssetup.dssetup_DsRoleInfo.basic", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role,
- { "Role", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.role", FT_UINT16, BASE_DEC, VALS(dssetup_dssetup_DsRole_vals), 0, NULL, HFILL }},
+ { "Role", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.role", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsRole_vals), 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING,
{ "Ds Role Primary Ds Running", "dssetup.dssetup_DsRoleFlags.DS_ROLE_PRIMARY_DS_RUNNING", FT_BOOLEAN, 32, TFS(&dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING_tfs), ( 0x00000001 ), NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain,
@@ -882,7 +974,7 @@ void proto_register_dcerpc_dssetup(void)
{ &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain,
{ "Domain", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_dssetup_werror,
- { "Windows Error", "dssetup.werror", FT_UINT32, BASE_HEX, VALS(DOS_errors), 0, NULL, HFILL }},
+ { "Windows Error", "dssetup.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE,
{ "Ds Role Primary Ds Mixed Mode", "dssetup.dssetup_DsRoleFlags.DS_ROLE_PRIMARY_DS_MIXED_MODE", FT_BOOLEAN, 32, TFS(&dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE_tfs), ( 0x00000002 ), NULL, HFILL }},
{ &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest,
diff --git a/epan/dissectors/packet-dcerpc-dssetup.h b/epan/dissectors/packet-dcerpc-dssetup.h
index 5a0e7c1754..f815890fde 100644
--- a/epan/dissectors/packet-dcerpc-dssetup.h
+++ b/epan/dissectors/packet-dcerpc-dssetup.h
@@ -13,6 +13,8 @@
*/
+#include "packet-dcerpc-misc.h"
+
#ifndef __PACKET_DCERPC_DSSETUP_H
#define __PACKET_DCERPC_DSSETUP_H
@@ -23,28 +25,28 @@
#define DS_ROLE_BACKUP_DC (4)
#define DS_ROLE_PRIMARY_DC (5)
extern const value_string dssetup_dssetup_DsRole_vals[];
-int dssetup_dissect_enum_DsRole(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
-int dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
-int dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_);
+int dssetup_dissect_enum_DsRole(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#define DS_ROLE_NOT_UPGRADING (0)
#define DS_ROLE_UPGRADING (1)
extern const value_string dssetup_dssetup_DsUpgrade_vals[];
-int dssetup_dissect_enum_DsUpgrade(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
+int dssetup_dissect_enum_DsUpgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
#define DS_ROLE_PREVIOUS_UNKNOWN (0)
#define DS_ROLE_PREVIOUS_PRIMARY (1)
#define DS_ROLE_PREVIOUS_BACKUP (2)
extern const value_string dssetup_dssetup_DsPrevious_vals[];
-int dssetup_dissect_enum_DsPrevious(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
-int dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_);
+int dssetup_dissect_enum_DsPrevious(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#define DS_ROLE_OP_IDLE (0)
#define DS_ROLE_OP_ACTIVE (1)
#define DS_ROLE_OP_NEEDS_REBOOT (2)
extern const value_string dssetup_dssetup_DsRoleOp_vals[];
-int dssetup_dissect_enum_DsRoleOp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
-int dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_);
+int dssetup_dissect_enum_DsRoleOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#define DS_ROLE_BASIC_INFORMATION (1)
#define DS_ROLE_UPGRADE_STATUS (2)
#define DS_ROLE_OP_STATUS (3)
extern const value_string dssetup_dssetup_DsRoleInfoLevel_vals[];
-int dssetup_dissect_enum_DsRoleInfoLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
+int dssetup_dissect_enum_DsRoleInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
#endif /* __PACKET_DCERPC_DSSETUP_H */
diff --git a/epan/dissectors/packet-dcerpc-efs.c b/epan/dissectors/packet-dcerpc-efs.c
index c48f667c96..f7992e1359 100644
--- a/epan/dissectors/packet-dcerpc-efs.c
+++ b/epan/dissectors/packet-dcerpc-efs.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -39,38 +38,38 @@ static gint ett_efs_ENCRYPTION_CERTIFICATE = -1;
/* Header field declarations */
-static gint hf_efs_EfsRpcCloseRaw_pvContext = -1;
-static gint hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate = -1;
+static gint hf_efs_EfsRpcQueryUsersOnFile_pUsers = -1;
+static gint hf_efs_EfsRpcDecryptFileSrv_FileName = -1;
+static gint hf_efs_EfsRpcEncryptFileSrv_Filename = -1;
static gint hf_efs_EfsRpcOpenFileRaw_pvContext = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_TotalLength = -1;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers = -1;
+static gint hf_efs_EfsRpcWriteFileRaw_pvContext = -1;
+static gint hf_efs_EFS_HASH_BLOB_pbData = -1;
+static gint hf_efs_EfsRpcAddUsersToFile_FileName = -1;
static gint hf_efs_EfsRpcReadFileRaw_pvContext = -1;
+static gint hf_efs_werror = -1;
+static gint hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate = -1;
static gint hf_efs_EfsRpcQueryRecoveryAgents_FileName = -1;
-static gint hf_efs_EfsRpcQueryUsersOnFile_FileName = -1;
static gint hf_efs_EfsRpcOpenFileRaw_FileName = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob = -1;
static gint hf_efs_opnum = -1;
-static gint hf_efs_EFS_HASH_BLOB_pbData = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation = -1;
-static gint hf_efs_EfsRpcOpenFileRaw_Flags = -1;
-static gint hf_efs_EFS_CERTIFICATE_BLOB_pbData = -1;
static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash = -1;
-static gint hf_efs_EfsRpcEncryptFileSrv_Filename = -1;
-static gint hf_efs_EfsRpcRemoveUsersFromFile_FileName = -1;
-static gint hf_efs_EfsRpcQueryUsersOnFile_pUsers = -1;
-static gint hf_efs_EfsRpcDecryptFileSrv_FileName = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_TotalLength = -1;
-static gint hf_efs_EfsRpcAddUsersToFile_FileName = -1;
-static gint hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents = -1;
+static gint hf_efs_EfsRpcDecryptFileSrv_Reserved = -1;
static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength = -1;
-static gint hf_efs_werror = -1;
-static gint hf_efs_EFS_HASH_BLOB_cbData = -1;
-static gint hf_efs_EfsRpcWriteFileRaw_pvContext = -1;
-static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid = -1;
static gint hf_efs_ENCRYPTION_CERTIFICATE_pUserSid = -1;
-static gint hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType = -1;
-static gint hf_efs_EfsRpcDecryptFileSrv_Reserved = -1;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_pbData = -1;
+static gint hf_efs_EFS_HASH_BLOB_cbData = -1;
+static gint hf_efs_EfsRpcCloseRaw_pvContext = -1;
static gint hf_efs_EFS_CERTIFICATE_BLOB_cbData = -1;
+static gint hf_efs_EfsRpcQueryUsersOnFile_FileName = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength = -1;
+static gint hf_efs_EfsRpcOpenFileRaw_Flags = -1;
+static gint hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation = -1;
+static gint hf_efs_EfsRpcRemoveUsersFromFile_FileName = -1;
static gint proto_dcerpc_efs = -1;
/* Version information */
@@ -147,7 +146,7 @@ efs_dissect_struct_dom_sid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_
/* IDL: struct { */
/* IDL: uint32 cbData; */
-/* IDL: [size_is(cbData)] [unique(1)] uint8 *pbData; */
+/* IDL: [unique(1)] [size_is(cbData)] uint8 *pbData; */
/* IDL: } */
static int
@@ -187,14 +186,15 @@ efs_dissect_struct_EFS_HASH_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_efs_EFS_HASH_BLOB);
}
@@ -205,6 +205,11 @@ efs_dissect_struct_EFS_HASH_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -213,7 +218,7 @@ efs_dissect_struct_EFS_HASH_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info
/* IDL: uint32 cbTotalLength; */
/* IDL: [unique(1)] dom_sid *pUserSid; */
/* IDL: [unique(1)] EFS_HASH_BLOB *pHash; */
-/* IDL: [charset(UTF16)] [unique(1)] uint16 *lpDisplayInformation; */
+/* IDL: [unique(1)] [charset(UTF16)] uint16 *lpDisplayInformation; */
/* IDL: } */
static int
@@ -280,14 +285,15 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(tvbuff_t *tvb _U_, int offset _U_
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_efs_ENCRYPTION_CERTIFICATE_HASH);
}
@@ -302,13 +308,18 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(tvbuff_t *tvb _U_, int offset _U_
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
/* IDL: struct { */
/* IDL: uint32 nCert_Hash; */
-/* IDL: [size_is(nCert_Hash)] [unique(1)] ENCRYPTION_CERTIFICATE_HASH *pUsers[*]; */
+/* IDL: [unique(1)] [size_is(nCert_Hash)] ENCRYPTION_CERTIFICATE_HASH *pUsers[*]; */
/* IDL: } */
static int
@@ -348,14 +359,15 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvbuff_t *tvb _U_, int offse
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST);
}
@@ -366,6 +378,11 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvbuff_t *tvb _U_, int offse
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -373,7 +390,7 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvbuff_t *tvb _U_, int offse
/* IDL: struct { */
/* IDL: uint32 dwCertEncodingType; */
/* IDL: uint32 cbData; */
-/* IDL: [size_is(cbData)] [unique(1)] uint8 *pbData; */
+/* IDL: [unique(1)] [size_is(cbData)] uint8 *pbData; */
/* IDL: } */
static int
@@ -421,14 +438,15 @@ efs_dissect_struct_EFS_CERTIFICATE_BLOB(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_efs_EFS_CERTIFICATE_BLOB);
}
@@ -441,6 +459,11 @@ efs_dissect_struct_EFS_CERTIFICATE_BLOB(tvbuff_t *tvb _U_, int offset _U_, packe
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -496,14 +519,15 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE(tvbuff_t *tvb _U_, int offset _U_, pac
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_efs_ENCRYPTION_CERTIFICATE);
}
@@ -516,6 +540,11 @@ efs_dissect_struct_ENCRYPTION_CERTIFICATE(tvbuff_t *tvb _U_, int offset _U_, pac
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -556,7 +585,7 @@ efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvbuff_t *tvb _U_, int offset _U_, p
/* IDL: WERROR EfsRpcOpenFileRaw( */
/* IDL: [out] [ref] policy_handle *pvContext, */
-/* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
/* IDL: [in] uint32 Flags */
/* IDL: ); */
@@ -725,7 +754,7 @@ efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvbuff_t *tvb _U_, int offset
}
/* IDL: WERROR EfsRpcEncryptFileSrv( */
-/* IDL: [charset(UTF16)] [in] uint16 Filename[*] */
+/* IDL: [in] [charset(UTF16)] uint16 Filename[*] */
/* IDL: ); */
static int
@@ -771,7 +800,7 @@ efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvbuff_t *tvb _U_, int offset
}
/* IDL: WERROR EfsRpcDecryptFileSrv( */
-/* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
/* IDL: [in] uint32 Reserved */
/* IDL: ); */
@@ -822,7 +851,7 @@ efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvbuff_t *tvb _U_, int offset
static int
efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__, NDR_POINTER_REF, "Pointer to Pusers (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryUsersOnFile_pUsers);
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__, NDR_POINTER_UNIQUE, "Pointer to Pusers (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryUsersOnFile_pUsers);
return offset;
}
@@ -836,7 +865,7 @@ efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__(tvbuff_t *tvb _U_, int offse
}
/* IDL: WERROR EfsRpcQueryUsersOnFile( */
-/* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
/* IDL: [out] [unique(1)] [ref] ENCRYPTION_CERTIFICATE_HASH_LIST **pUsers */
/* IDL: ); */
@@ -888,7 +917,7 @@ efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvbuff_t *tvb _U_,
static int
efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__, NDR_POINTER_REF, "Pointer to Precoveryagents (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents);
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__, NDR_POINTER_UNIQUE, "Pointer to Precoveryagents (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents);
return offset;
}
@@ -902,7 +931,7 @@ efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__(tvbuff_t *tvb _U
}
/* IDL: WERROR EfsRpcQueryRecoveryAgents( */
-/* IDL: [charset(UTF16)] [in] uint16 FileName[*], */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
/* IDL: [out] [unique(1)] [ref] ENCRYPTION_CERTIFICATE_HASH_LIST **pRecoveryAgents */
/* IDL: ); */
@@ -944,7 +973,7 @@ efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvbuff_t *tvb _U_, int of
}
/* IDL: WERROR EfsRpcRemoveUsersFromFile( */
-/* IDL: [charset(UTF16)] [in] uint16 FileName[*] */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*] */
/* IDL: ); */
static int
@@ -982,7 +1011,7 @@ efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvbuff_t *tvb _U_, int offset
}
/* IDL: WERROR EfsRpcAddUsersToFile( */
-/* IDL: [charset(UTF16)] [in] uint16 FileName[*] */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*] */
/* IDL: ); */
static int
@@ -1162,70 +1191,70 @@ static dcerpc_sub_dissector efs_dissectors[] = {
void proto_register_dcerpc_efs(void)
{
static hf_register_info hf[] = {
- { &hf_efs_EfsRpcCloseRaw_pvContext,
- { "Pvcontext", "efs.EfsRpcCloseRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate,
- { "Pencryptioncertificate", "efs.EfsRpcSetFileEncryptionKey.pEncryptionCertificate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcQueryUsersOnFile_pUsers,
+ { "Pusers", "efs.EfsRpcQueryUsersOnFile.pUsers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcDecryptFileSrv_FileName,
+ { "Filename", "efs.EfsRpcDecryptFileSrv.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcEncryptFileSrv_Filename,
+ { "Filename", "efs.EfsRpcEncryptFileSrv.Filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_EfsRpcOpenFileRaw_pvContext,
{ "Pvcontext", "efs.EfsRpcOpenFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid,
- { "Pusersid", "efs.ENCRYPTION_CERTIFICATE_HASH.pUserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_ENCRYPTION_CERTIFICATE_TotalLength,
+ { "Totallength", "efs.ENCRYPTION_CERTIFICATE.TotalLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType,
+ { "Dwcertencodingtype", "efs.EFS_CERTIFICATE_BLOB.dwCertEncodingType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob,
+ { "Pcertblob", "efs.ENCRYPTION_CERTIFICATE.pCertBlob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers,
+ { "Pusers", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.pUsers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcWriteFileRaw_pvContext,
+ { "Pvcontext", "efs.EfsRpcWriteFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EFS_HASH_BLOB_pbData,
+ { "Pbdata", "efs.EFS_HASH_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcAddUsersToFile_FileName,
+ { "Filename", "efs.EfsRpcAddUsersToFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_EfsRpcReadFileRaw_pvContext,
{ "Pvcontext", "efs.EfsRpcReadFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_werror,
+ { "Windows Error", "efs.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate,
+ { "Pencryptioncertificate", "efs.EfsRpcSetFileEncryptionKey.pEncryptionCertificate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_EfsRpcQueryRecoveryAgents_FileName,
{ "Filename", "efs.EfsRpcQueryRecoveryAgents.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcQueryUsersOnFile_FileName,
- { "Filename", "efs.EfsRpcQueryUsersOnFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_EfsRpcOpenFileRaw_FileName,
{ "Filename", "efs.EfsRpcOpenFileRaw.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob,
- { "Pcertblob", "efs.ENCRYPTION_CERTIFICATE.pCertBlob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_opnum,
{ "Operation", "efs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_EFS_HASH_BLOB_pbData,
- { "Pbdata", "efs.EFS_HASH_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation,
- { "Lpdisplayinformation", "efs.ENCRYPTION_CERTIFICATE_HASH.lpDisplayInformation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcOpenFileRaw_Flags,
- { "Flags", "efs.EfsRpcOpenFileRaw.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_EFS_CERTIFICATE_BLOB_pbData,
- { "Pbdata", "efs.EFS_CERTIFICATE_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash,
{ "Ncert Hash", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.nCert_Hash", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcEncryptFileSrv_Filename,
- { "Filename", "efs.EfsRpcEncryptFileSrv.Filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcRemoveUsersFromFile_FileName,
- { "Filename", "efs.EfsRpcRemoveUsersFromFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcQueryUsersOnFile_pUsers,
- { "Pusers", "efs.EfsRpcQueryUsersOnFile.pUsers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcDecryptFileSrv_FileName,
- { "Filename", "efs.EfsRpcDecryptFileSrv.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_ENCRYPTION_CERTIFICATE_TotalLength,
- { "Totallength", "efs.ENCRYPTION_CERTIFICATE.TotalLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcAddUsersToFile_FileName,
- { "Filename", "efs.EfsRpcAddUsersToFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents,
- { "Precoveryagents", "efs.EfsRpcQueryRecoveryAgents.pRecoveryAgents", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcDecryptFileSrv_Reserved,
+ { "Reserved", "efs.EfsRpcDecryptFileSrv.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash,
{ "Phash", "efs.ENCRYPTION_CERTIFICATE_HASH.pHash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength,
- { "Cbtotallength", "efs.ENCRYPTION_CERTIFICATE_HASH.cbTotalLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_werror,
- { "Windows Error", "efs.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
- { &hf_efs_EFS_HASH_BLOB_cbData,
- { "Cbdata", "efs.EFS_HASH_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcWriteFileRaw_pvContext,
- { "Pvcontext", "efs.EfsRpcWriteFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers,
- { "Pusers", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.pUsers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid,
+ { "Pusersid", "efs.ENCRYPTION_CERTIFICATE_HASH.pUserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_ENCRYPTION_CERTIFICATE_pUserSid,
{ "Pusersid", "efs.ENCRYPTION_CERTIFICATE.pUserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType,
- { "Dwcertencodingtype", "efs.EFS_CERTIFICATE_BLOB.dwCertEncodingType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_efs_EfsRpcDecryptFileSrv_Reserved,
- { "Reserved", "efs.EfsRpcDecryptFileSrv.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EFS_CERTIFICATE_BLOB_pbData,
+ { "Pbdata", "efs.EFS_CERTIFICATE_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EFS_HASH_BLOB_cbData,
+ { "Cbdata", "efs.EFS_HASH_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcCloseRaw_pvContext,
+ { "Pvcontext", "efs.EfsRpcCloseRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_efs_EFS_CERTIFICATE_BLOB_cbData,
{ "Cbdata", "efs.EFS_CERTIFICATE_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcQueryUsersOnFile_FileName,
+ { "Filename", "efs.EfsRpcQueryUsersOnFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength,
+ { "Cbtotallength", "efs.ENCRYPTION_CERTIFICATE_HASH.cbTotalLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcOpenFileRaw_Flags,
+ { "Flags", "efs.EfsRpcOpenFileRaw.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents,
+ { "Precoveryagents", "efs.EfsRpcQueryRecoveryAgents.pRecoveryAgents", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation,
+ { "Lpdisplayinformation", "efs.ENCRYPTION_CERTIFICATE_HASH.lpDisplayInformation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_efs_EfsRpcRemoveUsersFromFile_FileName,
+ { "Filename", "efs.EfsRpcRemoveUsersFromFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
};
diff --git a/epan/dissectors/packet-dcerpc-eventlog.c b/epan/dissectors/packet-dcerpc-eventlog.c
index 9cd5bf40e7..5adbd00c44 100644
--- a/epan/dissectors/packet-dcerpc-eventlog.c
+++ b/epan/dissectors/packet-dcerpc-eventlog.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -408,7 +407,7 @@ eventlog_dissect_element_Record_strings(tvbuff_t *tvb, int offset, packet_info *
int len;
len=eventlog_get_unicode_string_length(tvb, string_offset);
str=tvb_get_faked_unicode(wmem_packet_scope(), tvb, string_offset, len, TRUE);
- proto_tree_add_string_format_value(tree, hf_eventlog_Record_string, tvb, string_offset, len*2, str, "%s", str);
+ proto_tree_add_string_format(tree, hf_eventlog_Record_string, tvb, string_offset, len*2, str, "string: %s", str);
string_offset+=len*2;
num_of_strings--;
@@ -434,7 +433,7 @@ eventlog_dissect_bitmap_eventlogReadFlags(tvbuff_t *tvb _U_, int offset _U_, pac
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_eventlog_eventlogReadFlags);
}
@@ -503,7 +502,7 @@ eventlog_dissect_bitmap_eventlogEventTypes(tvbuff_t *tvb _U_, int offset _U_, pa
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_eventlog_eventlogEventTypes);
}
@@ -595,6 +594,7 @@ eventlog_dissect_struct_OpenUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet_i
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_2_BYTES;
@@ -602,7 +602,7 @@ eventlog_dissect_struct_OpenUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet_i
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_eventlog_eventlog_OpenUnknown0);
}
@@ -613,6 +613,11 @@ eventlog_dissect_struct_OpenUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet_i
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_2_BYTES;
+ }
+
return offset;
}
@@ -739,6 +744,7 @@ eventlog_dissect_element_Record_data_offset(tvbuff_t *tvb _U_, int offset _U_, p
static int
eventlog_dissect_element_Record_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_strings , 0);
return offset;
}
@@ -746,6 +752,7 @@ eventlog_dissect_element_Record_strings_(tvbuff_t *tvb _U_, int offset _U_, pack
static int
eventlog_dissect_element_Record_raw_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_raw_data , 0);
return offset;
}
@@ -755,6 +762,7 @@ eventlog_dissect_struct_Record(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -762,7 +770,7 @@ eventlog_dissect_struct_Record(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_eventlog_eventlog_Record);
}
@@ -809,6 +817,11 @@ eventlog_dissect_struct_Record(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
return offset;
}
@@ -839,6 +852,7 @@ eventlog_dissect_struct_ChangeUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -846,7 +860,7 @@ eventlog_dissect_struct_ChangeUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_eventlog_eventlog_ChangeUnknown0);
}
@@ -857,6 +871,11 @@ eventlog_dissect_struct_ChangeUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
return offset;
}
@@ -2302,7 +2321,7 @@ void proto_register_dcerpc_eventlog(void)
{ &hf_eventlog_eventlog_OpenEventLogW_unknown0,
{ "Unknown0", "eventlog.eventlog_OpenEventLogW.unknown0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_Record_computer_name,
- { "Computer Name", "eventlog.eventlog_Record.computer_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { "Computer Name", "eventlog.eventlog_Record.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_RegisterEventSourceW_handle,
{ "Handle", "eventlog.eventlog_RegisterEventSourceW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_GetNumRecords_handle,
@@ -2348,7 +2367,7 @@ void proto_register_dcerpc_eventlog(void)
{ &hf_eventlog_eventlog_BackupEventLogW_handle,
{ "Handle", "eventlog.eventlog_BackupEventLogW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_Record_raw_data,
- { "Raw Data", "eventlog.eventlog_Record.raw_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { "Raw Data", "eventlog.eventlog_Record.raw_data", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_RegisterEventSourceW_unknown0,
{ "Unknown0", "eventlog.eventlog_RegisterEventSourceW.unknown0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_CloseEventLog_handle,
@@ -2366,7 +2385,7 @@ void proto_register_dcerpc_eventlog(void)
{ &hf_eventlog_eventlog_OpenEventLogW_MinorVersion,
{ "Minorversion", "eventlog.eventlog_OpenEventLogW.MinorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_Record_source_name,
- { "Source Name", "eventlog.eventlog_Record.source_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { "Source Name", "eventlog.eventlog_Record.source_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_GetLogIntormation_handle,
{ "Handle", "eventlog.eventlog_GetLogIntormation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_Record_length,
@@ -2376,7 +2395,7 @@ void proto_register_dcerpc_eventlog(void)
{ &hf_eventlog_eventlog_GetOldestRecord_oldest,
{ "Oldest", "eventlog.eventlog_GetOldestRecord.oldest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_Record_strings,
- { "Strings", "eventlog.eventlog_Record.strings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { "Strings", "eventlog.eventlog_Record.strings", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_Record_record_number,
{ "Record Number", "eventlog.eventlog_Record.record_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_eventlog_eventlog_OpenEventLogW_handle,
diff --git a/epan/dissectors/packet-dcerpc-initshutdown.c b/epan/dissectors/packet-dcerpc-initshutdown.c
index 4551fb2a26..1606a30504 100644
--- a/epan/dissectors/packet-dcerpc-initshutdown.c
+++ b/epan/dissectors/packet-dcerpc-initshutdown.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -31,30 +30,26 @@
/* Ett declarations */
static gint ett_dcerpc_initshutdown = -1;
-static gint ett_initshutdown_initshutdown_String_sub = -1;
-static gint ett_initshutdown_initshutdown_String = -1;
+static gint ett_initshutdown_initshutdown_ReasonFlags = -1;
/* Header field declarations */
-static gint hf_initshutdown_initshutdown_String_name_len = -1;
+static gint hf_initshutdown_initshutdown_InitEx_do_reboot = -1;
+static gint hf_initshutdown_initshutdown_InitEx_force_apps = -1;
+static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED = -1;
+static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED = -1;
+static gint hf_initshutdown_initshutdown_InitEx_timeout = -1;
+static gint hf_initshutdown_initshutdown_InitEx_hostname = -1;
+static gint hf_initshutdown_werror = -1;
static gint hf_initshutdown_initshutdown_Abort_server = -1;
-static gint hf_initshutdown_initshutdown_Init_message = -1;
+static gint hf_initshutdown_opnum = -1;
static gint hf_initshutdown_initshutdown_Init_hostname = -1;
-static gint hf_initshutdown_initshutdown_InitEx_reboot = -1;
static gint hf_initshutdown_initshutdown_InitEx_reason = -1;
-static gint hf_initshutdown_initshutdown_String_name_size = -1;
static gint hf_initshutdown_initshutdown_Init_timeout = -1;
-static gint hf_initshutdown_initshutdown_InitEx_hostname = -1;
-static gint hf_initshutdown_initshutdown_InitEx_message = -1;
-static gint hf_initshutdown_initshutdown_String_name = -1;
-static gint hf_initshutdown_initshutdown_Init_reboot = -1;
-static gint hf_initshutdown_opnum = -1;
static gint hf_initshutdown_initshutdown_Init_force_apps = -1;
-static gint hf_initshutdown_initshutdown_String_sub_name = -1;
-static gint hf_initshutdown_werror = -1;
-static gint hf_initshutdown_initshutdown_String_sub_name_size = -1;
-static gint hf_initshutdown_initshutdown_InitEx_force_apps = -1;
-static gint hf_initshutdown_initshutdown_InitEx_timeout = -1;
+static gint hf_initshutdown_initshutdown_Init_do_reboot = -1;
+static gint hf_initshutdown_initshutdown_Init_message = -1;
+static gint hf_initshutdown_initshutdown_InitEx_message = -1;
static gint proto_dcerpc_initshutdown = -1;
/* Version information */
@@ -66,19 +61,62 @@ static e_uuid_t uuid_dcerpc_initshutdown = {
};
static guint16 ver_dcerpc_initshutdown = 1;
-static int initshutdown_dissect_element_String_sub_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_String_sub_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_String_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_String_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_String_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_String_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string initshutdown_initshutdown_ReasonMajor_vals[] = {
+ { SHTDN_REASON_MAJOR_OTHER, "SHTDN_REASON_MAJOR_OTHER" },
+ { SHTDN_REASON_MAJOR_HARDWARE, "SHTDN_REASON_MAJOR_HARDWARE" },
+ { SHTDN_REASON_MAJOR_OPERATINGSYSTEM, "SHTDN_REASON_MAJOR_OPERATINGSYSTEM" },
+ { SHTDN_REASON_MAJOR_SOFTWARE, "SHTDN_REASON_MAJOR_SOFTWARE" },
+ { SHTDN_REASON_MAJOR_APPLICATION, "SHTDN_REASON_MAJOR_APPLICATION" },
+ { SHTDN_REASON_MAJOR_SYSTEM, "SHTDN_REASON_MAJOR_SYSTEM" },
+ { SHTDN_REASON_MAJOR_POWER, "SHTDN_REASON_MAJOR_POWER" },
+ { SHTDN_REASON_MAJOR_LEGACY_API, "SHTDN_REASON_MAJOR_LEGACY_API" },
+{ 0, NULL }
+};
+const value_string initshutdown_initshutdown_ReasonMinor_vals[] = {
+ { SHTDN_REASON_MINOR_OTHER, "SHTDN_REASON_MINOR_OTHER" },
+ { SHTDN_REASON_MINOR_MAINTENANCE, "SHTDN_REASON_MINOR_MAINTENANCE" },
+ { SHTDN_REASON_MINOR_INSTALLATION, "SHTDN_REASON_MINOR_INSTALLATION" },
+ { SHTDN_REASON_MINOR_UPGRADE, "SHTDN_REASON_MINOR_UPGRADE" },
+ { SHTDN_REASON_MINOR_RECONFIG, "SHTDN_REASON_MINOR_RECONFIG" },
+ { SHTDN_REASON_MINOR_HUNG, "SHTDN_REASON_MINOR_HUNG" },
+ { SHTDN_REASON_MINOR_UNSTABLE, "SHTDN_REASON_MINOR_UNSTABLE" },
+ { SHTDN_REASON_MINOR_DISK, "SHTDN_REASON_MINOR_DISK" },
+ { SHTDN_REASON_MINOR_PROCESSOR, "SHTDN_REASON_MINOR_PROCESSOR" },
+ { SHTDN_REASON_MINOR_NETWORKCARD, "SHTDN_REASON_MINOR_NETWORKCARD" },
+ { SHTDN_REASON_MINOR_POWER_SUPPLY, "SHTDN_REASON_MINOR_POWER_SUPPLY" },
+ { SHTDN_REASON_MINOR_CORDUNPLUGGED, "SHTDN_REASON_MINOR_CORDUNPLUGGED" },
+ { SHTDN_REASON_MINOR_ENVIRONMENT, "SHTDN_REASON_MINOR_ENVIRONMENT" },
+ { SHTDN_REASON_MINOR_HARDWARE_DRIVER, "SHTDN_REASON_MINOR_HARDWARE_DRIVER" },
+ { SHTDN_REASON_MINOR_OTHERDRIVER, "SHTDN_REASON_MINOR_OTHERDRIVER" },
+ { SHTDN_REASON_MINOR_BLUESCREEN, "SHTDN_REASON_MINOR_BLUESCREEN" },
+ { SHTDN_REASON_MINOR_SERVICEPACK, "SHTDN_REASON_MINOR_SERVICEPACK" },
+ { SHTDN_REASON_MINOR_HOTFIX, "SHTDN_REASON_MINOR_HOTFIX" },
+ { SHTDN_REASON_MINOR_SECURITYFIX, "SHTDN_REASON_MINOR_SECURITYFIX" },
+ { SHTDN_REASON_MINOR_SECURITY, "SHTDN_REASON_MINOR_SECURITY" },
+ { SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY, "SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY" },
+ { SHTDN_REASON_MINOR_WMI, "SHTDN_REASON_MINOR_WMI" },
+ { SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL, "SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL" },
+ { SHTDN_REASON_MINOR_HOTFIX_UNINSTALL, "SHTDN_REASON_MINOR_HOTFIX_UNINSTALL" },
+ { SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL, "SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL" },
+ { SHTDN_REASON_MINOR_MMC, "SHTDN_REASON_MINOR_MMC" },
+ { SHTDN_REASON_MINOR_TERMSRV, "SHTDN_REASON_MINOR_TERMSRV" },
+{ 0, NULL }
+};
+static const true_false_string initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED_tfs = {
+ "SHTDN_REASON_FLAG_USER_DEFINED is SET",
+ "SHTDN_REASON_FLAG_USER_DEFINED is NOT SET",
+};
+static const true_false_string initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED_tfs = {
+ "SHTDN_REASON_FLAG_PLANNED is SET",
+ "SHTDN_REASON_FLAG_PLANNED is NOT SET",
+};
static int initshutdown_dissect_element_Init_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Init_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Init_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Init_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Init_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Init_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_Init_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Abort_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_Abort_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_InitEx_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -87,119 +125,125 @@ static int initshutdown_dissect_element_InitEx_message(tvbuff_t *tvb _U_, int of
static int initshutdown_dissect_element_InitEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_InitEx_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_InitEx_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int initshutdown_dissect_element_InitEx_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int initshutdown_dissect_element_InitEx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-/* IDL: struct { */
-/* IDL: [value(strlen_m_term(name))] uint32 name_size; */
-/* IDL: [flag(LIBNDR_FLAG_STR_LEN4|LIBNDR_FLAG_STR_NOTERM)] string name; */
+/* IDL: enum { */
+/* IDL: SHTDN_REASON_MAJOR_OTHER=0x00000000, */
+/* IDL: SHTDN_REASON_MAJOR_HARDWARE=0x00010000, */
+/* IDL: SHTDN_REASON_MAJOR_OPERATINGSYSTEM=0x00020000, */
+/* IDL: SHTDN_REASON_MAJOR_SOFTWARE=0x00030000, */
+/* IDL: SHTDN_REASON_MAJOR_APPLICATION=0x00040000, */
+/* IDL: SHTDN_REASON_MAJOR_SYSTEM=0x00050000, */
+/* IDL: SHTDN_REASON_MAJOR_POWER=0x00060000, */
+/* IDL: SHTDN_REASON_MAJOR_LEGACY_API=0x00070000, */
/* IDL: } */
-static int
-initshutdown_dissect_element_String_sub_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_String_sub_name_size, 0);
-
- return offset;
-}
-
-static int
-initshutdown_dissect_element_String_sub_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
-{
-
- return offset;
-}
-
int
-initshutdown_dissect_struct_String_sub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+initshutdown_dissect_enum_ReasonMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- proto_item *item = NULL;
- proto_tree *tree = NULL;
- int old_offset;
-
- ALIGN_TO_4_BYTES;
-
- old_offset = offset;
-
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
- tree = proto_item_add_subtree(item, ett_initshutdown_initshutdown_String_sub);
+ guint32 parameter=0;
+ if(param){
+ parameter=(guint32)*param;
+ }
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
}
-
- offset = initshutdown_dissect_element_String_sub_name_size(tvb, offset, pinfo, tree, drep);
-
- offset = initshutdown_dissect_element_String_sub_name(tvb, offset, pinfo, tree, drep);
-
-
- proto_item_set_len(item, offset-old_offset);
-
return offset;
}
-/* IDL: struct { */
-/* IDL: [value(strlen_m(name->name)*2)] uint16 name_len; */
-/* IDL: [value(strlen_m_term(name->name)*2)] uint16 name_size; */
-/* IDL: [unique(1)] initshutdown_String_sub *name; */
+/* IDL: enum { */
+/* IDL: SHTDN_REASON_MINOR_OTHER=0x00000000, */
+/* IDL: SHTDN_REASON_MINOR_MAINTENANCE=0x00000001, */
+/* IDL: SHTDN_REASON_MINOR_INSTALLATION=0x00000002, */
+/* IDL: SHTDN_REASON_MINOR_UPGRADE=0x00000003, */
+/* IDL: SHTDN_REASON_MINOR_RECONFIG=0x00000004, */
+/* IDL: SHTDN_REASON_MINOR_HUNG=0x00000005, */
+/* IDL: SHTDN_REASON_MINOR_UNSTABLE=0x00000006, */
+/* IDL: SHTDN_REASON_MINOR_DISK=0x00000007, */
+/* IDL: SHTDN_REASON_MINOR_PROCESSOR=0x00000008, */
+/* IDL: SHTDN_REASON_MINOR_NETWORKCARD=0x00000009, */
+/* IDL: SHTDN_REASON_MINOR_POWER_SUPPLY=0x0000000a, */
+/* IDL: SHTDN_REASON_MINOR_CORDUNPLUGGED=0x0000000b, */
+/* IDL: SHTDN_REASON_MINOR_ENVIRONMENT=0x0000000c, */
+/* IDL: SHTDN_REASON_MINOR_HARDWARE_DRIVER=0x0000000d, */
+/* IDL: SHTDN_REASON_MINOR_OTHERDRIVER=0x0000000e, */
+/* IDL: SHTDN_REASON_MINOR_BLUESCREEN=0x0000000f, */
+/* IDL: SHTDN_REASON_MINOR_SERVICEPACK=0x00000010, */
+/* IDL: SHTDN_REASON_MINOR_HOTFIX=0x00000011, */
+/* IDL: SHTDN_REASON_MINOR_SECURITYFIX=0x00000012, */
+/* IDL: SHTDN_REASON_MINOR_SECURITY=0x00000013, */
+/* IDL: SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY=0x00000014, */
+/* IDL: SHTDN_REASON_MINOR_WMI=0x00000015, */
+/* IDL: SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL=0x00000016, */
+/* IDL: SHTDN_REASON_MINOR_HOTFIX_UNINSTALL=0x00000017, */
+/* IDL: SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL=0x00000018, */
+/* IDL: SHTDN_REASON_MINOR_MMC=0x00000019, */
+/* IDL: SHTDN_REASON_MINOR_TERMSRV=0x00000020, */
/* IDL: } */
-static int
-initshutdown_dissect_element_String_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_String_name_len, 0);
-
- return offset;
-}
-
-static int
-initshutdown_dissect_element_String_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
-{
- offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_String_name_size, 0);
-
- return offset;
-}
-
-static int
-initshutdown_dissect_element_String_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+int
+initshutdown_dissect_enum_ReasonMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_String_name_, NDR_POINTER_UNIQUE, "Pointer to Name (initshutdown_String_sub)",hf_initshutdown_initshutdown_String_name);
-
+ guint32 parameter=0;
+ if(param){
+ parameter=(guint32)*param;
+ }
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
return offset;
}
-static int
-initshutdown_dissect_element_String_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
-{
- offset = initshutdown_dissect_struct_String_sub(tvb,offset,pinfo,tree,drep,hf_initshutdown_initshutdown_String_name,0);
- return offset;
-}
+/* IDL: bitmap { */
+/* IDL: SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000 , */
+/* IDL: SHTDN_REASON_FLAG_PLANNED = 0x80000000 , */
+/* IDL: } */
int
-initshutdown_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+initshutdown_dissect_bitmap_ReasonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- int old_offset;
+ guint32 flags;
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_initshutdown_initshutdown_String);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+ tree = proto_item_add_subtree(item,ett_initshutdown_initshutdown_ReasonFlags);
}
-
- offset = initshutdown_dissect_element_String_name_len(tvb, offset, pinfo, tree, drep);
- offset = initshutdown_dissect_element_String_name_size(tvb, offset, pinfo, tree, drep);
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+ proto_item_append_text(item, ": ");
+
+ if (!flags)
+ proto_item_append_text(item, "(No values set)");
- offset = initshutdown_dissect_element_String_name(tvb, offset, pinfo, tree, drep);
+ proto_tree_add_boolean(tree, hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED, tvb, offset-4, 4, flags);
+ if (flags&( 0x40000000 )){
+ proto_item_append_text(item, "SHTDN_REASON_FLAG_USER_DEFINED");
+ if (flags & (~( 0x40000000 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x40000000 ));
+ proto_tree_add_boolean(tree, hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED, tvb, offset-4, 4, flags);
+ if (flags&( 0x80000000 )){
+ proto_item_append_text(item, "SHTDN_REASON_FLAG_PLANNED");
+ if (flags & (~( 0x80000000 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x80000000 ));
- proto_item_set_len(item, offset-old_offset);
+ if (flags) {
+ proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+ }
return offset;
}
@@ -223,7 +267,7 @@ initshutdown_dissect_element_Init_hostname_(tvbuff_t *tvb _U_, int offset _U_, p
static int
initshutdown_dissect_element_Init_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_Init_message_, NDR_POINTER_UNIQUE, "Pointer to Message (initshutdown_String)",hf_initshutdown_initshutdown_Init_message);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_Init_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_initshutdown_initshutdown_Init_message);
return offset;
}
@@ -231,7 +275,7 @@ initshutdown_dissect_element_Init_message(tvbuff_t *tvb _U_, int offset _U_, pac
static int
initshutdown_dissect_element_Init_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = initshutdown_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_initshutdown_initshutdown_Init_message,0);
+ offset=lsarpc_dissect_struct_lsa_StringLarge(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_message, 0);
return offset;
}
@@ -253,19 +297,19 @@ initshutdown_dissect_element_Init_force_apps(tvbuff_t *tvb _U_, int offset _U_,
}
static int
-initshutdown_dissect_element_Init_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+initshutdown_dissect_element_Init_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_reboot, 0);
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_do_reboot, 0);
return offset;
}
/* IDL: WERROR initshutdown_Init( */
-/* IDL: [in] [unique(1)] uint16 *hostname, */
-/* IDL: [in] [unique(1)] initshutdown_String *message, */
+/* IDL: [unique(1)] [in] uint16 *hostname, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
/* IDL: [in] uint32 timeout, */
/* IDL: [in] uint8 force_apps, */
-/* IDL: [in] uint8 reboot */
+/* IDL: [in] uint8 do_reboot */
/* IDL: ); */
static int
@@ -294,7 +338,7 @@ initshutdown_dissect_Init_request(tvbuff_t *tvb _U_, int offset _U_, packet_info
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = initshutdown_dissect_element_Init_force_apps(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = initshutdown_dissect_element_Init_reboot(tvb, offset, pinfo, tree, drep);
+ offset = initshutdown_dissect_element_Init_do_reboot(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
@@ -316,7 +360,7 @@ initshutdown_dissect_element_Abort_server_(tvbuff_t *tvb _U_, int offset _U_, pa
}
/* IDL: WERROR initshutdown_Abort( */
-/* IDL: [in] [unique(1)] uint16 *server */
+/* IDL: [unique(1)] [in] uint16 *server */
/* IDL: ); */
static int
@@ -361,7 +405,7 @@ initshutdown_dissect_element_InitEx_hostname_(tvbuff_t *tvb _U_, int offset _U_,
static int
initshutdown_dissect_element_InitEx_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_InitEx_message_, NDR_POINTER_UNIQUE, "Pointer to Message (initshutdown_String)",hf_initshutdown_initshutdown_InitEx_message);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_InitEx_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_initshutdown_initshutdown_InitEx_message);
return offset;
}
@@ -369,7 +413,7 @@ initshutdown_dissect_element_InitEx_message(tvbuff_t *tvb _U_, int offset _U_, p
static int
initshutdown_dissect_element_InitEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = initshutdown_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_initshutdown_initshutdown_InitEx_message,0);
+ offset=lsarpc_dissect_struct_lsa_StringLarge(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_message, 0);
return offset;
}
@@ -391,9 +435,9 @@ initshutdown_dissect_element_InitEx_force_apps(tvbuff_t *tvb _U_, int offset _U_
}
static int
-initshutdown_dissect_element_InitEx_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+initshutdown_dissect_element_InitEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_reboot, 0);
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_do_reboot, 0);
return offset;
}
@@ -407,11 +451,11 @@ initshutdown_dissect_element_InitEx_reason(tvbuff_t *tvb _U_, int offset _U_, pa
}
/* IDL: WERROR initshutdown_InitEx( */
-/* IDL: [in] [unique(1)] uint16 *hostname, */
-/* IDL: [in] [unique(1)] initshutdown_String *message, */
+/* IDL: [unique(1)] [in] uint16 *hostname, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
/* IDL: [in] uint32 timeout, */
/* IDL: [in] uint8 force_apps, */
-/* IDL: [in] uint8 reboot, */
+/* IDL: [in] uint8 do_reboot, */
/* IDL: [in] uint32 reason */
/* IDL: ); */
@@ -441,7 +485,7 @@ initshutdown_dissect_InitEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_in
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = initshutdown_dissect_element_InitEx_force_apps(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = initshutdown_dissect_element_InitEx_reboot(tvb, offset, pinfo, tree, drep);
+ offset = initshutdown_dissect_element_InitEx_do_reboot(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = initshutdown_dissect_element_InitEx_reason(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
@@ -462,51 +506,44 @@ static dcerpc_sub_dissector initshutdown_dissectors[] = {
void proto_register_dcerpc_initshutdown(void)
{
static hf_register_info hf[] = {
- { &hf_initshutdown_initshutdown_String_name_len,
- { "Name Len", "initshutdown.initshutdown_String.name_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_InitEx_do_reboot,
+ { "Do Reboot", "initshutdown.initshutdown_InitEx.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_InitEx_force_apps,
+ { "Force Apps", "initshutdown.initshutdown_InitEx.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED,
+ { "Shtdn Reason Flag Planned", "initshutdown.initshutdown_ReasonFlags.SHTDN_REASON_FLAG_PLANNED", FT_BOOLEAN, 32, TFS(&initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED_tfs), ( 0x80000000 ), NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED,
+ { "Shtdn Reason Flag User Defined", "initshutdown.initshutdown_ReasonFlags.SHTDN_REASON_FLAG_USER_DEFINED", FT_BOOLEAN, 32, TFS(&initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED_tfs), ( 0x40000000 ), NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_InitEx_timeout,
+ { "Timeout", "initshutdown.initshutdown_InitEx.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_InitEx_hostname,
+ { "Hostname", "initshutdown.initshutdown_InitEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_werror,
+ { "Windows Error", "initshutdown.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
{ &hf_initshutdown_initshutdown_Abort_server,
{ "Server", "initshutdown.initshutdown_Abort.server", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_Init_message,
- { "Message", "initshutdown.initshutdown_Init.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_opnum,
+ { "Operation", "initshutdown.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_initshutdown_initshutdown_Init_hostname,
{ "Hostname", "initshutdown.initshutdown_Init.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_InitEx_reboot,
- { "Reboot", "initshutdown.initshutdown_InitEx.reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_initshutdown_initshutdown_InitEx_reason,
{ "Reason", "initshutdown.initshutdown_InitEx.reason", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_String_name_size,
- { "Name Size", "initshutdown.initshutdown_String.name_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_initshutdown_initshutdown_Init_timeout,
{ "Timeout", "initshutdown.initshutdown_Init.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_InitEx_hostname,
- { "Hostname", "initshutdown.initshutdown_InitEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_InitEx_message,
- { "Message", "initshutdown.initshutdown_InitEx.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_String_name,
- { "Name", "initshutdown.initshutdown_String.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_Init_reboot,
- { "Reboot", "initshutdown.initshutdown_Init.reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_opnum,
- { "Operation", "initshutdown.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_initshutdown_initshutdown_Init_force_apps,
{ "Force Apps", "initshutdown.initshutdown_Init.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_String_sub_name,
- { "Name", "initshutdown.initshutdown_String_sub.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_werror,
- { "Windows Error", "initshutdown.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_String_sub_name_size,
- { "Name Size", "initshutdown.initshutdown_String_sub.name_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_InitEx_force_apps,
- { "Force Apps", "initshutdown.initshutdown_InitEx.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_initshutdown_initshutdown_InitEx_timeout,
- { "Timeout", "initshutdown.initshutdown_InitEx.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_Init_do_reboot,
+ { "Do Reboot", "initshutdown.initshutdown_Init.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_Init_message,
+ { "Message", "initshutdown.initshutdown_Init.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_initshutdown_initshutdown_InitEx_message,
+ { "Message", "initshutdown.initshutdown_InitEx.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
};
static gint *ett[] = {
&ett_dcerpc_initshutdown,
- &ett_initshutdown_initshutdown_String_sub,
- &ett_initshutdown_initshutdown_String,
+ &ett_initshutdown_initshutdown_ReasonFlags,
};
proto_dcerpc_initshutdown = proto_register_protocol("Init shutdown service", "INITSHUTDOWN", "initshutdown");
diff --git a/epan/dissectors/packet-dcerpc-initshutdown.h b/epan/dissectors/packet-dcerpc-initshutdown.h
index bcf9fde7f8..0d7255aaad 100644
--- a/epan/dissectors/packet-dcerpc-initshutdown.h
+++ b/epan/dissectors/packet-dcerpc-initshutdown.h
@@ -13,9 +13,49 @@
*/
+#include "packet-dcerpc-lsa.h"
+
#ifndef __PACKET_DCERPC_INITSHUTDOWN_H
#define __PACKET_DCERPC_INITSHUTDOWN_H
-int initshutdown_dissect_struct_String_sub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-int initshutdown_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SHTDN_REASON_MAJOR_OTHER (0x00000000)
+#define SHTDN_REASON_MAJOR_HARDWARE (0x00010000)
+#define SHTDN_REASON_MAJOR_OPERATINGSYSTEM (0x00020000)
+#define SHTDN_REASON_MAJOR_SOFTWARE (0x00030000)
+#define SHTDN_REASON_MAJOR_APPLICATION (0x00040000)
+#define SHTDN_REASON_MAJOR_SYSTEM (0x00050000)
+#define SHTDN_REASON_MAJOR_POWER (0x00060000)
+#define SHTDN_REASON_MAJOR_LEGACY_API (0x00070000)
+extern const value_string initshutdown_initshutdown_ReasonMajor_vals[];
+int initshutdown_dissect_enum_ReasonMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SHTDN_REASON_MINOR_OTHER (0x00000000)
+#define SHTDN_REASON_MINOR_MAINTENANCE (0x00000001)
+#define SHTDN_REASON_MINOR_INSTALLATION (0x00000002)
+#define SHTDN_REASON_MINOR_UPGRADE (0x00000003)
+#define SHTDN_REASON_MINOR_RECONFIG (0x00000004)
+#define SHTDN_REASON_MINOR_HUNG (0x00000005)
+#define SHTDN_REASON_MINOR_UNSTABLE (0x00000006)
+#define SHTDN_REASON_MINOR_DISK (0x00000007)
+#define SHTDN_REASON_MINOR_PROCESSOR (0x00000008)
+#define SHTDN_REASON_MINOR_NETWORKCARD (0x00000009)
+#define SHTDN_REASON_MINOR_POWER_SUPPLY (0x0000000a)
+#define SHTDN_REASON_MINOR_CORDUNPLUGGED (0x0000000b)
+#define SHTDN_REASON_MINOR_ENVIRONMENT (0x0000000c)
+#define SHTDN_REASON_MINOR_HARDWARE_DRIVER (0x0000000d)
+#define SHTDN_REASON_MINOR_OTHERDRIVER (0x0000000e)
+#define SHTDN_REASON_MINOR_BLUESCREEN (0x0000000f)
+#define SHTDN_REASON_MINOR_SERVICEPACK (0x00000010)
+#define SHTDN_REASON_MINOR_HOTFIX (0x00000011)
+#define SHTDN_REASON_MINOR_SECURITYFIX (0x00000012)
+#define SHTDN_REASON_MINOR_SECURITY (0x00000013)
+#define SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY (0x00000014)
+#define SHTDN_REASON_MINOR_WMI (0x00000015)
+#define SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL (0x00000016)
+#define SHTDN_REASON_MINOR_HOTFIX_UNINSTALL (0x00000017)
+#define SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL (0x00000018)
+#define SHTDN_REASON_MINOR_MMC (0x00000019)
+#define SHTDN_REASON_MINOR_TERMSRV (0x00000020)
+extern const value_string initshutdown_initshutdown_ReasonMinor_vals[];
+int initshutdown_dissect_enum_ReasonMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int initshutdown_dissect_bitmap_ReasonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#endif /* __PACKET_DCERPC_INITSHUTDOWN_H */
diff --git a/epan/dissectors/packet-dcerpc-lsa.c b/epan/dissectors/packet-dcerpc-lsa.c
index cdc1b3c16d..64081276e6 100644
--- a/epan/dissectors/packet-dcerpc-lsa.c
+++ b/epan/dissectors/packet-dcerpc-lsa.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -987,9 +986,9 @@ const value_string lsarpc_lsa_ForestTrustRecordType_vals[] = {
{ 0, NULL }
};
static int lsarpc_dissect_element_lsa_ForestTrustRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_ForestTrustRecord_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustRecord_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *level);
static int lsarpc_dissect_element_lsa_ForestTrustRecord_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *level);
static int lsarpc_dissect_element_lsa_ForestTrustInformation_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int lsarpc_dissect_element_lsa_ForestTrustInformation_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int lsarpc_dissect_element_lsa_ForestTrustInformation_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -1435,7 +1434,7 @@ cnf_dissect_sec_desc_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
dcerpc_call_value *dcv = NULL;
guint32 type=0;
struct access_mask_info *ami=NULL;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -1473,7 +1472,7 @@ cnf_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
{
guint32 len;
dcerpc_info *di;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -1515,7 +1514,7 @@ lsarpc_dissect_element_lsa_LookupNames3_names_X(tvbuff_t *tvb _U_, int offset _U
item = proto_tree_add_item(parent_tree, hf_lsarpc_names, tvb, offset, -1, TRUE);
tree = proto_item_add_subtree(item, ett_lsarpc_names);
}
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_names_);
proto_item_set_len(item, offset-old_offset);
return offset;
@@ -1577,7 +1576,7 @@ lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_(tvbuff_t *tvb _U_, int offset
tvbuff_t *next_tvb;
gint len, reported_len;
dissector_handle_t efsblob_handle;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -1653,7 +1652,7 @@ lsarpc_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_lsarpc_security_secinfo);
}
@@ -1706,7 +1705,7 @@ lsarpc_dissect_struct_lsa_String(tvbuff_t *tvb _U_, int offset _U_, packet_info
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -1714,7 +1713,7 @@ lsarpc_dissect_struct_lsa_String(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_String);
}
@@ -1771,7 +1770,7 @@ lsarpc_dissect_struct_lsa_StringLarge(tvbuff_t *tvb _U_, int offset _U_, packet_
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -1779,7 +1778,7 @@ lsarpc_dissect_struct_lsa_StringLarge(tvbuff_t *tvb _U_, int offset _U_, packet_
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_StringLarge);
}
@@ -1843,7 +1842,7 @@ lsarpc_dissect_struct_lsa_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -1851,7 +1850,7 @@ lsarpc_dissect_struct_lsa_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_Strings);
}
@@ -1922,7 +1921,7 @@ lsarpc_dissect_struct_lsa_AsciiString(tvbuff_t *tvb _U_, int offset _U_, packet_
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -1930,7 +1929,7 @@ lsarpc_dissect_struct_lsa_AsciiString(tvbuff_t *tvb _U_, int offset _U_, packet_
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AsciiString);
}
@@ -2003,7 +2002,7 @@ lsarpc_dissect_struct_lsa_AsciiStringLarge(tvbuff_t *tvb _U_, int offset _U_, pa
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2011,7 +2010,7 @@ lsarpc_dissect_struct_lsa_AsciiStringLarge(tvbuff_t *tvb _U_, int offset _U_, pa
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AsciiStringLarge);
}
@@ -2059,7 +2058,7 @@ lsarpc_dissect_struct_lsa_LUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -2067,7 +2066,7 @@ lsarpc_dissect_struct_lsa_LUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_LUID);
}
@@ -2113,7 +2112,7 @@ lsarpc_dissect_struct_lsa_PrivEntry(tvbuff_t *tvb _U_, int offset _U_, packet_in
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2121,7 +2120,7 @@ lsarpc_dissect_struct_lsa_PrivEntry(tvbuff_t *tvb _U_, int offset _U_, packet_in
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PrivEntry);
}
@@ -2183,7 +2182,7 @@ lsarpc_dissect_struct_lsa_PrivArray(tvbuff_t *tvb _U_, int offset _U_, packet_in
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2191,7 +2190,7 @@ lsarpc_dissect_struct_lsa_PrivArray(tvbuff_t *tvb _U_, int offset _U_, packet_in
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PrivArray);
}
@@ -2277,7 +2276,7 @@ lsarpc_dissect_struct_lsa_QosInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -2285,7 +2284,7 @@ lsarpc_dissect_struct_lsa_QosInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_QosInfo);
}
@@ -2406,7 +2405,7 @@ lsarpc_dissect_struct_lsa_ObjectAttribute(tvbuff_t *tvb _U_, int offset _U_, pac
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2414,7 +2413,7 @@ lsarpc_dissect_struct_lsa_ObjectAttribute(tvbuff_t *tvb _U_, int offset _U_, pac
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ObjectAttribute);
}
@@ -2513,7 +2512,7 @@ lsarpc_dissect_struct_lsa_AuditLogInfo(tvbuff_t *tvb _U_, int offset _U_, packet
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -2521,7 +2520,7 @@ lsarpc_dissect_struct_lsa_AuditLogInfo(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditLogInfo);
}
@@ -2652,7 +2651,7 @@ lsarpc_dissect_struct_lsa_AuditEventsInfo(tvbuff_t *tvb _U_, int offset _U_, pac
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2660,7 +2659,7 @@ lsarpc_dissect_struct_lsa_AuditEventsInfo(tvbuff_t *tvb _U_, int offset _U_, pac
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditEventsInfo);
}
@@ -2716,7 +2715,7 @@ lsarpc_dissect_struct_lsa_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_i
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2724,7 +2723,7 @@ lsarpc_dissect_struct_lsa_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_i
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInfo);
}
@@ -2761,7 +2760,7 @@ lsarpc_dissect_struct_lsa_PDAccountInfo(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2769,7 +2768,7 @@ lsarpc_dissect_struct_lsa_PDAccountInfo(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PDAccountInfo);
}
@@ -2824,7 +2823,7 @@ lsarpc_dissect_struct_lsa_ServerRole(tvbuff_t *tvb _U_, int offset _U_, packet_i
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_3_BYTES;
@@ -2832,7 +2831,7 @@ lsarpc_dissect_struct_lsa_ServerRole(tvbuff_t *tvb _U_, int offset _U_, packet_i
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ServerRole);
}
@@ -2876,7 +2875,7 @@ lsarpc_dissect_struct_lsa_ReplicaSourceInfo(tvbuff_t *tvb _U_, int offset _U_, p
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -2884,7 +2883,7 @@ lsarpc_dissect_struct_lsa_ReplicaSourceInfo(tvbuff_t *tvb _U_, int offset _U_, p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ReplicaSourceInfo);
}
@@ -2966,7 +2965,7 @@ lsarpc_dissect_struct_lsa_DefaultQuotaInfo(tvbuff_t *tvb _U_, int offset _U_, pa
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_8_BYTES;
@@ -2974,7 +2973,7 @@ lsarpc_dissect_struct_lsa_DefaultQuotaInfo(tvbuff_t *tvb _U_, int offset _U_, pa
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DefaultQuotaInfo);
}
@@ -3028,7 +3027,7 @@ lsarpc_dissect_struct_lsa_ModificationInfo(tvbuff_t *tvb _U_, int offset _U_, pa
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_8_BYTES;
@@ -3036,7 +3035,7 @@ lsarpc_dissect_struct_lsa_ModificationInfo(tvbuff_t *tvb _U_, int offset _U_, pa
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ModificationInfo);
}
@@ -3079,7 +3078,7 @@ lsarpc_dissect_struct_lsa_AuditFullSetInfo(tvbuff_t *tvb _U_, int offset _U_, pa
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditFullSetInfo);
}
@@ -3128,7 +3127,7 @@ lsarpc_dissect_struct_lsa_AuditFullQueryInfo(tvbuff_t *tvb _U_, int offset _U_,
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_2_BYTES;
@@ -3136,7 +3135,7 @@ lsarpc_dissect_struct_lsa_AuditFullQueryInfo(tvbuff_t *tvb _U_, int offset _U_,
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditFullQueryInfo);
}
@@ -3219,7 +3218,7 @@ lsarpc_dissect_struct_lsa_DnsDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3227,7 +3226,7 @@ lsarpc_dissect_struct_lsa_DnsDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DnsDomainInfo);
}
@@ -3493,7 +3492,7 @@ lsarpc_dissect_struct_lsa_SidPtr(tvbuff_t *tvb _U_, int offset _U_, packet_info
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3501,7 +3500,7 @@ lsarpc_dissect_struct_lsa_SidPtr(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_SidPtr);
}
@@ -3561,7 +3560,7 @@ lsarpc_dissect_struct_lsa_SidArray(tvbuff_t *tvb _U_, int offset _U_, packet_inf
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3569,7 +3568,7 @@ lsarpc_dissect_struct_lsa_SidArray(tvbuff_t *tvb _U_, int offset _U_, packet_inf
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_SidArray);
}
@@ -3631,7 +3630,7 @@ lsarpc_dissect_struct_lsa_DomainList(tvbuff_t *tvb _U_, int offset _U_, packet_i
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3639,7 +3638,7 @@ lsarpc_dissect_struct_lsa_DomainList(tvbuff_t *tvb _U_, int offset _U_, packet_i
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainList);
}
@@ -3722,7 +3721,7 @@ lsarpc_dissect_struct_lsa_TranslatedSid(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -3730,7 +3729,7 @@ lsarpc_dissect_struct_lsa_TranslatedSid(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedSid);
}
@@ -3794,7 +3793,7 @@ lsarpc_dissect_struct_lsa_TransSidArray(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3802,7 +3801,7 @@ lsarpc_dissect_struct_lsa_TransSidArray(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransSidArray);
}
@@ -3873,7 +3872,7 @@ lsarpc_dissect_struct_lsa_RefDomainList(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3881,7 +3880,7 @@ lsarpc_dissect_struct_lsa_RefDomainList(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_RefDomainList);
}
@@ -3962,7 +3961,7 @@ lsarpc_dissect_struct_lsa_TranslatedName(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -3970,7 +3969,7 @@ lsarpc_dissect_struct_lsa_TranslatedName(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedName);
}
@@ -4034,7 +4033,7 @@ lsarpc_dissect_struct_lsa_TransNameArray(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4042,7 +4041,7 @@ lsarpc_dissect_struct_lsa_TransNameArray(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransNameArray);
}
@@ -4088,7 +4087,7 @@ lsarpc_dissect_struct_lsa_LUIDAttribute(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -4096,7 +4095,7 @@ lsarpc_dissect_struct_lsa_LUIDAttribute(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_LUIDAttribute);
}
@@ -4159,7 +4158,7 @@ lsarpc_dissect_struct_lsa_PrivilegeSet(tvbuff_t *tvb _U_, int offset _U_, packet
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -4167,7 +4166,7 @@ lsarpc_dissect_struct_lsa_PrivilegeSet(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PrivilegeSet);
}
@@ -4240,7 +4239,7 @@ lsarpc_dissect_struct_lsa_DATA_BUF(tvbuff_t *tvb _U_, int offset _U_, packet_inf
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4248,7 +4247,7 @@ lsarpc_dissect_struct_lsa_DATA_BUF(tvbuff_t *tvb _U_, int offset _U_, packet_inf
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DATA_BUF);
}
@@ -4312,7 +4311,7 @@ lsarpc_dissect_struct_lsa_DATA_BUF2(tvbuff_t *tvb _U_, int offset _U_, packet_in
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4320,7 +4319,7 @@ lsarpc_dissect_struct_lsa_DATA_BUF2(tvbuff_t *tvb _U_, int offset _U_, packet_in
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DATA_BUF2);
}
@@ -4385,7 +4384,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoName(tvbuff_t *tvb _U_, int offset _U_,
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4393,7 +4392,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoName(tvbuff_t *tvb _U_, int offset _U_,
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoName);
}
@@ -4428,7 +4427,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvbuff_t *tvb _U_, int offs
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -4436,7 +4435,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvbuff_t *tvb _U_, int offs
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoPosixOffset);
}
@@ -4496,7 +4495,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoPassword(tvbuff_t *tvb _U_, int offset
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4504,7 +4503,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoPassword(tvbuff_t *tvb _U_, int offset
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoPassword);
}
@@ -4558,7 +4557,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoBasic(tvbuff_t *tvb _U_, int offset _U_
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4566,7 +4565,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoBasic(tvbuff_t *tvb _U_, int offset _U_
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoBasic);
}
@@ -4656,7 +4655,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvbuff_t *tvb _U_, int offset _U
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4664,7 +4663,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvbuff_t *tvb _U_, int offset _U
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoInfoEx);
}
@@ -4727,7 +4726,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvbuff_t *tvb _U_, int offset _U
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_8_BYTES;
@@ -4735,7 +4734,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvbuff_t *tvb _U_, int offset _U
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoBuffer);
}
@@ -4851,7 +4850,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvbuff_t *tvb _U_, int offset
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4859,7 +4858,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvbuff_t *tvb _U_, int offset
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoAuthInfo);
}
@@ -4922,7 +4921,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo(tvbuff_t *tvb _U_, int offset
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4930,7 +4929,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo(tvbuff_t *tvb _U_, int offset
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoFullInfo);
}
@@ -4978,7 +4977,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfo11(tvbuff_t *tvb _U_, int offset _U_, p
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -4986,7 +4985,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfo11(tvbuff_t *tvb _U_, int offset _U_, p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfo11);
}
@@ -5050,7 +5049,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoInfoAll(tvbuff_t *tvb _U_, int offset _
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5058,7 +5057,7 @@ lsarpc_dissect_struct_lsa_TrustDomainInfoInfoAll(tvbuff_t *tvb _U_, int offset _
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoInfoAll);
}
@@ -5251,7 +5250,7 @@ lsarpc_dissect_struct_lsa_DATA_BUF_PTR(tvbuff_t *tvb _U_, int offset _U_, packet
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5259,7 +5258,7 @@ lsarpc_dissect_struct_lsa_DATA_BUF_PTR(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DATA_BUF_PTR);
}
@@ -5305,7 +5304,7 @@ lsarpc_dissect_struct_lsa_RightAttribute(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5313,7 +5312,7 @@ lsarpc_dissect_struct_lsa_RightAttribute(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_RightAttribute);
}
@@ -5373,7 +5372,7 @@ lsarpc_dissect_struct_lsa_RightSet(tvbuff_t *tvb _U_, int offset _U_, packet_inf
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5381,7 +5380,7 @@ lsarpc_dissect_struct_lsa_RightSet(tvbuff_t *tvb _U_, int offset _U_, packet_inf
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_RightSet);
}
@@ -5426,7 +5425,7 @@ lsarpc_dissect_struct_lsa_StringPointer(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5434,7 +5433,7 @@ lsarpc_dissect_struct_lsa_StringPointer(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_StringPointer);
}
@@ -5494,7 +5493,7 @@ lsarpc_dissect_struct_lsa_DomainListEx(tvbuff_t *tvb _U_, int offset _U_, packet
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5502,7 +5501,7 @@ lsarpc_dissect_struct_lsa_DomainListEx(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainListEx);
}
@@ -5584,7 +5583,7 @@ lsarpc_dissect_struct_lsa_DomainInfoKerberos(tvbuff_t *tvb _U_, int offset _U_,
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_8_BYTES;
@@ -5592,7 +5591,7 @@ lsarpc_dissect_struct_lsa_DomainInfoKerberos(tvbuff_t *tvb _U_, int offset _U_,
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInfoKerberos);
}
@@ -5654,7 +5653,7 @@ lsarpc_dissect_struct_lsa_DomainInfoEfs(tvbuff_t *tvb _U_, int offset _U_, packe
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5662,7 +5661,7 @@ lsarpc_dissect_struct_lsa_DomainInfoEfs(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInfoEfs);
}
@@ -5800,7 +5799,7 @@ lsarpc_dissect_struct_lsa_TranslatedName2(tvbuff_t *tvb _U_, int offset _U_, pac
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5808,7 +5807,7 @@ lsarpc_dissect_struct_lsa_TranslatedName2(tvbuff_t *tvb _U_, int offset _U_, pac
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedName2);
}
@@ -5874,7 +5873,7 @@ lsarpc_dissect_struct_lsa_TransNameArray2(tvbuff_t *tvb _U_, int offset _U_, pac
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -5882,7 +5881,7 @@ lsarpc_dissect_struct_lsa_TransNameArray2(tvbuff_t *tvb _U_, int offset _U_, pac
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransNameArray2);
}
@@ -5946,7 +5945,7 @@ lsarpc_dissect_struct_lsa_TranslatedSid2(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -5954,7 +5953,7 @@ lsarpc_dissect_struct_lsa_TranslatedSid2(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedSid2);
}
@@ -6020,7 +6019,7 @@ lsarpc_dissect_struct_lsa_TransSidArray2(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -6028,7 +6027,7 @@ lsarpc_dissect_struct_lsa_TransSidArray2(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransSidArray2);
}
@@ -6100,7 +6099,7 @@ lsarpc_dissect_struct_lsa_TranslatedSid3(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -6108,7 +6107,7 @@ lsarpc_dissect_struct_lsa_TranslatedSid3(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedSid3);
}
@@ -6174,7 +6173,7 @@ lsarpc_dissect_struct_lsa_TransSidArray3(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -6182,7 +6181,7 @@ lsarpc_dissect_struct_lsa_TransSidArray3(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransSidArray3);
}
@@ -6244,7 +6243,7 @@ lsarpc_dissect_struct_lsa_ForestTrustBinaryData(tvbuff_t *tvb _U_, int offset _U
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -6252,7 +6251,7 @@ lsarpc_dissect_struct_lsa_ForestTrustBinaryData(tvbuff_t *tvb _U_, int offset _U
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustBinaryData);
}
@@ -6315,7 +6314,7 @@ lsarpc_dissect_struct_lsa_ForestTrustDomainInfo(tvbuff_t *tvb _U_, int offset _U
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -6323,7 +6322,7 @@ lsarpc_dissect_struct_lsa_ForestTrustDomainInfo(tvbuff_t *tvb _U_, int offset _U
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustDomainInfo);
}
@@ -6462,9 +6461,9 @@ lsarpc_dissect_element_lsa_ForestTrustRecord_flags(tvbuff_t *tvb _U_, int offset
}
static int
-lsarpc_dissect_element_lsa_ForestTrustRecord_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_ForestTrustRecord_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *level)
{
- offset = lsarpc_dissect_enum_lsa_ForestTrustRecordType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_level, 0);
+ offset = lsarpc_dissect_enum_lsa_ForestTrustRecordType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_level, level);
return offset;
}
@@ -6478,9 +6477,9 @@ lsarpc_dissect_element_lsa_ForestTrustRecord_unknown(tvbuff_t *tvb _U_, int offs
}
static int
-lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *level)
{
- offset = lsarpc_dissect_lsa_ForestTrustData(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data, 0);
+ offset = lsarpc_dissect_lsa_ForestTrustData(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data, *level);
return offset;
}
@@ -6488,9 +6487,10 @@ lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_
int
lsarpc_dissect_struct_lsa_ForestTrustRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
{
+ guint32 level;
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_8_BYTES;
@@ -6498,17 +6498,17 @@ lsarpc_dissect_struct_lsa_ForestTrustRecord(tvbuff_t *tvb _U_, int offset _U_, p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustRecord);
}
offset = lsarpc_dissect_element_lsa_ForestTrustRecord_flags(tvb, offset, pinfo, tree, drep);
- offset = lsarpc_dissect_element_lsa_ForestTrustRecord_level(tvb, offset, pinfo, tree, drep);
+ offset = lsarpc_dissect_element_lsa_ForestTrustRecord_level(tvb, offset, pinfo, tree, drep, &level);
offset = lsarpc_dissect_element_lsa_ForestTrustRecord_unknown(tvb, offset, pinfo, tree, drep);
- offset = lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvb, offset, pinfo, tree, drep);
+ offset = lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvb, offset, pinfo, tree, drep, &level);
proto_item_set_len(item, offset-old_offset);
@@ -6572,7 +6572,7 @@ lsarpc_dissect_struct_lsa_ForestTrustInformation(tvbuff_t *tvb _U_, int offset _
{
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_5_BYTES;
@@ -6580,7 +6580,7 @@ lsarpc_dissect_struct_lsa_ForestTrustInformation(tvbuff_t *tvb _U_, int offset _
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustInformation);
}
diff --git a/epan/dissectors/packet-dcerpc-misc.c b/epan/dissectors/packet-dcerpc-misc.c
new file mode 100644
index 0000000000..e736e66875
--- /dev/null
+++ b/epan/dissectors/packet-dcerpc-misc.c
@@ -0,0 +1,625 @@
+/* DO NOT EDIT
+ This filter was automatically generated
+ from misc.idl and misc.cnf.
+
+ Pidl is a perl based IDL compiler for DCE/RPC idl files.
+ It is maintained by the Samba team, not the Wireshark team.
+ Instructions on how to download and install Pidl can be
+ found at http://wiki.wireshark.org/Pidl
+
+ $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#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-misc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_misc = -1;
+static gint ett_misc_GUID = -1;
+static gint ett_misc_ndr_syntax_id = -1;
+static gint ett_misc_policy_handle = -1;
+static gint ett_misc_KRB5_EDATA_NTSTATUS = -1;
+static gint ett_misc_winreg_Data = -1;
+
+
+/* Header field declarations */
+static gint hf_misc_GUID_time_mid = -1;
+static gint hf_misc_winreg_Data_value = -1;
+static gint hf_misc_GUID_time_low = -1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown2 = -1;
+static gint hf_misc_GUID_time_hi_and_version = -1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_ntstatus = -1;
+static gint hf_misc_GUID_node = -1;
+static gint hf_misc_winreg_Data_string = -1;
+static gint hf_misc_winreg_Data_data = -1;
+static gint hf_misc_winreg_Data_binary = -1;
+static gint hf_misc_policy_handle_uuid = -1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown1 = -1;
+static gint hf_misc_policy_handle_handle_type = -1;
+static gint hf_misc_ndr_syntax_id_uuid = -1;
+static gint hf_misc_opnum = -1;
+static gint hf_misc_GUID_clock_seq = -1;
+static gint hf_misc_winreg_Data_string_array = -1;
+static gint hf_misc_ndr_syntax_id_if_version = -1;
+
+static gint proto_dcerpc_misc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_misc = {
+ 0x12345678, 0x1234, 0x1234,
+ { 0x12, 0x34, 0xab, 0xcd, 0xef, 0x12, 0x34, 0x56 }
+};
+static guint16 ver_dcerpc_misc = 1;
+
+static int misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string misc_netr_SchannelType_vals[] = {
+ { SEC_CHAN_NULL, "SEC_CHAN_NULL" },
+ { SEC_CHAN_LOCAL, "SEC_CHAN_LOCAL" },
+ { SEC_CHAN_WKSTA, "SEC_CHAN_WKSTA" },
+ { SEC_CHAN_DNS_DOMAIN, "SEC_CHAN_DNS_DOMAIN" },
+ { SEC_CHAN_DOMAIN, "SEC_CHAN_DOMAIN" },
+ { SEC_CHAN_LANMAN, "SEC_CHAN_LANMAN" },
+ { SEC_CHAN_BDC, "SEC_CHAN_BDC" },
+ { SEC_CHAN_RODC, "SEC_CHAN_RODC" },
+{ 0, NULL }
+};
+static int misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string misc_winreg_Type_vals[] = {
+ { REG_NONE, "REG_NONE" },
+ { REG_SZ, "REG_SZ" },
+ { REG_EXPAND_SZ, "REG_EXPAND_SZ" },
+ { REG_BINARY, "REG_BINARY" },
+ { REG_DWORD, "REG_DWORD" },
+ { REG_DWORD_BIG_ENDIAN, "REG_DWORD_BIG_ENDIAN" },
+ { REG_LINK, "REG_LINK" },
+ { REG_MULTI_SZ, "REG_MULTI_SZ" },
+ { REG_RESOURCE_LIST, "REG_RESOURCE_LIST" },
+ { REG_FULL_RESOURCE_DESCRIPTOR, "REG_FULL_RESOURCE_DESCRIPTOR" },
+ { REG_RESOURCE_REQUIREMENTS_LIST, "REG_RESOURCE_REQUIREMENTS_LIST" },
+ { REG_QWORD, "REG_QWORD" },
+{ 0, NULL }
+};
+static int misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int
+misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_string , 0);
+ return offset;
+}
+static int
+misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_value, 0);
+ return offset;
+}
+static int
+misc_dissect_struct_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ /* We don't do it yet */
+ return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: uint32 time_low; */
+/* IDL: uint16 time_mid; */
+/* IDL: uint16 time_hi_and_version; */
+/* IDL: uint8 clock_seq[2]; */
+/* IDL: uint8 node[6]; */
+/* IDL: } */
+
+static int
+misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_GUID_time_low, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_misc_GUID_time_mid, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_misc_GUID_time_hi_and_version, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ int i;
+ for (i = 0; i < 2; i++)
+ offset = misc_dissect_element_GUID_clock_seq_(tvb, offset, pinfo, tree, drep);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_misc_GUID_clock_seq, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ int i;
+ for (i = 0; i < 6; i++)
+ offset = misc_dissect_element_GUID_node_(tvb, offset, pinfo, tree, drep);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_misc_GUID_node, 0);
+
+ return offset;
+}
+
+int
+misc_dissect_struct_GUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_misc_GUID);
+ }
+
+ offset = misc_dissect_element_GUID_time_low(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_GUID_time_mid(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_GUID_time_hi_and_version(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_GUID_clock_seq(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_GUID_node(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: GUID uuid; */
+/* IDL: uint32 if_version; */
+/* IDL: } */
+
+static int
+misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_misc_ndr_syntax_id_uuid, NULL);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_ndr_syntax_id_if_version, 0);
+
+ return offset;
+}
+
+int
+misc_dissect_struct_ndr_syntax_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_misc_ndr_syntax_id);
+ }
+
+ offset = misc_dissect_element_ndr_syntax_id_uuid(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_ndr_syntax_id_if_version(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: uint32 handle_type; */
+/* IDL: GUID uuid; */
+/* IDL: } */
+
+static int
+misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_policy_handle_handle_type, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_misc_policy_handle_uuid, NULL);
+
+ return offset;
+}
+
+int
+misc_dissect_struct_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_misc_policy_handle);
+ }
+
+ offset = misc_dissect_element_policy_handle_handle_type(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_policy_handle_uuid(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: SEC_CHAN_NULL=0, */
+/* IDL: SEC_CHAN_LOCAL=1, */
+/* IDL: SEC_CHAN_WKSTA=2, */
+/* IDL: SEC_CHAN_DNS_DOMAIN=3, */
+/* IDL: SEC_CHAN_DOMAIN=4, */
+/* IDL: SEC_CHAN_LANMAN=5, */
+/* IDL: SEC_CHAN_BDC=6, */
+/* IDL: SEC_CHAN_RODC=7, */
+/* IDL: } */
+
+int
+misc_dissect_enum_netr_SchannelType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+ guint1632 parameter=0;
+ if(param){
+ parameter=(guint1632)*param;
+ }
+ offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
+ return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: NTSTATUS ntstatus; */
+/* IDL: uint32 unknown1; */
+/* IDL: uint32 unknown2; */
+/* IDL: } */
+
+static int
+misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_KRB5_EDATA_NTSTATUS_ntstatus, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_KRB5_EDATA_NTSTATUS_unknown1, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_KRB5_EDATA_NTSTATUS_unknown2, 0);
+
+ return offset;
+}
+
+int
+misc_dissect_struct_KRB5_EDATA_NTSTATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_misc_KRB5_EDATA_NTSTATUS);
+ }
+
+ offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvb, offset, pinfo, tree, drep);
+
+ offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: REG_NONE=0, */
+/* IDL: REG_SZ=1, */
+/* IDL: REG_EXPAND_SZ=2, */
+/* IDL: REG_BINARY=3, */
+/* IDL: REG_DWORD=4, */
+/* IDL: REG_DWORD_BIG_ENDIAN=5, */
+/* IDL: REG_LINK=6, */
+/* IDL: REG_MULTI_SZ=7, */
+/* IDL: REG_RESOURCE_LIST=8, */
+/* IDL: REG_FULL_RESOURCE_DESCRIPTOR=9, */
+/* IDL: REG_RESOURCE_REQUIREMENTS_LIST=10, */
+/* IDL: REG_QWORD=11, */
+/* IDL: } */
+
+int
+misc_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+ guint32 parameter=0;
+ if(param){
+ parameter=(guint32)*param;
+ }
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+ if(param){
+ *param=(guint32)parameter;
+ }
+ return offset;
+}
+
+
+/* IDL: [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_LITTLE_ENDIAN)] union { */
+/* IDL: [case(REG_NONE)] [case(REG_NONE)] EMPTY ; */
+/* IDL: [case(REG_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM)] [case(REG_SZ)] string string; */
+/* IDL: [case(REG_EXPAND_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM)] [case(REG_EXPAND_SZ)] string string; */
+/* IDL: [case(REG_BINARY)] [flag(LIBNDR_FLAG_REMAINING)] [case(REG_BINARY)] DATA_BLOB binary; */
+/* IDL: [case(REG_DWORD)] [case(REG_DWORD)] uint32 value; */
+/* IDL: [case(REG_DWORD_BIG_ENDIAN)] [flag(LIBNDR_FLAG_BIGENDIAN)] [case(REG_DWORD_BIG_ENDIAN)] uint32 value; */
+/* IDL: [case(REG_MULTI_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM)] [case(REG_MULTI_SZ)] string_array string_array; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+misc_dissect_element_winreg_Data_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_binary, 1);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = misc_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_misc_winreg_Data_string_array,0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_data, 1);
+
+ return offset;
+}
+
+static int
+misc_dissect_winreg_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ int old_offset;
+ guint32 level = param;
+
+ old_offset = offset;
+ if (parent_tree) {
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1, "winreg_Data");
+ tree = proto_item_add_subtree(item, ett_misc_winreg_Data);
+ }
+
+ switch(level) {
+ case REG_NONE:
+ break;
+
+ case REG_SZ:
+ offset = misc_dissect_element_winreg_Data_string(tvb, offset, pinfo, tree, drep);
+ break;
+
+ case REG_EXPAND_SZ:
+ offset = misc_dissect_element_winreg_Data_string(tvb, offset, pinfo, tree, drep);
+ break;
+
+ case REG_BINARY:
+ offset = misc_dissect_element_winreg_Data_binary(tvb, offset, pinfo, tree, drep);
+ break;
+
+ case REG_DWORD:
+ offset = misc_dissect_element_winreg_Data_value(tvb, offset, pinfo, tree, drep);
+ break;
+
+ case REG_DWORD_BIG_ENDIAN:
+ offset = misc_dissect_element_winreg_Data_value(tvb, offset, pinfo, tree, drep);
+ break;
+
+ case REG_MULTI_SZ:
+ offset = misc_dissect_element_winreg_Data_string_array(tvb, offset, pinfo, tree, drep);
+ break;
+
+ default:
+ offset = misc_dissect_element_winreg_Data_data(tvb, offset, pinfo, tree, drep);
+ break;
+ }
+ proto_item_set_len(item, offset-old_offset);
+
+
+ return offset;
+}
+
+static dcerpc_sub_dissector misc_dissectors[] = {
+ { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_misc(void)
+{
+ static hf_register_info hf[] = {
+ { &hf_misc_GUID_time_mid,
+ { "Time Mid", "misc.GUID.time_mid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_winreg_Data_value,
+ { "Value", "misc.winreg_Data.value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_GUID_time_low,
+ { "Time Low", "misc.GUID.time_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_KRB5_EDATA_NTSTATUS_unknown2,
+ { "Unknown2", "misc.KRB5_EDATA_NTSTATUS.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_GUID_time_hi_and_version,
+ { "Time Hi And Version", "misc.GUID.time_hi_and_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_KRB5_EDATA_NTSTATUS_ntstatus,
+ { "Ntstatus", "misc.KRB5_EDATA_NTSTATUS.ntstatus", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
+ { &hf_misc_GUID_node,
+ { "Node", "misc.GUID.node", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_winreg_Data_string,
+ { "String", "misc.winreg_Data.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_misc_winreg_Data_data,
+ { "Data", "misc.winreg_Data.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_misc_winreg_Data_binary,
+ { "Binary", "misc.winreg_Data.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_misc_policy_handle_uuid,
+ { "Uuid", "misc.policy_handle.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_misc_KRB5_EDATA_NTSTATUS_unknown1,
+ { "Unknown1", "misc.KRB5_EDATA_NTSTATUS.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_policy_handle_handle_type,
+ { "Handle Type", "misc.policy_handle.handle_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_ndr_syntax_id_uuid,
+ { "Uuid", "misc.ndr_syntax_id.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_misc_opnum,
+ { "Operation", "misc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_GUID_clock_seq,
+ { "Clock Seq", "misc.GUID.clock_seq", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_misc_winreg_Data_string_array,
+ { "String Array", "misc.winreg_Data.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_misc_ndr_syntax_id_if_version,
+ { "If Version", "misc.ndr_syntax_id.if_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ };
+
+
+ static gint *ett[] = {
+ &ett_dcerpc_misc,
+ &ett_misc_GUID,
+ &ett_misc_ndr_syntax_id,
+ &ett_misc_policy_handle,
+ &ett_misc_KRB5_EDATA_NTSTATUS,
+ &ett_misc_winreg_Data,
+ };
+
+ proto_dcerpc_misc = proto_register_protocol("MISC (pidl)", "MISC", "misc");
+ proto_register_field_array(proto_dcerpc_misc, hf, array_length (hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_misc(void)
+{
+ dcerpc_init_uuid(proto_dcerpc_misc, ett_dcerpc_misc,
+ &uuid_dcerpc_misc, ver_dcerpc_misc,
+ misc_dissectors, hf_misc_opnum);
+}
diff --git a/epan/dissectors/packet-dcerpc-samr.c b/epan/dissectors/packet-dcerpc-samr.c
index dad263e551..be24f19868 100644
--- a/epan/dissectors/packet-dcerpc-samr.c
+++ b/epan/dissectors/packet-dcerpc-samr.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -2142,7 +2141,7 @@ cnf_dissect_sec_desc_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
dcerpc_call_value *dcv = NULL;
guint32 type=0;
struct access_mask_info *ami=NULL;
- di=(dcerpc_info *)pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -2183,7 +2182,7 @@ cnf_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
{
guint64 len;
dcerpc_info *di;
- di=(dcerpc_info *)pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -2265,7 +2264,7 @@ samr_dissect_struct_lsa_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_lsa_Strings);
}
@@ -2368,7 +2367,7 @@ samr_dissect_bitmap_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_samr_samr_AcctFlags);
}
@@ -2638,7 +2637,7 @@ samr_dissect_struct_SamEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_SamEntry);
}
@@ -2708,7 +2707,7 @@ samr_dissect_struct_SamArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_SamArray);
}
@@ -2800,7 +2799,7 @@ samr_dissect_bitmap_PasswordProperties(tvbuff_t *tvb _U_, int offset _U_, packet
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_samr_samr_PasswordProperties);
}
@@ -2947,7 +2946,7 @@ samr_dissect_struct_DomInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo1);
}
@@ -3088,7 +3087,7 @@ samr_dissect_struct_DomGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, pac
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation);
}
@@ -3151,7 +3150,7 @@ samr_dissect_struct_DomInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo3);
}
@@ -3194,7 +3193,7 @@ samr_dissect_struct_DomOEMInformation(tvbuff_t *tvb _U_, int offset _U_, packet_
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomOEMInformation);
}
@@ -3237,7 +3236,7 @@ samr_dissect_struct_DomInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo5);
}
@@ -3280,7 +3279,7 @@ samr_dissect_struct_DomInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo6);
}
@@ -3323,7 +3322,7 @@ samr_dissect_struct_DomInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo7);
}
@@ -3375,7 +3374,7 @@ samr_dissect_struct_DomInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo8);
}
@@ -3420,7 +3419,7 @@ samr_dissect_struct_DomInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo9);
}
@@ -3490,7 +3489,7 @@ samr_dissect_struct_DomGeneralInformation2(tvbuff_t *tvb _U_, int offset _U_, pa
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation2);
}
@@ -3557,7 +3556,7 @@ samr_dissect_struct_DomInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo12);
}
@@ -3622,7 +3621,7 @@ samr_dissect_struct_DomInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo13);
}
@@ -3877,7 +3876,7 @@ samr_dissect_struct_Ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_Ids);
}
@@ -3917,7 +3916,7 @@ samr_dissect_bitmap_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_samr_samr_GroupAttrs);
}
@@ -4043,7 +4042,7 @@ samr_dissect_struct_GroupInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAll);
}
@@ -4092,7 +4091,7 @@ samr_dissect_struct_GroupInfoAttributes(tvbuff_t *tvb _U_, int offset _U_, packe
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAttributes);
}
@@ -4135,7 +4134,7 @@ samr_dissect_struct_GroupInfoDescription(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoDescription);
}
@@ -4343,7 +4342,7 @@ samr_dissect_struct_RidTypeArray(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_RidTypeArray);
}
@@ -4408,7 +4407,7 @@ samr_dissect_struct_AliasInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfoAll);
}
@@ -4619,7 +4618,7 @@ samr_dissect_struct_UserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo1);
}
@@ -4697,7 +4696,7 @@ samr_dissect_struct_UserInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo2);
}
@@ -4771,7 +4770,7 @@ samr_dissect_struct_LogonHours(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_LogonHours);
}
@@ -4969,7 +4968,7 @@ samr_dissect_struct_UserInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo3);
}
@@ -5046,7 +5045,7 @@ samr_dissect_struct_UserInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo4);
}
@@ -5242,7 +5241,7 @@ samr_dissect_struct_UserInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo5);
}
@@ -5328,7 +5327,7 @@ samr_dissect_struct_UserInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo6);
}
@@ -5373,7 +5372,7 @@ samr_dissect_struct_UserInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo7);
}
@@ -5416,7 +5415,7 @@ samr_dissect_struct_UserInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo8);
}
@@ -5459,7 +5458,7 @@ samr_dissect_struct_UserInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pi
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo9);
}
@@ -5511,7 +5510,7 @@ samr_dissect_struct_UserInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo10);
}
@@ -5556,7 +5555,7 @@ samr_dissect_struct_UserInfo11(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo11);
}
@@ -5599,7 +5598,7 @@ samr_dissect_struct_UserInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo12);
}
@@ -5642,7 +5641,7 @@ samr_dissect_struct_UserInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo13);
}
@@ -5685,7 +5684,7 @@ samr_dissect_struct_UserInfo14(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo14);
}
@@ -5728,7 +5727,7 @@ samr_dissect_struct_UserInfo16(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo16);
}
@@ -5771,7 +5770,7 @@ samr_dissect_struct_UserInfo17(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo17);
}
@@ -5822,7 +5821,7 @@ samr_dissect_struct_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_Password);
}
@@ -5895,7 +5894,7 @@ samr_dissect_struct_UserInfo18(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo18);
}
@@ -5942,7 +5941,7 @@ samr_dissect_struct_UserInfo20(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo20);
}
@@ -6003,7 +6002,7 @@ samr_dissect_bitmap_FieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_samr_samr_FieldsPresent);
}
@@ -6599,7 +6598,7 @@ samr_dissect_struct_UserInfo21(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo21);
}
@@ -6716,7 +6715,7 @@ samr_dissect_struct_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_CryptPassword);
}
@@ -6764,7 +6763,7 @@ samr_dissect_struct_UserInfo23(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo23);
}
@@ -6816,7 +6815,7 @@ samr_dissect_struct_UserInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo24);
}
@@ -6865,7 +6864,7 @@ samr_dissect_struct_CryptPasswordEx(tvbuff_t *tvb _U_, int offset _U_, packet_in
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_CryptPasswordEx);
}
@@ -6913,7 +6912,7 @@ samr_dissect_struct_UserInfo25(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo25);
}
@@ -6965,7 +6964,7 @@ samr_dissect_struct_UserInfo26(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo26);
}
@@ -7341,7 +7340,7 @@ samr_dissect_struct_RidWithAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_i
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttribute);
}
@@ -7411,7 +7410,7 @@ samr_dissect_struct_RidWithAttributeArray(tvbuff_t *tvb _U_, int offset _U_, pac
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttributeArray);
}
@@ -7501,7 +7500,7 @@ samr_dissect_struct_DispEntryGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_i
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryGeneral);
}
@@ -7579,7 +7578,7 @@ samr_dissect_struct_DispInfoGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_in
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoGeneral);
}
@@ -7660,7 +7659,7 @@ samr_dissect_struct_DispEntryFull(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFull);
}
@@ -7736,7 +7735,7 @@ samr_dissect_struct_DispInfoFull(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFull);
}
@@ -7817,7 +7816,7 @@ samr_dissect_struct_DispEntryFullGroup(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFullGroup);
}
@@ -7893,7 +7892,7 @@ samr_dissect_struct_DispInfoFullGroups(tvbuff_t *tvb _U_, int offset _U_, packet
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFullGroups);
}
@@ -7947,7 +7946,7 @@ samr_dissect_struct_DispEntryAscii(tvbuff_t *tvb _U_, int offset _U_, packet_inf
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryAscii);
}
@@ -8017,7 +8016,7 @@ samr_dissect_struct_DispInfoAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoAscii);
}
@@ -8186,7 +8185,7 @@ samr_dissect_struct_PwInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_PwInfo);
}
@@ -8270,7 +8269,7 @@ samr_dissect_struct_ChangeReject(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ChangeReject);
}
@@ -8326,7 +8325,7 @@ samr_dissect_struct_ConnectInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo1);
}
@@ -8405,7 +8404,7 @@ samr_dissect_bitmap_ValidateFieldsPresent(tvbuff_t *tvb _U_, int offset _U_, pac
ALIGN_TO_4_BYTES;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
tree = proto_item_add_subtree(item,ett_samr_samr_ValidateFieldsPresent);
}
@@ -8571,7 +8570,7 @@ samr_dissect_struct_ValidationBlob(tvbuff_t *tvb _U_, int offset _U_, packet_inf
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ValidationBlob);
}
@@ -8686,7 +8685,7 @@ samr_dissect_struct_ValidatePasswordInfo(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordInfo);
}
@@ -8750,7 +8749,7 @@ samr_dissect_struct_ValidatePasswordRepCtr(tvbuff_t *tvb _U_, int offset _U_, pa
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRepCtr);
}
@@ -8906,7 +8905,7 @@ samr_dissect_struct_ValidatePasswordReq3(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq3);
}
@@ -8995,7 +8994,7 @@ samr_dissect_struct_ValidatePasswordReq2(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq2);
}
@@ -9055,7 +9054,7 @@ samr_dissect_struct_ValidatePasswordReq1(tvbuff_t *tvb _U_, int offset _U_, pack
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq1);
}
diff --git a/epan/dissectors/packet-dcerpc-winreg.c b/epan/dissectors/packet-dcerpc-winreg.c
index 046737d41f..c65d225c63 100644
--- a/epan/dissectors/packet-dcerpc-winreg.c
+++ b/epan/dissectors/packet-dcerpc-winreg.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
@@ -31,11 +30,16 @@
/* Ett declarations */
static gint ett_dcerpc_winreg = -1;
+static gint ett_winreg_security_secinfo = -1;
static gint ett_winreg_winreg_AccessMask = -1;
static gint ett_winreg_winreg_String = -1;
static gint ett_winreg_KeySecurityData = -1;
static gint ett_winreg_winreg_SecBuf = -1;
+static gint ett_winreg_winreg_KeyOptions = -1;
static gint ett_winreg_winreg_StringBuf = -1;
+static gint ett_winreg_winreg_ValNameBuf = -1;
+static gint ett_winreg_winreg_NotifyChangeType = -1;
+static gint ett_winreg_winreg_RestoreKeyFlags = -1;
static gint ett_winreg_KeySecurityAttribute = -1;
static gint ett_winreg_QueryMultipleValue = -1;
@@ -44,115 +48,152 @@ static gint ett_winreg_QueryMultipleValue = -1;
static gint hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS = -1;
static gint hf_winreg_winreg_NotifyChangeKeyValue_string2 = -1;
static gint hf_winreg_winreg_InitiateSystemShutdown_message = -1;
-static gint hf_winreg_KeySecurityData_size = -1;
static gint hf_winreg_winreg_String_name = -1;
static gint hf_winreg_winreg_InitiateSystemShutdownEx_message = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_reboot = -1;
static gint hf_winreg_winreg_EnumValue_enum_index = -1;
static gint hf_winreg_access_mask = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_key_handle = -1;
-static gint hf_winreg_winreg_LoadKey_keyname = -1;
-static gint hf_winreg_winreg_EnumKey_name = -1;
static gint hf_winreg_winreg_CreateKey_options = -1;
-static gint hf_winreg_winreg_EnumValue_type = -1;
static gint hf_winreg_winreg_InitiateSystemShutdownEx_timeout = -1;
-static gint hf_winreg_winreg_EnumKey_last_changed_time = -1;
-static gint hf_winreg_winreg_QueryValue_size = -1;
-static gint hf_winreg_winreg_EnumValue_size = -1;
static gint hf_winreg_handle = -1;
-static gint hf_winreg_winreg_SaveKey_sec_attrib = -1;
static gint hf_winreg_winreg_QueryInfoKey_max_valnamelen = -1;
static gint hf_winreg_winreg_SecBuf_length = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_reboot = -1;
-static gint hf_winreg_sd = -1;
-static gint hf_winreg_winreg_SaveKey_filename = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_do_reboot = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_handle = -1;
static gint hf_winreg_winreg_QueryMultipleValues_buffer_size = -1;
-static gint hf_winreg_winreg_QueryValue_data = -1;
static gint hf_winreg_winreg_CreateKey_new_handle = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_subkeysize = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_hostname = -1;
-static gint hf_winreg_KeySecurityData_data = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_needed = -1;
+static gint hf_winreg_QueryMultipleValue_ve_valuelen = -1;
static gint hf_winreg_KeySecurityAttribute_sec_data = -1;
-static gint hf_winreg_winreg_OpenKey_access_mask = -1;
-static gint hf_winreg_QueryMultipleValue_name = -1;
static gint hf_winreg_winreg_GetKeySecurity_sec_info = -1;
+static gint hf_winreg_winreg_SaveKeyEx_handle = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_num_values = -1;
+static gint hf_winreg_winreg_SetKeySecurity_sec_info = -1;
static gint hf_winreg_winreg_StringBuf_size = -1;
static gint hf_winreg_winreg_SecBuf_sd = -1;
static gint hf_winreg_winreg_QueryInfoKey_secdescsize = -1;
-static gint hf_winreg_winreg_OpenKey_keyname = -1;
-static gint hf_winreg_QueryMultipleValue_type = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY = -1;
static gint hf_winreg_winreg_SetValue_name = -1;
static gint hf_winreg_winreg_RestoreKey_flags = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree = -1;
+static gint hf_winreg_QueryMultipleValue_ve_type = -1;
static gint hf_winreg_winreg_CreateKey_secdesc = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_reserved = -1;
static gint hf_winreg_winreg_InitiateSystemShutdownEx_force_apps = -1;
static gint hf_winreg_winreg_SetValue_type = -1;
-static gint hf_winreg_winreg_CreateKey_name = -1;
-static gint hf_winreg_KeySecurityData_len = -1;
-static gint hf_winreg_winreg_String_name_len = -1;
static gint hf_winreg_opnum = -1;
-static gint hf_winreg_winreg_DeleteKey_key = -1;
static gint hf_winreg_winreg_EnumValue_name = -1;
static gint hf_winreg_winreg_LoadKey_filename = -1;
static gint hf_winreg_winreg_AccessMask_KEY_CREATE_LINK = -1;
static gint hf_winreg_winreg_DeleteValue_value = -1;
-static gint hf_winreg_system_name = -1;
-static gint hf_winreg_QueryMultipleValue_length = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_num_values = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_offered = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_values_in = -1;
static gint hf_winreg_winreg_AccessMask_KEY_NOTIFY = -1;
-static gint hf_winreg_KeySecurityAttribute_data_size = -1;
static gint hf_winreg_winreg_OpenKey_parent_handle = -1;
-static gint hf_winreg_winreg_StringBuf_name = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown2 = -1;
static gint hf_winreg_winreg_QueryInfoKey_num_subkeys = -1;
-static gint hf_winreg_sd_offset = -1;
static gint hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY = -1;
-static gint hf_winreg_winreg_StringBuf_length = -1;
+static gint hf_winreg_winreg_SaveKeyEx_sec_attrib = -1;
static gint hf_winreg_winreg_QueryInfoKey_last_changed_time = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK = -1;
static gint hf_winreg_winreg_OpenHKPD_access_mask = -1;
static gint hf_winreg_winreg_AbortSystemShutdown_server = -1;
static gint hf_winreg_winreg_QueryValue_type = -1;
static gint hf_winreg_sd_actual_size = -1;
-static gint hf_winreg_winreg_String_name_size = -1;
-static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown = -1;
-static gint hf_winreg_winreg_QueryValue_length = -1;
-static gint hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY = -1;
-static gint hf_winreg_winreg_OpenKey_unknown = -1;
-static gint hf_winreg_winreg_RestoreKey_filename = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_valbufsize = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_reason = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE = -1;
static gint hf_winreg_winreg_SecBuf_inherit = -1;
static gint hf_winreg_winreg_SetValue_size = -1;
-static gint hf_winreg_winreg_EnumValue_length = -1;
-static gint hf_winreg_winreg_QueryMultipleValues_values = -1;
-static gint hf_winreg_winreg_QueryInfoKey_max_subkeylen = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdown_timeout = -1;
-static gint hf_winreg_winreg_InitiateSystemShutdownEx_hostname = -1;
static gint hf_winreg_winreg_SaveKey_handle = -1;
-static gint hf_winreg_KeySecurityAttribute_inherit = -1;
-static gint hf_winreg_werror = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET = -1;
+static gint hf_winreg_winreg_ReplaceKey_handle = -1;
static gint hf_winreg_winreg_GetVersion_version = -1;
+static gint hf_winreg_winreg_ReplaceKey_old_file = -1;
static gint hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE = -1;
static gint hf_winreg_winreg_CreateKey_action_taken = -1;
static gint hf_winreg_winreg_QueryInfoKey_num_values = -1;
-static gint hf_winreg_winreg_EnumKey_keyclass = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME = -1;
static gint hf_winreg_winreg_AccessMask_KEY_SET_VALUE = -1;
static gint hf_winreg_winreg_EnumKey_enum_index = -1;
static gint hf_winreg_winreg_RestoreKey_handle = -1;
static gint hf_winreg_winreg_SetValue_data = -1;
-static gint hf_winreg_winreg_CreateKey_keyclass = -1;
static gint hf_winreg_winreg_InitiateSystemShutdown_force_apps = -1;
-static gint hf_winreg_winreg_EnumValue_value = -1;
static gint hf_winreg_winreg_NotifyChangeKeyValue_string1 = -1;
+static gint hf_winreg_winreg_SaveKeyEx_flags = -1;
static gint hf_winreg_winreg_QueryMultipleValues_buffer = -1;
-static gint hf_winreg_winreg_SetKeySecurity_access_mask = -1;
-static gint hf_winreg_winreg_QueryValue_value_name = -1;
static gint hf_winreg_winreg_QueryInfoKey_classname = -1;
static gint hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY = -1;
-static gint hf_winreg_winreg_OpenHKCU_access_mask = -1;
+static gint hf_winreg_winreg_ReplaceKey_subkey = -1;
static gint hf_winreg_sd_max_size = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_classlen = -1;
+static gint hf_winreg_winreg_ValNameBuf_length = -1;
static gint hf_winreg_winreg_NotifyChangeKeyValue_notify_filter = -1;
-static gint hf_winreg_QueryMultipleValue_offset = -1;
+static gint hf_winreg_winreg_UnLoadKey_subkey = -1;
+static gint hf_winreg_winreg_ReplaceKey_new_file = -1;
+static gint hf_winreg_winreg_SaveKeyEx_filename = -1;
+static gint hf_winreg_QueryMultipleValue_ve_valuename = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_key_handle = -1;
+static gint hf_winreg_KeySecurityData_size = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE = -1;
+static gint hf_winreg_winreg_EnumKey_name = -1;
+static gint hf_winreg_winreg_LoadKey_keyname = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_key_handle = -1;
+static gint hf_winreg_winreg_EnumValue_type = -1;
+static gint hf_winreg_winreg_EnumKey_last_changed_time = -1;
+static gint hf_winreg_winreg_EnumValue_size = -1;
+static gint hf_winreg_winreg_SaveKey_sec_attrib = -1;
+static gint hf_winreg_sd = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK = -1;
+static gint hf_winreg_winreg_OpenKey_options = -1;
+static gint hf_winreg_winreg_SaveKey_filename = -1;
+static gint hf_winreg_winreg_QueryValue_data = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_buffer = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_hostname = -1;
+static gint hf_winreg_winreg_UnLoadKey_handle = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_values_out = -1;
+static gint hf_winreg_KeySecurityData_data = -1;
+static gint hf_winreg_winreg_OpenKey_access_mask = -1;
+static gint hf_winreg_winreg_OpenKey_keyname = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_access_mask = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_key = -1;
+static gint hf_winreg_winreg_QueryValue_data_length = -1;
+static gint hf_winreg_KeySecurityData_len = -1;
+static gint hf_winreg_winreg_ValNameBuf_size = -1;
+static gint hf_winreg_winreg_CreateKey_name = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES = -1;
+static gint hf_winreg_winreg_String_name_len = -1;
+static gint hf_winreg_winreg_DeleteKey_key = -1;
+static gint hf_winreg_winreg_QueryValue_data_size = -1;
+static gint hf_winreg_system_name = -1;
+static gint hf_winreg_QueryMultipleValue_ve_valueptr = -1;
+static gint hf_winreg_KeySecurityAttribute_data_size = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_num_values = -1;
+static gint hf_winreg_winreg_StringBuf_name = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown2 = -1;
+static gint hf_winreg_sd_offset = -1;
+static gint hf_winreg_winreg_ValNameBuf_name = -1;
+static gint hf_winreg_winreg_StringBuf_length = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_values_in = -1;
+static gint hf_winreg_winreg_String_name_size = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY = -1;
+static gint hf_winreg_winreg_RestoreKey_filename = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_valbufsize = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_reason = -1;
+static gint hf_winreg_winreg_EnumValue_length = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_subkeylen = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_timeout = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_hostname = -1;
+static gint hf_winreg_KeySecurityAttribute_inherit = -1;
+static gint hf_winreg_werror = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_values_out = -1;
+static gint hf_winreg_winreg_EnumKey_keyclass = -1;
+static gint hf_winreg_winreg_CreateKey_keyclass = -1;
+static gint hf_winreg_winreg_EnumValue_value = -1;
+static gint hf_winreg_winreg_OpenHKCU_access_mask = -1;
+static gint hf_winreg_winreg_QueryValue_value_name = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH = -1;
static gint proto_dcerpc_winreg = -1;
/* Version information */
@@ -196,21 +237,6 @@ static const true_false_string winreg_AccessMask_KEY_WOW64_32KEY_tfs = {
"KEY_WOW64_32KEY is SET",
"KEY_WOW64_32KEY is NOT SET",
};
-const value_string winreg_winreg_Type_vals[] = {
- { REG_NONE, "REG_NONE" },
- { REG_SZ, "REG_SZ" },
- { REG_EXPAND_SZ, "REG_EXPAND_SZ" },
- { REG_BINARY, "REG_BINARY" },
- { REG_DWORD, "REG_DWORD" },
- { REG_DWORD_BIG_ENDIAN, "REG_DWORD_BIG_ENDIAN" },
- { REG_LINK, "REG_LINK" },
- { REG_MULTI_SZ, "REG_MULTI_SZ" },
- { REG_RESOURCE_LIST, "REG_RESOURCE_LIST" },
- { REG_FULL_RESOURCE_DESCRIPTOR, "REG_FULL_RESOURCE_DESCRIPTOR" },
- { REG_RESOURCE_REQUIREMENTS_LIST, "REG_RESOURCE_REQUIREMENTS_LIST" },
- { REG_QWORD, "REG_QWORD" },
-{ 0, NULL }
-};
static int winreg_dissect_element_String_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_String_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_String_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -223,6 +249,22 @@ static int winreg_dissect_element_KeySecurityData_len(tvbuff_t *tvb _U_, int off
static int winreg_dissect_element_SecBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SecBuf_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SecBuf_inherit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string winreg_KeyOptions_REG_OPTION_VOLATILE_tfs = {
+ "REG_OPTION_VOLATILE is SET",
+ "REG_OPTION_VOLATILE is NOT SET",
+};
+static const true_false_string winreg_KeyOptions_REG_OPTION_CREATE_LINK_tfs = {
+ "REG_OPTION_CREATE_LINK is SET",
+ "REG_OPTION_CREATE_LINK is NOT SET",
+};
+static const true_false_string winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE_tfs = {
+ "REG_OPTION_BACKUP_RESTORE is SET",
+ "REG_OPTION_BACKUP_RESTORE is NOT SET",
+};
+static const true_false_string winreg_KeyOptions_REG_OPTION_OPEN_LINK_tfs = {
+ "REG_OPTION_OPEN_LINK is SET",
+ "REG_OPTION_OPEN_LINK is NOT SET",
+};
const value_string winreg_winreg_CreateAction_vals[] = {
{ REG_ACTION_NONE, "REG_ACTION_NONE" },
{ REG_CREATED_NEW_KEY, "REG_CREATED_NEW_KEY" },
@@ -234,14 +276,51 @@ static int winreg_dissect_element_StringBuf_size(tvbuff_t *tvb _U_, int offset _
static int winreg_dissect_element_StringBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_StringBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_StringBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME_tfs = {
+ "REG_NOTIFY_CHANGE_NAME is SET",
+ "REG_NOTIFY_CHANGE_NAME is NOT SET",
+};
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES_tfs = {
+ "REG_NOTIFY_CHANGE_ATTRIBUTES is SET",
+ "REG_NOTIFY_CHANGE_ATTRIBUTES is NOT SET",
+};
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET_tfs = {
+ "REG_NOTIFY_CHANGE_LAST_SET is SET",
+ "REG_NOTIFY_CHANGE_LAST_SET is NOT SET",
+};
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY_tfs = {
+ "REG_NOTIFY_CHANGE_SECURITY is SET",
+ "REG_NOTIFY_CHANGE_SECURITY is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE_tfs = {
+ "REG_WHOLE_HIVE_VOLATILE is SET",
+ "REG_WHOLE_HIVE_VOLATILE is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_REFRESH_HIVE_tfs = {
+ "REG_REFRESH_HIVE is SET",
+ "REG_REFRESH_HIVE is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH_tfs = {
+ "REG_NO_LAZY_FLUSH is SET",
+ "REG_NO_LAZY_FLUSH is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_FORCE_RESTORE_tfs = {
+ "REG_FORCE_RESTORE is SET",
+ "REG_FORCE_RESTORE is NOT SET",
+};
static int winreg_dissect_element_KeySecurityAttribute_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_KeySecurityAttribute_sec_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_KeySecurityAttribute_inherit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValue_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valuename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valuename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valuelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valueptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKCR_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKCR_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKCR_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -334,7 +413,7 @@ static int winreg_dissect_element_NotifyChangeKeyValue_unknown2(tvbuff_t *tvb _U
static int winreg_dissect_element_OpenKey_parent_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenKey_parent_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenKey_keyname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_OpenKey_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenKey_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -346,8 +425,8 @@ static int winreg_dissect_element_QueryInfoKey_num_subkeys(tvbuff_t *tvb _U_, in
static int winreg_dissect_element_QueryInfoKey_num_subkeys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryInfoKey_max_subkeylen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryInfoKey_max_subkeylen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryInfoKey_max_subkeysize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryInfoKey_max_subkeysize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_classlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_classlen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryInfoKey_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryInfoKey_num_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryInfoKey_max_valnamelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -361,15 +440,24 @@ static int winreg_dissect_element_QueryInfoKey_last_changed_time_(tvbuff_t *tvb
static int winreg_dissect_element_QueryValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryValue_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryValue_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_new_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_new_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_old_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_old_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_RestoreKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_RestoreKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_RestoreKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -383,7 +471,7 @@ static int winreg_dissect_element_SaveKey_sec_attrib(tvbuff_t *tvb _U_, int offs
static int winreg_dissect_element_SaveKey_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetKeySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetKeySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_SetKeySecurity_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetKeySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetKeySecurity_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetKeySecurity_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -394,13 +482,17 @@ static int winreg_dissect_element_SetValue_data(tvbuff_t *tvb _U_, int offset _U
static int winreg_dissect_element_SetValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_SetValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdown_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdown_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdown_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdown_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdown_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdown_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_InitiateSystemShutdown_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_AbortSystemShutdown_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_AbortSystemShutdown_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_GetVersion_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -419,9 +511,12 @@ static int winreg_dissect_element_OpenHKDD_handle(tvbuff_t *tvb _U_, int offset
static int winreg_dissect_element_OpenHKDD_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryMultipleValues_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryMultipleValues_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValues_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValues_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_QueryMultipleValues_values__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryMultipleValues_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryMultipleValues_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_QueryMultipleValues_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -434,8 +529,15 @@ static int winreg_dissect_element_InitiateSystemShutdownEx_message(tvbuff_t *tvb
static int winreg_dissect_element_InitiateSystemShutdownEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdownEx_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdownEx_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
-static int winreg_dissect_element_InitiateSystemShutdownEx_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_InitiateSystemShutdownEx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_sec_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKPT_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKPT_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKPT_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
@@ -446,6 +548,29 @@ static int winreg_dissect_element_OpenHKPN_system_name_(tvbuff_t *tvb _U_, int o
static int winreg_dissect_element_OpenHKPN_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKPN_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
static int winreg_dissect_element_OpenHKPN_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_offered_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+ #include "packet-dcerpc-lsa.h"
static void
winreg_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 access)
{
@@ -469,7 +594,7 @@ winreg_dissect_element_KeySecurityData_data_(tvbuff_t *tvb, int offset, packet_i
{
guint32 len;
dcerpc_info *di;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -494,13 +619,6 @@ winreg_dissect_bitmap_AccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo,
&winreg_access_mask_info, NULL);
return offset;
}
-/* FIXME: pidl generates the wrong name for external symbols */
-static int
-winreg_dissect_struct_initshutdown_String(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param)
-{
- #include "packet-dcerpc-initshutdown.h"
- return initshutdown_dissect_struct_String(tvb, offset, pinfo, parent_tree, drep, hf_index, param);
-}
/* winreg_String :
* typedef [public,noejs] struct {
* [value(strlen_m_term(name)*2)] uint16 name_len;
@@ -536,6 +654,37 @@ cnf_dissect_winreg_String(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
/* IDL: bitmap { */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, 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, DREP_ENC_INTEGER(drep));
+ tree = proto_item_add_subtree(item,ett_winreg_security_secinfo);
+ }
+
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+ proto_item_append_text(item, ": ");
+
+ if (!flags)
+ proto_item_append_text(item, "(No values set)");
+
+ if (flags) {
+ proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+ }
+
+ return offset;
+}
+
+
+/* IDL: bitmap { */
/* IDL: KEY_QUERY_VALUE = 0x00001 , */
/* IDL: KEY_SET_VALUE = 0x00002 , */
/* IDL: KEY_CREATE_SUB_KEY = 0x00004 , */
@@ -547,36 +696,6 @@ cnf_dissect_winreg_String(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
/* IDL: } */
-/* IDL: enum { */
-/* IDL: REG_NONE=0, */
-/* IDL: REG_SZ=1, */
-/* IDL: REG_EXPAND_SZ=2, */
-/* IDL: REG_BINARY=3, */
-/* IDL: REG_DWORD=4, */
-/* IDL: REG_DWORD_BIG_ENDIAN=5, */
-/* IDL: REG_LINK=6, */
-/* IDL: REG_MULTI_SZ=7, */
-/* IDL: REG_RESOURCE_LIST=8, */
-/* IDL: REG_FULL_RESOURCE_DESCRIPTOR=9, */
-/* IDL: REG_RESOURCE_REQUIREMENTS_LIST=10, */
-/* IDL: REG_QWORD=11, */
-/* IDL: } */
-
-int
-winreg_dissect_enum_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
-{
- guint32 parameter=0;
- if(param){
- parameter=(guint32)*param;
- }
- offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
- if(param){
- *param=(guint32)parameter;
- }
- return offset;
-}
-
-
/* IDL: struct { */
/* IDL: [value(strlen_m_term(name)*2)] uint16 name_len; */
/* IDL: [value(strlen_m_term(name)*2)] uint16 name_size; */
@@ -623,6 +742,7 @@ winreg_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
ALIGN_TO_4_BYTES;
@@ -630,7 +750,7 @@ winreg_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_winreg_winreg_String);
}
@@ -643,6 +763,11 @@ winreg_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
return offset;
}
@@ -690,14 +815,15 @@ winreg_dissect_struct_KeySecurityData(tvbuff_t *tvb _U_, int offset _U_, packet_
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_winreg_KeySecurityData);
}
@@ -710,6 +836,11 @@ winreg_dissect_struct_KeySecurityData(tvbuff_t *tvb _U_, int offset _U_, packet_
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -749,14 +880,15 @@ winreg_dissect_struct_SecBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_winreg_winreg_SecBuf);
}
@@ -769,6 +901,78 @@ winreg_dissect_struct_SecBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pin
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: REG_OPTION_VOLATILE = 0x00000001 , */
+/* IDL: REG_OPTION_CREATE_LINK = 0x00000002 , */
+/* IDL: REG_OPTION_BACKUP_RESTORE = 0x00000004 , */
+/* IDL: REG_OPTION_OPEN_LINK = 0x00000008 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_KeyOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, 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, DREP_ENC_INTEGER(drep));
+ tree = proto_item_add_subtree(item,ett_winreg_winreg_KeyOptions);
+ }
+
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+ proto_item_append_text(item, ": ");
+
+ if (!flags)
+ proto_item_append_text(item, "(No values set)");
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000001 )){
+ proto_item_append_text(item, "REG_OPTION_VOLATILE");
+ if (flags & (~( 0x00000001 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000001 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000002 )){
+ proto_item_append_text(item, "REG_OPTION_CREATE_LINK");
+ if (flags & (~( 0x00000002 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000002 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000004 )){
+ proto_item_append_text(item, "REG_OPTION_BACKUP_RESTORE");
+ if (flags & (~( 0x00000004 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000004 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000008 )){
+ proto_item_append_text(item, "REG_OPTION_OPEN_LINK");
+ if (flags & (~( 0x00000008 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000008 ));
+
+ if (flags) {
+ proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+ }
+
return offset;
}
@@ -795,7 +999,7 @@ winreg_dissect_enum_CreateAction(tvbuff_t *tvb _U_, int offset _U_, packet_info
/* IDL: struct { */
-/* IDL: [value(strlen_m_term(name)*2)] uint16 length; */
+/* IDL: [value(strlen_m_term_null(name)*2)] uint16 length; */
/* IDL: uint16 size; */
/* IDL: [unique(1)] [length_is(length/2)] [charset(UTF16)] [size_is(size/2)] uint16 *name; */
/* IDL: } */
@@ -845,14 +1049,15 @@ winreg_dissect_struct_StringBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_winreg_winreg_StringBuf);
}
@@ -865,6 +1070,226 @@ winreg_dissect_struct_StringBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: [value(strlen_m_term(name)*2)] uint16 length; */
+/* IDL: uint16 size; */
+/* IDL: [unique(1)] [length_is(length/2)] [charset(UTF16)] [size_is(size/2)] uint16 *name; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_ValNameBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ValNameBuf_length, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ValNameBuf_size, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ValNameBuf_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_winreg_winreg_ValNameBuf_name);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ValNameBuf_name__);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ValNameBuf_name, 0);
+
+ return offset;
+}
+
+int
+winreg_dissect_struct_ValNameBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+ ALIGN_TO_5_BYTES;
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_winreg_winreg_ValNameBuf);
+ }
+
+ offset = winreg_dissect_element_ValNameBuf_length(tvb, offset, pinfo, tree, drep);
+
+ offset = winreg_dissect_element_ValNameBuf_size(tvb, offset, pinfo, tree, drep);
+
+ offset = winreg_dissect_element_ValNameBuf_name(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: REG_NOTIFY_CHANGE_NAME = 0x00000001 , */
+/* IDL: REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 , */
+/* IDL: REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 , */
+/* IDL: REG_NOTIFY_CHANGE_SECURITY = 0x00000008 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_NotifyChangeType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, 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, DREP_ENC_INTEGER(drep));
+ tree = proto_item_add_subtree(item,ett_winreg_winreg_NotifyChangeType);
+ }
+
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+ proto_item_append_text(item, ": ");
+
+ if (!flags)
+ proto_item_append_text(item, "(No values set)");
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000001 )){
+ proto_item_append_text(item, "REG_NOTIFY_CHANGE_NAME");
+ if (flags & (~( 0x00000001 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000001 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000002 )){
+ proto_item_append_text(item, "REG_NOTIFY_CHANGE_ATTRIBUTES");
+ if (flags & (~( 0x00000002 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000002 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000004 )){
+ proto_item_append_text(item, "REG_NOTIFY_CHANGE_LAST_SET");
+ if (flags & (~( 0x00000004 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000004 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000008 )){
+ proto_item_append_text(item, "REG_NOTIFY_CHANGE_SECURITY");
+ if (flags & (~( 0x00000008 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000008 ));
+
+ if (flags) {
+ proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+ }
+
+ return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: REG_WHOLE_HIVE_VOLATILE = 0x00000001 , */
+/* IDL: REG_REFRESH_HIVE = 0x00000002 , */
+/* IDL: REG_NO_LAZY_FLUSH = 0x00000004 , */
+/* IDL: REG_FORCE_RESTORE = 0x00000008 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_RestoreKeyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, 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, DREP_ENC_INTEGER(drep));
+ tree = proto_item_add_subtree(item,ett_winreg_winreg_RestoreKeyFlags);
+ }
+
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+ proto_item_append_text(item, ": ");
+
+ if (!flags)
+ proto_item_append_text(item, "(No values set)");
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000001 )){
+ proto_item_append_text(item, "REG_WHOLE_HIVE_VOLATILE");
+ if (flags & (~( 0x00000001 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000001 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000002 )){
+ proto_item_append_text(item, "REG_REFRESH_HIVE");
+ if (flags & (~( 0x00000002 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000002 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000004 )){
+ proto_item_append_text(item, "REG_NO_LAZY_FLUSH");
+ if (flags & (~( 0x00000004 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000004 ));
+
+ proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE, tvb, offset-4, 4, flags);
+ if (flags&( 0x00000008 )){
+ proto_item_append_text(item, "REG_FORCE_RESTORE");
+ if (flags & (~( 0x00000008 )))
+ proto_item_append_text(item, ", ");
+ }
+ flags&=(~( 0x00000008 ));
+
+ if (flags) {
+ proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+ }
+
return offset;
}
@@ -904,14 +1329,15 @@ winreg_dissect_struct_KeySecurityAttribute(tvbuff_t *tvb _U_, int offset _U_, pa
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_winreg_KeySecurityAttribute);
}
@@ -924,53 +1350,58 @@ winreg_dissect_struct_KeySecurityAttribute(tvbuff_t *tvb _U_, int offset _U_, pa
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
/* IDL: struct { */
-/* IDL: [unique(1)] winreg_String *name; */
-/* IDL: winreg_Type type; */
-/* IDL: uint32 offset; */
-/* IDL: uint32 length; */
+/* IDL: [unique(1)] winreg_ValNameBuf *ve_valuename; */
+/* IDL: uint32 ve_valuelen; */
+/* IDL: uint32 ve_valueptr; */
+/* IDL: winreg_Type ve_type; */
/* IDL: } */
static int
-winreg_dissect_element_QueryMultipleValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValue_ve_valuename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValue_name_, NDR_POINTER_UNIQUE, "Pointer to Name (winreg_String)",hf_winreg_QueryMultipleValue_name);
+ offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValue_ve_valuename_, NDR_POINTER_UNIQUE, "Pointer to Ve Valuename (winreg_ValNameBuf)",hf_winreg_QueryMultipleValue_ve_valuename);
return offset;
}
static int
-winreg_dissect_element_QueryMultipleValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValue_ve_valuename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_QueryMultipleValue_name);
+ offset = winreg_dissect_struct_ValNameBuf(tvb,offset,pinfo,tree,drep,hf_winreg_QueryMultipleValue_ve_valuename,0);
return offset;
}
static int
-winreg_dissect_element_QueryMultipleValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValue_ve_valuelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_enum_Type(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_type, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_ve_valuelen, 0);
return offset;
}
static int
-winreg_dissect_element_QueryMultipleValue_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValue_ve_valueptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_offset, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_ve_valueptr, 0);
return offset;
}
static int
-winreg_dissect_element_QueryMultipleValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValue_ve_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_length, 0);
+ offset=misc_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_ve_type, 0);
return offset;
}
@@ -980,28 +1411,34 @@ winreg_dissect_struct_QueryMultipleValue(tvbuff_t *tvb _U_, int offset _U_, pack
{
proto_item *item = NULL;
proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
- ALIGN_TO_4_BYTES;
+ ALIGN_TO_5_BYTES;
old_offset = offset;
if (parent_tree) {
- item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_winreg_QueryMultipleValue);
}
- offset = winreg_dissect_element_QueryMultipleValue_name(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryMultipleValue_ve_valuename(tvb, offset, pinfo, tree, drep);
- offset = winreg_dissect_element_QueryMultipleValue_type(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryMultipleValue_ve_valuelen(tvb, offset, pinfo, tree, drep);
- offset = winreg_dissect_element_QueryMultipleValue_offset(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryMultipleValue_ve_valueptr(tvb, offset, pinfo, tree, drep);
- offset = winreg_dissect_element_QueryMultipleValue_length(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryMultipleValue_ve_type(tvb, offset, pinfo, tree, drep);
proto_item_set_len(item, offset-old_offset);
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_5_BYTES;
+ }
+
return offset;
}
@@ -1456,7 +1893,7 @@ winreg_dissect_element_CreateKey_keyclass(tvbuff_t *tvb _U_, int offset _U_, pac
static int
winreg_dissect_element_CreateKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_CreateKey_options, 0);
+ offset = winreg_dissect_bitmap_KeyOptions(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_CreateKey_options, 0);
return offset;
}
@@ -1521,7 +1958,7 @@ winreg_dissect_element_CreateKey_action_taken_(tvbuff_t *tvb _U_, int offset _U_
/* IDL: [in] [ref] policy_handle *handle, */
/* IDL: [in] winreg_String name, */
/* IDL: [in] winreg_String keyclass, */
-/* IDL: [in] uint32 options, */
+/* IDL: [in] winreg_KeyOptions options, */
/* IDL: [in] winreg_AccessMask access_mask, */
/* IDL: [unique(1)] [in] winreg_SecBuf *secdesc, */
/* IDL: [out] [ref] policy_handle *new_handle, */
@@ -1824,7 +2261,7 @@ winreg_dissect_element_EnumValue_enum_index(tvbuff_t *tvb _U_, int offset _U_, p
static int
winreg_dissect_element_EnumValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_name_, NDR_POINTER_REF, "Pointer to Name (winreg_StringBuf)",hf_winreg_winreg_EnumValue_name);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_name_, NDR_POINTER_REF, "Pointer to Name (winreg_ValNameBuf)",hf_winreg_winreg_EnumValue_name);
return offset;
}
@@ -1832,7 +2269,7 @@ winreg_dissect_element_EnumValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_
static int
winreg_dissect_element_EnumValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_struct_StringBuf(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_EnumValue_name,0);
+ offset = winreg_dissect_struct_ValNameBuf(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_EnumValue_name,0);
return offset;
}
@@ -1848,7 +2285,7 @@ winreg_dissect_element_EnumValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_
static int
winreg_dissect_element_EnumValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_enum_Type(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_type, 0);
+ offset=misc_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_type, 0);
return offset;
}
@@ -1912,9 +2349,9 @@ winreg_dissect_element_EnumValue_length_(tvbuff_t *tvb _U_, int offset _U_, pack
/* IDL: WERROR winreg_EnumValue( */
/* IDL: [in] [ref] policy_handle *handle, */
/* IDL: [in] uint32 enum_index, */
-/* IDL: [out] [in] [ref] winreg_StringBuf *name, */
+/* IDL: [out] [in] [ref] winreg_ValNameBuf *name, */
/* IDL: [out] [unique(1)] [in] winreg_Type *type, */
-/* IDL: [out] [unique(1)] [in] [length_is(*length)] [size_is(*size)] uint8 *value, */
+/* IDL: [unique(1)] [out] [in] [range(0,0x4000000)] [length_is(length?*length:0)] [size_is(size?*size:0)] uint8 *value, */
/* IDL: [out] [unique(1)] [in] uint32 *size, */
/* IDL: [out] [unique(1)] [in] uint32 *length */
/* IDL: ); */
@@ -2196,7 +2633,7 @@ winreg_dissect_element_NotifyChangeKeyValue_watch_subtree(tvbuff_t *tvb _U_, int
static int
winreg_dissect_element_NotifyChangeKeyValue_notify_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_NotifyChangeKeyValue_notify_filter, 0);
+ offset = winreg_dissect_bitmap_NotifyChangeType(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_NotifyChangeKeyValue_notify_filter, 0);
return offset;
}
@@ -2236,7 +2673,7 @@ winreg_dissect_element_NotifyChangeKeyValue_unknown2(tvbuff_t *tvb _U_, int offs
/* IDL: WERROR winreg_NotifyChangeKeyValue( */
/* IDL: [in] [ref] policy_handle *handle, */
/* IDL: [in] uint8 watch_subtree, */
-/* IDL: [in] uint32 notify_filter, */
+/* IDL: [in] winreg_NotifyChangeType notify_filter, */
/* IDL: [in] uint32 unknown, */
/* IDL: [in] winreg_String string1, */
/* IDL: [in] winreg_String string2, */
@@ -2303,9 +2740,9 @@ winreg_dissect_element_OpenKey_keyname(tvbuff_t *tvb _U_, int offset _U_, packet
}
static int
-winreg_dissect_element_OpenKey_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_OpenKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenKey_unknown, 0);
+ offset = winreg_dissect_bitmap_KeyOptions(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenKey_options, 0);
return offset;
}
@@ -2337,7 +2774,7 @@ winreg_dissect_element_OpenKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet
/* IDL: WERROR winreg_OpenKey( */
/* IDL: [in] [ref] policy_handle *parent_handle, */
/* IDL: [in] winreg_String keyname, */
-/* IDL: [in] uint32 unknown, */
+/* IDL: [in] winreg_KeyOptions options, */
/* IDL: [in] winreg_AccessMask access_mask, */
/* IDL: [out] [ref] policy_handle *handle */
/* IDL: ); */
@@ -2367,7 +2804,7 @@ winreg_dissect_OpenKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *p
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_OpenKey_keyname(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_OpenKey_unknown(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_OpenKey_options(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_OpenKey_access_mask(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
@@ -2439,17 +2876,17 @@ winreg_dissect_element_QueryInfoKey_max_subkeylen_(tvbuff_t *tvb _U_, int offset
}
static int
-winreg_dissect_element_QueryInfoKey_max_subkeysize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryInfoKey_max_classlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_max_subkeysize_, NDR_POINTER_REF, "Pointer to Max Subkeysize (uint32)",hf_winreg_winreg_QueryInfoKey_max_subkeysize);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_max_classlen_, NDR_POINTER_REF, "Pointer to Max Classlen (uint32)",hf_winreg_winreg_QueryInfoKey_max_classlen);
return offset;
}
static int
-winreg_dissect_element_QueryInfoKey_max_subkeysize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryInfoKey_max_classlen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_max_subkeysize, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_max_classlen, 0);
return offset;
}
@@ -2539,7 +2976,7 @@ winreg_dissect_element_QueryInfoKey_last_changed_time_(tvbuff_t *tvb _U_, int of
/* IDL: [out] [in] [ref] winreg_String *classname, */
/* IDL: [out] [ref] uint32 *num_subkeys, */
/* IDL: [out] [ref] uint32 *max_subkeylen, */
-/* IDL: [out] [ref] uint32 *max_subkeysize, */
+/* IDL: [out] [ref] uint32 *max_classlen, */
/* IDL: [out] [ref] uint32 *num_values, */
/* IDL: [out] [ref] uint32 *max_valnamelen, */
/* IDL: [out] [ref] uint32 *max_valbufsize, */
@@ -2562,7 +2999,7 @@ winreg_dissect_QueryInfoKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_i
offset = winreg_dissect_element_QueryInfoKey_max_subkeylen(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_QueryInfoKey_max_subkeysize(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryInfoKey_max_classlen(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_QueryInfoKey_num_values(tvb, offset, pinfo, tree, drep);
@@ -2618,7 +3055,15 @@ winreg_dissect_element_QueryValue_handle_(tvbuff_t *tvb _U_, int offset _U_, pac
static int
winreg_dissect_element_QueryValue_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 2|PIDL_SET_COL_INFO, hf_winreg_winreg_QueryValue_value_name);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_value_name_, NDR_POINTER_REF, "Pointer to Value Name (winreg_String)",hf_winreg_winreg_QueryValue_value_name);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_QueryValue_value_name);
return offset;
}
@@ -2634,7 +3079,7 @@ winreg_dissect_element_QueryValue_type(tvbuff_t *tvb _U_, int offset _U_, packet
static int
winreg_dissect_element_QueryValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_enum_Type(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_type, 0);
+ offset=misc_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_type, 0);
return offset;
}
@@ -2664,44 +3109,44 @@ winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_, pack
}
static int
-winreg_dissect_element_QueryValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryValue_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_size_, NDR_POINTER_UNIQUE, "Pointer to Size (uint32)",hf_winreg_winreg_QueryValue_size);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data_size_, NDR_POINTER_UNIQUE, "Pointer to Data Size (uint32)",hf_winreg_winreg_QueryValue_data_size);
return offset;
}
static int
-winreg_dissect_element_QueryValue_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryValue_data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_size, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_data_size, 0);
return offset;
}
static int
-winreg_dissect_element_QueryValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryValue_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_length_, NDR_POINTER_UNIQUE, "Pointer to Length (uint32)",hf_winreg_winreg_QueryValue_length);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data_length_, NDR_POINTER_UNIQUE, "Pointer to Data Length (uint32)",hf_winreg_winreg_QueryValue_data_length);
return offset;
}
static int
-winreg_dissect_element_QueryValue_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryValue_data_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_length, 0);
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_data_length, 0);
return offset;
}
/* IDL: WERROR winreg_QueryValue( */
/* IDL: [in] [ref] policy_handle *handle, */
-/* IDL: [in] winreg_String value_name, */
-/* IDL: [unique(1)] [out] [in] winreg_Type *type, */
-/* IDL: [unique(1)] [out] [in] [length_is(*length)] [size_is(*size)] uint8 *data, */
-/* IDL: [unique(1)] [out] [in] uint32 *size, */
-/* IDL: [unique(1)] [out] [in] uint32 *length */
+/* IDL: [in] [ref] winreg_String *value_name, */
+/* IDL: [out] [unique(1)] [in] winreg_Type *type, */
+/* IDL: [unique(1)] [out] [in] [range(0,0x4000000)] [length_is(data_length?*data_length:0)] [size_is(data_size?*data_size:0)] uint8 *data, */
+/* IDL: [out] [unique(1)] [in] uint32 *data_size, */
+/* IDL: [out] [unique(1)] [in] uint32 *data_length */
/* IDL: ); */
static int
@@ -2716,10 +3161,10 @@ winreg_dissect_QueryValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_inf
offset = winreg_dissect_element_QueryValue_data(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_QueryValue_size(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryValue_data_size(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_QueryValue_length(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryValue_data_length(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
@@ -2742,15 +3187,82 @@ winreg_dissect_QueryValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_QueryValue_data(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_QueryValue_size(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryValue_data_size(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_QueryValue_length(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryValue_data_length(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
+static int
+winreg_dissect_element_ReplaceKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_ReplaceKey_handle);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ReplaceKey_handle, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_subkey_, NDR_POINTER_REF, "Pointer to Subkey (winreg_String)",hf_winreg_winreg_ReplaceKey_subkey);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_ReplaceKey_subkey);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_new_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_new_file_, NDR_POINTER_REF, "Pointer to New File (winreg_String)",hf_winreg_winreg_ReplaceKey_new_file);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_new_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_ReplaceKey_new_file);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_old_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_old_file_, NDR_POINTER_REF, "Pointer to Old File (winreg_String)",hf_winreg_winreg_ReplaceKey_old_file);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_old_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_ReplaceKey_old_file);
+
+ return offset;
+}
+
/* IDL: WERROR winreg_ReplaceKey( */
-/* IDL: */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *subkey, */
+/* IDL: [in] [ref] winreg_String *new_file, */
+/* IDL: [in] [ref] winreg_String *old_file */
/* IDL: ); */
static int
@@ -2771,6 +3283,14 @@ static int
winreg_dissect_ReplaceKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
pinfo->dcerpc_procedure_name="ReplaceKey";
+ offset = winreg_dissect_element_ReplaceKey_handle(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_ReplaceKey_subkey(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_ReplaceKey_new_file(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_ReplaceKey_old_file(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
@@ -2809,7 +3329,7 @@ winreg_dissect_element_RestoreKey_filename_(tvbuff_t *tvb _U_, int offset _U_, p
static int
winreg_dissect_element_RestoreKey_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_RestoreKey_flags, 0);
+ offset = winreg_dissect_bitmap_RestoreKeyFlags(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_RestoreKey_flags, 0);
return offset;
}
@@ -2817,7 +3337,7 @@ winreg_dissect_element_RestoreKey_flags(tvbuff_t *tvb _U_, int offset _U_, packe
/* IDL: WERROR winreg_RestoreKey( */
/* IDL: [in] [ref] policy_handle *handle, */
/* IDL: [in] [ref] winreg_String *filename, */
-/* IDL: [in] uint32 flags */
+/* IDL: [in] winreg_RestoreKeyFlags flags */
/* IDL: ); */
static int
@@ -2945,9 +3465,9 @@ winreg_dissect_element_SetKeySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_,
}
static int
-winreg_dissect_element_SetKeySecurity_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_SetKeySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SetKeySecurity_access_mask, 0);
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_GetKeySecurity_sec_info, NULL);
return offset;
}
@@ -2970,7 +3490,7 @@ winreg_dissect_element_SetKeySecurity_sd_(tvbuff_t *tvb _U_, int offset _U_, pac
/* IDL: WERROR winreg_SetKeySecurity( */
/* IDL: [in] [ref] policy_handle *handle, */
-/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [in] security_secinfo sec_info, */
/* IDL: [in] [ref] KeySecurityData *sd */
/* IDL: ); */
@@ -2994,7 +3514,7 @@ winreg_dissect_SetKeySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_
pinfo->dcerpc_procedure_name="SetKeySecurity";
offset = winreg_dissect_element_SetKeySecurity_handle(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_SetKeySecurity_access_mask(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_SetKeySecurity_sec_info(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_SetKeySecurity_sd(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
@@ -3028,7 +3548,7 @@ winreg_dissect_element_SetValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_i
static int
winreg_dissect_element_SetValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_enum_Type(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SetValue_type, 0);
+ offset=misc_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SetValue_type, 0);
return offset;
}
@@ -3104,8 +3624,41 @@ winreg_dissect_SetValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *
return offset;
}
+static int
+winreg_dissect_element_UnLoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_UnLoadKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_UnLoadKey_handle);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_UnLoadKey_handle, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_UnLoadKey_subkey_, NDR_POINTER_REF, "Pointer to Subkey (winreg_String)",hf_winreg_winreg_UnLoadKey_subkey);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_UnLoadKey_subkey);
+
+ return offset;
+}
+
/* IDL: WERROR winreg_UnLoadKey( */
-/* IDL: */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *subkey */
/* IDL: ); */
static int
@@ -3126,6 +3679,10 @@ static int
winreg_dissect_UnLoadKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
pinfo->dcerpc_procedure_name="UnLoadKey";
+ offset = winreg_dissect_element_UnLoadKey_handle(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_UnLoadKey_subkey(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
@@ -3148,7 +3705,7 @@ winreg_dissect_element_InitiateSystemShutdown_hostname_(tvbuff_t *tvb _U_, int o
static int
winreg_dissect_element_InitiateSystemShutdown_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdown_message_, NDR_POINTER_UNIQUE, "Pointer to Message (initshutdown_String)",hf_winreg_winreg_InitiateSystemShutdown_message);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdown_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_winreg_winreg_InitiateSystemShutdown_message);
return offset;
}
@@ -3156,7 +3713,7 @@ winreg_dissect_element_InitiateSystemShutdown_message(tvbuff_t *tvb _U_, int off
static int
winreg_dissect_element_InitiateSystemShutdown_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_struct_initshutdown_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_InitiateSystemShutdown_message,0);
+ offset=lsarpc_dissect_struct_lsa_StringLarge(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_message, 0);
return offset;
}
@@ -3178,19 +3735,19 @@ winreg_dissect_element_InitiateSystemShutdown_force_apps(tvbuff_t *tvb _U_, int
}
static int
-winreg_dissect_element_InitiateSystemShutdown_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_InitiateSystemShutdown_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_reboot, 0);
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_do_reboot, 0);
return offset;
}
/* IDL: WERROR winreg_InitiateSystemShutdown( */
/* IDL: [unique(1)] [in] uint16 *hostname, */
-/* IDL: [unique(1)] [in] initshutdown_String *message, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
/* IDL: [in] uint32 timeout, */
/* IDL: [in] uint8 force_apps, */
-/* IDL: [in] uint8 reboot */
+/* IDL: [in] uint8 do_reboot */
/* IDL: ); */
static int
@@ -3219,7 +3776,7 @@ winreg_dissect_InitiateSystemShutdown_request(tvbuff_t *tvb _U_, int offset _U_,
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_InitiateSystemShutdown_force_apps(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_InitiateSystemShutdown_reboot(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_InitiateSystemShutdown_do_reboot(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
@@ -3495,25 +4052,49 @@ winreg_dissect_element_QueryMultipleValues_key_handle_(tvbuff_t *tvb _U_, int of
}
static int
-winreg_dissect_element_QueryMultipleValues_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValues_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_, NDR_POINTER_REF, "Pointer to Values (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues_values);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_in_, NDR_POINTER_REF, "Pointer to Values In (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues_values_in);
return offset;
}
static int
-winreg_dissect_element_QueryMultipleValues_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValues_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values__);
+ offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_in__);
return offset;
}
static int
-winreg_dissect_element_QueryMultipleValues_values__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_QueryMultipleValues_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues_values,0);
+ offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues_values_in,0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_out_, NDR_POINTER_REF, "Pointer to Values Out (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues_values_out);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_out__);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues_values_out,0);
return offset;
}
@@ -3568,9 +4149,10 @@ winreg_dissect_element_QueryMultipleValues_buffer_size_(tvbuff_t *tvb _U_, int o
/* IDL: WERROR winreg_QueryMultipleValues( */
/* IDL: [in] [ref] policy_handle *key_handle, */
-/* IDL: [out] [in] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values, */
+/* IDL: [in] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_in, */
+/* IDL: [out] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_out, */
/* IDL: [in] uint32 num_values, */
-/* IDL: [unique(1)] [out] [in] [length_is(*buffer_size)] [size_is(*buffer_size)] uint8 *buffer, */
+/* IDL: [out] [unique(1)] [in] [length_is(*buffer_size)] [size_is(*buffer_size)] uint8 *buffer, */
/* IDL: [out] [in] [ref] uint32 *buffer_size */
/* IDL: ); */
@@ -3580,7 +4162,7 @@ winreg_dissect_QueryMultipleValues_response(tvbuff_t *tvb _U_, int offset _U_, p
guint32 status;
pinfo->dcerpc_procedure_name="QueryMultipleValues";
- offset = winreg_dissect_element_QueryMultipleValues_values(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryMultipleValues_values_out(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_QueryMultipleValues_buffer(tvb, offset, pinfo, tree, drep);
@@ -3603,7 +4185,7 @@ winreg_dissect_QueryMultipleValues_request(tvbuff_t *tvb _U_, int offset _U_, pa
pinfo->dcerpc_procedure_name="QueryMultipleValues";
offset = winreg_dissect_element_QueryMultipleValues_key_handle(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_QueryMultipleValues_values(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_QueryMultipleValues_values_in(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_QueryMultipleValues_num_values(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
@@ -3633,7 +4215,7 @@ winreg_dissect_element_InitiateSystemShutdownEx_hostname_(tvbuff_t *tvb _U_, int
static int
winreg_dissect_element_InitiateSystemShutdownEx_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdownEx_message_, NDR_POINTER_UNIQUE, "Pointer to Message (initshutdown_String)",hf_winreg_winreg_InitiateSystemShutdownEx_message);
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdownEx_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_winreg_winreg_InitiateSystemShutdownEx_message);
return offset;
}
@@ -3641,7 +4223,7 @@ winreg_dissect_element_InitiateSystemShutdownEx_message(tvbuff_t *tvb _U_, int o
static int
winreg_dissect_element_InitiateSystemShutdownEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = winreg_dissect_struct_initshutdown_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_InitiateSystemShutdownEx_message,0);
+ offset=lsarpc_dissect_struct_lsa_StringLarge(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_message, 0);
return offset;
}
@@ -3663,9 +4245,9 @@ winreg_dissect_element_InitiateSystemShutdownEx_force_apps(tvbuff_t *tvb _U_, in
}
static int
-winreg_dissect_element_InitiateSystemShutdownEx_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+winreg_dissect_element_InitiateSystemShutdownEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_reboot, 0);
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot, 0);
return offset;
}
@@ -3680,10 +4262,10 @@ winreg_dissect_element_InitiateSystemShutdownEx_reason(tvbuff_t *tvb _U_, int of
/* IDL: WERROR winreg_InitiateSystemShutdownEx( */
/* IDL: [unique(1)] [in] uint16 *hostname, */
-/* IDL: [unique(1)] [in] initshutdown_String *message, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
/* IDL: [in] uint32 timeout, */
/* IDL: [in] uint8 force_apps, */
-/* IDL: [in] uint8 reboot, */
+/* IDL: [in] uint8 do_reboot, */
/* IDL: [in] uint32 reason */
/* IDL: ); */
@@ -3713,15 +4295,74 @@ winreg_dissect_InitiateSystemShutdownEx_request(tvbuff_t *tvb _U_, int offset _U
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_InitiateSystemShutdownEx_force_apps(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
- offset = winreg_dissect_element_InitiateSystemShutdownEx_reboot(tvb, offset, pinfo, tree, drep);
+ offset = winreg_dissect_element_InitiateSystemShutdownEx_do_reboot(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
offset = winreg_dissect_element_InitiateSystemShutdownEx_reason(tvb, offset, pinfo, tree, drep);
offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
+static int
+winreg_dissect_element_SaveKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKeyEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_SaveKeyEx_handle);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SaveKeyEx_handle, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKeyEx_filename_, NDR_POINTER_REF, "Pointer to Filename (winreg_String)",hf_winreg_winreg_SaveKeyEx_filename);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_SaveKeyEx_filename);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_sec_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKeyEx_sec_attrib_, NDR_POINTER_UNIQUE, "Pointer to Sec Attrib (KeySecurityAttribute)",hf_winreg_winreg_SaveKeyEx_sec_attrib);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = winreg_dissect_struct_KeySecurityAttribute(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SaveKeyEx_sec_attrib,0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SaveKeyEx_flags, 0);
+
+ return offset;
+}
+
/* IDL: WERROR winreg_SaveKeyEx( */
-/* IDL: */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *filename, */
+/* IDL: [unique(1)] [in] KeySecurityAttribute *sec_attrib, */
+/* IDL: [in] uint32 flags */
/* IDL: ); */
static int
@@ -3742,6 +4383,14 @@ static int
winreg_dissect_SaveKeyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
pinfo->dcerpc_procedure_name="SaveKeyEx";
+ offset = winreg_dissect_element_SaveKeyEx_handle(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_SaveKeyEx_filename(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_SaveKeyEx_sec_attrib(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_SaveKeyEx_flags(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
@@ -3893,8 +4542,142 @@ winreg_dissect_OpenHKPN_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *
return offset;
}
+static int
+winreg_dissect_element_QueryMultipleValues2_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_key_handle_, NDR_POINTER_REF, "Pointer to Key Handle (policy_handle)",hf_winreg_winreg_QueryMultipleValues2_key_handle);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_key_handle, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_in_, NDR_POINTER_REF, "Pointer to Values In (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues2_values_in);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_in__);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues2_values_in,0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_out_, NDR_POINTER_REF, "Pointer to Values Out (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues2_values_out);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_out__);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues2_values_out,0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_num_values, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_winreg_winreg_QueryMultipleValues2_buffer);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_buffer__);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_buffer, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_offered_, NDR_POINTER_REF, "Pointer to Offered (uint32)",hf_winreg_winreg_QueryMultipleValues2_offered);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_offered_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_offered, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_winreg_winreg_QueryMultipleValues2_needed);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_needed, 0);
+
+ return offset;
+}
+
/* IDL: WERROR winreg_QueryMultipleValues2( */
-/* IDL: */
+/* IDL: [in] [ref] policy_handle *key_handle, */
+/* IDL: [in] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_in, */
+/* IDL: [out] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_out, */
+/* IDL: [in] uint32 num_values, */
+/* IDL: [out] [unique(1)] [in] [length_is(*offered)] [size_is(*offered)] uint8 *buffer, */
+/* IDL: [in] [ref] uint32 *offered, */
+/* IDL: [out] [ref] uint32 *needed */
/* IDL: ); */
static int
@@ -3903,6 +4686,15 @@ winreg_dissect_QueryMultipleValues2_response(tvbuff_t *tvb _U_, int offset _U_,
guint32 status;
pinfo->dcerpc_procedure_name="QueryMultipleValues2";
+ offset = winreg_dissect_element_QueryMultipleValues2_values_out(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+ offset = winreg_dissect_element_QueryMultipleValues2_buffer(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+ offset = winreg_dissect_element_QueryMultipleValues2_needed(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
if (status != 0)
@@ -3915,6 +4707,100 @@ static int
winreg_dissect_QueryMultipleValues2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
pinfo->dcerpc_procedure_name="QueryMultipleValues2";
+ offset = winreg_dissect_element_QueryMultipleValues2_key_handle(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_QueryMultipleValues2_values_in(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_QueryMultipleValues2_num_values(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_QueryMultipleValues2_buffer(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_QueryMultipleValues2_offered(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_DeleteKeyEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_DeleteKeyEx_handle);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_DeleteKeyEx_handle, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_DeleteKeyEx_key_, NDR_POINTER_REF, "Pointer to Key (winreg_String)",hf_winreg_winreg_DeleteKeyEx_key);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset=cnf_dissect_winreg_String(tvb, offset, pinfo, tree, drep, 0, hf_winreg_winreg_DeleteKeyEx_key);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_DeleteKeyEx_access_mask, 0);
+
+ return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_DeleteKeyEx_reserved, 0);
+
+ return offset;
+}
+
+/* IDL: WERROR winreg_DeleteKeyEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *key, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [in] uint32 reserved */
+/* IDL: ); */
+
+static int
+winreg_dissect_DeleteKeyEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ guint32 status;
+
+ pinfo->dcerpc_procedure_name="DeleteKeyEx";
+ offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+ if (status != 0)
+ col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+ return offset;
+}
+
+static int
+winreg_dissect_DeleteKeyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ pinfo->dcerpc_procedure_name="DeleteKeyEx";
+ offset = winreg_dissect_element_DeleteKeyEx_handle(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_DeleteKeyEx_key(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_DeleteKeyEx_access_mask(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ offset = winreg_dissect_element_DeleteKeyEx_reserved(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
return offset;
}
@@ -3990,6 +4876,8 @@ static dcerpc_sub_dissector winreg_dissectors[] = {
winreg_dissect_OpenHKPN_request, winreg_dissect_OpenHKPN_response},
{ 34, "QueryMultipleValues2",
winreg_dissect_QueryMultipleValues2_request, winreg_dissect_QueryMultipleValues2_response},
+ { 35, "DeleteKeyEx",
+ winreg_dissect_DeleteKeyEx_request, winreg_dissect_DeleteKeyEx_response},
{ 0, NULL, NULL, NULL }
};
@@ -4002,102 +4890,72 @@ void proto_register_dcerpc_winreg(void)
{ "String2", "winreg.winreg_NotifyChangeKeyValue.string2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_InitiateSystemShutdown_message,
{ "Message", "winreg.winreg_InitiateSystemShutdown.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_KeySecurityData_size,
- { "Size", "winreg.KeySecurityData.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_String_name,
{ "Name", "winreg.winreg_String.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_InitiateSystemShutdownEx_message,
{ "Message", "winreg.winreg_InitiateSystemShutdownEx.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_InitiateSystemShutdown_reboot,
- { "Reboot", "winreg.winreg_InitiateSystemShutdown.reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_EnumValue_enum_index,
{ "Enum Index", "winreg.winreg_EnumValue.enum_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_access_mask,
{ "Access Mask", "winreg.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryMultipleValues_key_handle,
- { "Key Handle", "winreg.winreg_QueryMultipleValues.key_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_LoadKey_keyname,
- { "Keyname", "winreg.winreg_LoadKey.keyname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumKey_name,
- { "Name", "winreg.winreg_EnumKey.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_CreateKey_options,
- { "Options", "winreg.winreg_CreateKey.options", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumValue_type,
- { "Type", "winreg.winreg_EnumValue.type", FT_UINT32, BASE_DEC, VALS(winreg_winreg_Type_vals), 0, NULL, HFILL }},
+ { "Options", "winreg.winreg_CreateKey.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_InitiateSystemShutdownEx_timeout,
{ "Timeout", "winreg.winreg_InitiateSystemShutdownEx.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumKey_last_changed_time,
- { "Last Changed Time", "winreg.winreg_EnumKey.last_changed_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryValue_size,
- { "Size", "winreg.winreg_QueryValue.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumValue_size,
- { "Size", "winreg.winreg_EnumValue.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_handle,
{ "Handle", "winreg.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_SaveKey_sec_attrib,
- { "Sec Attrib", "winreg.winreg_SaveKey.sec_attrib", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryInfoKey_max_valnamelen,
{ "Max Valnamelen", "winreg.winreg_QueryInfoKey.max_valnamelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_SecBuf_length,
{ "Length", "winreg.winreg_SecBuf.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_InitiateSystemShutdownEx_reboot,
- { "Reboot", "winreg.winreg_InitiateSystemShutdownEx.reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_sd,
- { "KeySecurityData", "winreg.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_SaveKey_filename,
- { "Filename", "winreg.winreg_SaveKey.filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_InitiateSystemShutdown_do_reboot,
+ { "Do Reboot", "winreg.winreg_InitiateSystemShutdown.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_DeleteKeyEx_handle,
+ { "Handle", "winreg.winreg_DeleteKeyEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryMultipleValues_buffer_size,
{ "Buffer Size", "winreg.winreg_QueryMultipleValues.buffer_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryValue_data,
- { "Data", "winreg.winreg_QueryValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_CreateKey_new_handle,
{ "New Handle", "winreg.winreg_CreateKey.new_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryInfoKey_max_subkeysize,
- { "Max Subkeysize", "winreg.winreg_QueryInfoKey.max_subkeysize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_InitiateSystemShutdown_hostname,
- { "Hostname", "winreg.winreg_InitiateSystemShutdown.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_KeySecurityData_data,
- { "Data", "winreg.KeySecurityData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_needed,
+ { "Needed", "winreg.winreg_QueryMultipleValues2.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_QueryMultipleValue_ve_valuelen,
+ { "Ve Valuelen", "winreg.QueryMultipleValue.ve_valuelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_KeySecurityAttribute_sec_data,
{ "Sec Data", "winreg.KeySecurityAttribute.sec_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_OpenKey_access_mask,
- { "Access Mask", "winreg.winreg_OpenKey.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_winreg_QueryMultipleValue_name,
- { "Name", "winreg.QueryMultipleValue.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_GetKeySecurity_sec_info,
- { "Sec Info", "winreg.winreg_GetKeySecurity.sec_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { "Sec Info", "winreg.winreg_GetKeySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SaveKeyEx_handle,
+ { "Handle", "winreg.winreg_SaveKeyEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE,
+ { "Reg Option Volatile", "winreg.winreg_KeyOptions.REG_OPTION_VOLATILE", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_VOLATILE_tfs), ( 0x00000001 ), NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_num_values,
+ { "Num Values", "winreg.winreg_QueryMultipleValues2.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SetKeySecurity_sec_info,
+ { "Sec Info", "winreg.winreg_SetKeySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_StringBuf_size,
{ "Size", "winreg.winreg_StringBuf.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_SecBuf_sd,
{ "Sd", "winreg.winreg_SecBuf.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryInfoKey_secdescsize,
{ "Secdescsize", "winreg.winreg_QueryInfoKey.secdescsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_OpenKey_keyname,
- { "Keyname", "winreg.winreg_OpenKey.keyname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_QueryMultipleValue_type,
- { "Type", "winreg.QueryMultipleValue.type", FT_UINT32, BASE_DEC, VALS(winreg_winreg_Type_vals), 0, NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY,
+ { "Reg Notify Change Security", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_SECURITY", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY_tfs), ( 0x00000008 ), NULL, HFILL }},
{ &hf_winreg_winreg_SetValue_name,
{ "Name", "winreg.winreg_SetValue.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_RestoreKey_flags,
- { "Flags", "winreg.winreg_RestoreKey.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree,
- { "Watch Subtree", "winreg.winreg_NotifyChangeKeyValue.watch_subtree", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Flags", "winreg.winreg_RestoreKey.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_QueryMultipleValue_ve_type,
+ { "Ve Type", "winreg.QueryMultipleValue.ve_type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_CreateKey_secdesc,
{ "Secdesc", "winreg.winreg_CreateKey.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_DeleteKeyEx_reserved,
+ { "Reserved", "winreg.winreg_DeleteKeyEx.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_InitiateSystemShutdownEx_force_apps,
{ "Force Apps", "winreg.winreg_InitiateSystemShutdownEx.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_SetValue_type,
- { "Type", "winreg.winreg_SetValue.type", FT_UINT32, BASE_DEC, VALS(winreg_winreg_Type_vals), 0, NULL, HFILL }},
- { &hf_winreg_winreg_CreateKey_name,
- { "Name", "winreg.winreg_CreateKey.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_KeySecurityData_len,
- { "Len", "winreg.KeySecurityData.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_String_name_len,
- { "Name Len", "winreg.winreg_String.name_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Type", "winreg.winreg_SetValue.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_opnum,
{ "Operation", "winreg.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_DeleteKey_key,
- { "Key", "winreg.winreg_DeleteKey.key", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_EnumValue_name,
{ "Name", "winreg.winreg_EnumValue.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_LoadKey_filename,
@@ -4106,86 +4964,58 @@ void proto_register_dcerpc_winreg(void)
{ "Key Create Link", "winreg.winreg_AccessMask.KEY_CREATE_LINK", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_LINK_tfs), ( 0x00020 ), NULL, HFILL }},
{ &hf_winreg_winreg_DeleteValue_value,
{ "Value", "winreg.winreg_DeleteValue.value", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_system_name,
- { "System Name", "winreg.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_QueryMultipleValue_length,
- { "Length", "winreg.QueryMultipleValue.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryMultipleValues_num_values,
- { "Num Values", "winreg.winreg_QueryMultipleValues.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_offered,
+ { "Offered", "winreg.winreg_QueryMultipleValues2.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues_values_in,
+ { "Values In", "winreg.winreg_QueryMultipleValues.values_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_AccessMask_KEY_NOTIFY,
{ "Key Notify", "winreg.winreg_AccessMask.KEY_NOTIFY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_NOTIFY_tfs), ( 0x00010 ), NULL, HFILL }},
- { &hf_winreg_KeySecurityAttribute_data_size,
- { "Data Size", "winreg.KeySecurityAttribute.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_OpenKey_parent_handle,
{ "Parent Handle", "winreg.winreg_OpenKey.parent_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_StringBuf_name,
- { "Name", "winreg.winreg_StringBuf.name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_NotifyChangeKeyValue_unknown2,
- { "Unknown2", "winreg.winreg_NotifyChangeKeyValue.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryInfoKey_num_subkeys,
{ "Num Subkeys", "winreg.winreg_QueryInfoKey.num_subkeys", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_sd_offset,
- { "Offset", "winreg.sd.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY,
{ "Key Wow64 32key", "winreg.winreg_AccessMask.KEY_WOW64_32KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_WOW64_32KEY_tfs), ( 0x00200 ), NULL, HFILL }},
- { &hf_winreg_winreg_StringBuf_length,
- { "Length", "winreg.winreg_StringBuf.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SaveKeyEx_sec_attrib,
+ { "Sec Attrib", "winreg.winreg_SaveKeyEx.sec_attrib", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryInfoKey_last_changed_time,
{ "Last Changed Time", "winreg.winreg_QueryInfoKey.last_changed_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK,
+ { "Reg Option Open Link", "winreg.winreg_KeyOptions.REG_OPTION_OPEN_LINK", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_OPEN_LINK_tfs), ( 0x00000008 ), NULL, HFILL }},
{ &hf_winreg_winreg_OpenHKPD_access_mask,
{ "Access Mask", "winreg.winreg_OpenHKPD.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_AbortSystemShutdown_server,
{ "Server", "winreg.winreg_AbortSystemShutdown.server", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryValue_type,
- { "Type", "winreg.winreg_QueryValue.type", FT_UINT32, BASE_DEC, VALS(winreg_winreg_Type_vals), 0, NULL, HFILL }},
+ { "Type", "winreg.winreg_QueryValue.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_sd_actual_size,
{ "Actual Size", "winreg.sd.actual_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_String_name_size,
- { "Name Size", "winreg.winreg_String.name_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_NotifyChangeKeyValue_unknown,
- { "Unknown", "winreg.winreg_NotifyChangeKeyValue.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryValue_length,
- { "Length", "winreg.winreg_QueryValue.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY,
- { "Key Create Sub Key", "winreg.winreg_AccessMask.KEY_CREATE_SUB_KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_SUB_KEY_tfs), ( 0x00004 ), NULL, HFILL }},
- { &hf_winreg_winreg_OpenKey_unknown,
- { "Unknown", "winreg.winreg_OpenKey.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_RestoreKey_filename,
- { "Filename", "winreg.winreg_RestoreKey.filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryInfoKey_max_valbufsize,
- { "Max Valbufsize", "winreg.winreg_QueryInfoKey.max_valbufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_InitiateSystemShutdownEx_reason,
- { "Reason", "winreg.winreg_InitiateSystemShutdownEx.reason", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE,
+ { "Reg Force Restore", "winreg.winreg_RestoreKeyFlags.REG_FORCE_RESTORE", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_FORCE_RESTORE_tfs), ( 0x00000008 ), NULL, HFILL }},
{ &hf_winreg_winreg_SecBuf_inherit,
{ "Inherit", "winreg.winreg_SecBuf.inherit", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_SetValue_size,
{ "Size", "winreg.winreg_SetValue.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumValue_length,
- { "Length", "winreg.winreg_EnumValue.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryMultipleValues_values,
- { "Values", "winreg.winreg_QueryMultipleValues.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryInfoKey_max_subkeylen,
- { "Max Subkeylen", "winreg.winreg_QueryInfoKey.max_subkeylen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_InitiateSystemShutdown_timeout,
- { "Timeout", "winreg.winreg_InitiateSystemShutdown.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_InitiateSystemShutdownEx_hostname,
- { "Hostname", "winreg.winreg_InitiateSystemShutdownEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_SaveKey_handle,
{ "Handle", "winreg.winreg_SaveKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
- { &hf_winreg_KeySecurityAttribute_inherit,
- { "Inherit", "winreg.KeySecurityAttribute.inherit", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_werror,
- { "Windows Error", "winreg.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET,
+ { "Reg Notify Change Last Set", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_LAST_SET", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET_tfs), ( 0x00000004 ), NULL, HFILL }},
+ { &hf_winreg_winreg_ReplaceKey_handle,
+ { "Handle", "winreg.winreg_ReplaceKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_GetVersion_version,
{ "Version", "winreg.winreg_GetVersion.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_ReplaceKey_old_file,
+ { "Old File", "winreg.winreg_ReplaceKey.old_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE,
{ "Key Query Value", "winreg.winreg_AccessMask.KEY_QUERY_VALUE", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_QUERY_VALUE_tfs), ( 0x00001 ), NULL, HFILL }},
{ &hf_winreg_winreg_CreateKey_action_taken,
{ "Action Taken", "winreg.winreg_CreateKey.action_taken", FT_UINT32, BASE_DEC, VALS(winreg_winreg_CreateAction_vals), 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryInfoKey_num_values,
{ "Num Values", "winreg.winreg_QueryInfoKey.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumKey_keyclass,
- { "Keyclass", "winreg.winreg_EnumKey.keyclass", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE,
+ { "Reg Whole Hive Volatile", "winreg.winreg_RestoreKeyFlags.REG_WHOLE_HIVE_VOLATILE", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE_tfs), ( 0x00000001 ), NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME,
+ { "Reg Notify Change Name", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_NAME", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME_tfs), ( 0x00000001 ), NULL, HFILL }},
{ &hf_winreg_winreg_AccessMask_KEY_SET_VALUE,
{ "Key Set Value", "winreg.winreg_AccessMask.KEY_SET_VALUE", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_SET_VALUE_tfs), ( 0x00002 ), NULL, HFILL }},
{ &hf_winreg_winreg_EnumKey_enum_index,
@@ -4194,42 +5024,179 @@ void proto_register_dcerpc_winreg(void)
{ "Handle", "winreg.winreg_RestoreKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_SetValue_data,
{ "Data", "winreg.winreg_SetValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_CreateKey_keyclass,
- { "Keyclass", "winreg.winreg_CreateKey.keyclass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_InitiateSystemShutdown_force_apps,
{ "Force Apps", "winreg.winreg_InitiateSystemShutdown.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_EnumValue_value,
- { "Value", "winreg.winreg_EnumValue.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_NotifyChangeKeyValue_string1,
{ "String1", "winreg.winreg_NotifyChangeKeyValue.string1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SaveKeyEx_flags,
+ { "Flags", "winreg.winreg_SaveKeyEx.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryMultipleValues_buffer,
{ "Buffer", "winreg.winreg_QueryMultipleValues.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_SetKeySecurity_access_mask,
- { "Access Mask", "winreg.winreg_SetKeySecurity.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
- { &hf_winreg_winreg_QueryValue_value_name,
- { "Value Name", "winreg.winreg_QueryValue.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_QueryInfoKey_classname,
{ "Classname", "winreg.winreg_QueryInfoKey.classname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY,
{ "Key Wow64 64key", "winreg.winreg_AccessMask.KEY_WOW64_64KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_WOW64_64KEY_tfs), ( 0x00100 ), NULL, HFILL }},
- { &hf_winreg_winreg_OpenHKCU_access_mask,
- { "Access Mask", "winreg.winreg_OpenHKCU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_ReplaceKey_subkey,
+ { "Subkey", "winreg.winreg_ReplaceKey.subkey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
{ &hf_winreg_sd_max_size,
{ "Max Size", "winreg.sd.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryInfoKey_max_classlen,
+ { "Max Classlen", "winreg.winreg_QueryInfoKey.max_classlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_ValNameBuf_length,
+ { "Length", "winreg.winreg_ValNameBuf.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
{ &hf_winreg_winreg_NotifyChangeKeyValue_notify_filter,
- { "Notify Filter", "winreg.winreg_NotifyChangeKeyValue.notify_filter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
- { &hf_winreg_QueryMultipleValue_offset,
- { "Offset", "winreg.QueryMultipleValue.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { "Notify Filter", "winreg.winreg_NotifyChangeKeyValue.notify_filter", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_UnLoadKey_subkey,
+ { "Subkey", "winreg.winreg_UnLoadKey.subkey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_ReplaceKey_new_file,
+ { "New File", "winreg.winreg_ReplaceKey.new_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SaveKeyEx_filename,
+ { "Filename", "winreg.winreg_SaveKeyEx.filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_QueryMultipleValue_ve_valuename,
+ { "Ve Valuename", "winreg.QueryMultipleValue.ve_valuename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_key_handle,
+ { "Key Handle", "winreg.winreg_QueryMultipleValues2.key_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_KeySecurityData_size,
+ { "Size", "winreg.KeySecurityData.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE,
+ { "Reg Option Backup Restore", "winreg.winreg_KeyOptions.REG_OPTION_BACKUP_RESTORE", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE_tfs), ( 0x00000004 ), NULL, HFILL }},
+ { &hf_winreg_winreg_EnumKey_name,
+ { "Name", "winreg.winreg_EnumKey.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_LoadKey_keyname,
+ { "Keyname", "winreg.winreg_LoadKey.keyname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues_key_handle,
+ { "Key Handle", "winreg.winreg_QueryMultipleValues.key_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_EnumValue_type,
+ { "Type", "winreg.winreg_EnumValue.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_EnumKey_last_changed_time,
+ { "Last Changed Time", "winreg.winreg_EnumKey.last_changed_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_EnumValue_size,
+ { "Size", "winreg.winreg_EnumValue.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SaveKey_sec_attrib,
+ { "Sec Attrib", "winreg.winreg_SaveKey.sec_attrib", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_sd,
+ { "KeySecurityData", "winreg.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK,
+ { "Reg Option Create Link", "winreg.winreg_KeyOptions.REG_OPTION_CREATE_LINK", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_CREATE_LINK_tfs), ( 0x00000002 ), NULL, HFILL }},
+ { &hf_winreg_winreg_OpenKey_options,
+ { "Options", "winreg.winreg_OpenKey.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_SaveKey_filename,
+ { "Filename", "winreg.winreg_SaveKey.filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryValue_data,
+ { "Data", "winreg.winreg_QueryValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_buffer,
+ { "Buffer", "winreg.winreg_QueryMultipleValues2.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_InitiateSystemShutdown_hostname,
+ { "Hostname", "winreg.winreg_InitiateSystemShutdown.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_UnLoadKey_handle,
+ { "Handle", "winreg.winreg_UnLoadKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues_values_out,
+ { "Values Out", "winreg.winreg_QueryMultipleValues.values_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_KeySecurityData_data,
+ { "Data", "winreg.KeySecurityData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_OpenKey_access_mask,
+ { "Access Mask", "winreg.winreg_OpenKey.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_OpenKey_keyname,
+ { "Keyname", "winreg.winreg_OpenKey.keyname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot,
+ { "Do Reboot", "winreg.winreg_InitiateSystemShutdownEx.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree,
+ { "Watch Subtree", "winreg.winreg_NotifyChangeKeyValue.watch_subtree", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_DeleteKeyEx_access_mask,
+ { "Access Mask", "winreg.winreg_DeleteKeyEx.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_DeleteKeyEx_key,
+ { "Key", "winreg.winreg_DeleteKeyEx.key", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryValue_data_length,
+ { "Data Length", "winreg.winreg_QueryValue.data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_KeySecurityData_len,
+ { "Len", "winreg.KeySecurityData.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_ValNameBuf_size,
+ { "Size", "winreg.winreg_ValNameBuf.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_CreateKey_name,
+ { "Name", "winreg.winreg_CreateKey.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES,
+ { "Reg Notify Change Attributes", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_ATTRIBUTES", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES_tfs), ( 0x00000002 ), NULL, HFILL }},
+ { &hf_winreg_winreg_String_name_len,
+ { "Name Len", "winreg.winreg_String.name_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_DeleteKey_key,
+ { "Key", "winreg.winreg_DeleteKey.key", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryValue_data_size,
+ { "Data Size", "winreg.winreg_QueryValue.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_system_name,
+ { "System Name", "winreg.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_QueryMultipleValue_ve_valueptr,
+ { "Ve Valueptr", "winreg.QueryMultipleValue.ve_valueptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_KeySecurityAttribute_data_size,
+ { "Data Size", "winreg.KeySecurityAttribute.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues_num_values,
+ { "Num Values", "winreg.winreg_QueryMultipleValues.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_StringBuf_name,
+ { "Name", "winreg.winreg_StringBuf.name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeKeyValue_unknown2,
+ { "Unknown2", "winreg.winreg_NotifyChangeKeyValue.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_sd_offset,
+ { "Offset", "winreg.sd.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_ValNameBuf_name,
+ { "Name", "winreg.winreg_ValNameBuf.name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_StringBuf_length,
+ { "Length", "winreg.winreg_StringBuf.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_values_in,
+ { "Values In", "winreg.winreg_QueryMultipleValues2.values_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_String_name_size,
+ { "Name Size", "winreg.winreg_String.name_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_NotifyChangeKeyValue_unknown,
+ { "Unknown", "winreg.winreg_NotifyChangeKeyValue.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY,
+ { "Key Create Sub Key", "winreg.winreg_AccessMask.KEY_CREATE_SUB_KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_SUB_KEY_tfs), ( 0x00004 ), NULL, HFILL }},
+ { &hf_winreg_winreg_RestoreKey_filename,
+ { "Filename", "winreg.winreg_RestoreKey.filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE,
+ { "Reg Refresh Hive", "winreg.winreg_RestoreKeyFlags.REG_REFRESH_HIVE", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_REFRESH_HIVE_tfs), ( 0x00000002 ), NULL, HFILL }},
+ { &hf_winreg_winreg_QueryInfoKey_max_valbufsize,
+ { "Max Valbufsize", "winreg.winreg_QueryInfoKey.max_valbufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_InitiateSystemShutdownEx_reason,
+ { "Reason", "winreg.winreg_InitiateSystemShutdownEx.reason", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_EnumValue_length,
+ { "Length", "winreg.winreg_EnumValue.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryInfoKey_max_subkeylen,
+ { "Max Subkeylen", "winreg.winreg_QueryInfoKey.max_subkeylen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_InitiateSystemShutdown_timeout,
+ { "Timeout", "winreg.winreg_InitiateSystemShutdown.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_InitiateSystemShutdownEx_hostname,
+ { "Hostname", "winreg.winreg_InitiateSystemShutdownEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_KeySecurityAttribute_inherit,
+ { "Inherit", "winreg.KeySecurityAttribute.inherit", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_werror,
+ { "Windows Error", "winreg.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryMultipleValues2_values_out,
+ { "Values Out", "winreg.winreg_QueryMultipleValues2.values_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_EnumKey_keyclass,
+ { "Keyclass", "winreg.winreg_EnumKey.keyclass", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_CreateKey_keyclass,
+ { "Keyclass", "winreg.winreg_CreateKey.keyclass", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_EnumValue_value,
+ { "Value", "winreg.winreg_EnumValue.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_OpenHKCU_access_mask,
+ { "Access Mask", "winreg.winreg_OpenHKCU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_QueryValue_value_name,
+ { "Value Name", "winreg.winreg_QueryValue.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH,
+ { "Reg No Lazy Flush", "winreg.winreg_RestoreKeyFlags.REG_NO_LAZY_FLUSH", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH_tfs), ( 0x00000004 ), NULL, HFILL }},
};
static gint *ett[] = {
&ett_dcerpc_winreg,
+ &ett_winreg_security_secinfo,
&ett_winreg_winreg_AccessMask,
&ett_winreg_winreg_String,
&ett_winreg_KeySecurityData,
&ett_winreg_winreg_SecBuf,
+ &ett_winreg_winreg_KeyOptions,
&ett_winreg_winreg_StringBuf,
+ &ett_winreg_winreg_ValNameBuf,
+ &ett_winreg_winreg_NotifyChangeType,
+ &ett_winreg_winreg_RestoreKeyFlags,
&ett_winreg_KeySecurityAttribute,
&ett_winreg_QueryMultipleValue,
};
diff --git a/epan/dissectors/packet-dcerpc-winreg.h b/epan/dissectors/packet-dcerpc-winreg.h
index 5490c2b9da..fe10b09917 100644
--- a/epan/dissectors/packet-dcerpc-winreg.h
+++ b/epan/dissectors/packet-dcerpc-winreg.h
@@ -13,33 +13,36 @@
*/
+#include "packet-dcerpc-misc.h"
+
#ifndef __PACKET_DCERPC_WINREG_H
#define __PACKET_DCERPC_WINREG_H
+#define REG_KEY_READ ( (STANDARD_RIGHTS_READ_ACCESS|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY) )
+
+#define REG_KEY_EXECUTE ( REG_KEY_READ )
+
+#define REG_KEY_WRITE ( (STANDARD_RIGHTS_WRITE_ACCESS|KEY_SET_VALUE|KEY_CREATE_SUB_KEY) )
+
+#define REG_KEY_ALL ( (STANDARD_RIGHTS_REQUIRED_ACCESS|REG_KEY_READ|REG_KEY_WRITE|KEY_CREATE_LINK) )
+
+#define REG_OPTION_NON_VOLATILE ( 0x00000000 )
+
+int winreg_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int winreg_dissect_bitmap_AccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
-#define REG_NONE (0)
-#define REG_SZ (1)
-#define REG_EXPAND_SZ (2)
-#define REG_BINARY (3)
-#define REG_DWORD (4)
-#define REG_DWORD_BIG_ENDIAN (5)
-#define REG_LINK (6)
-#define REG_MULTI_SZ (7)
-#define REG_RESOURCE_LIST (8)
-#define REG_FULL_RESOURCE_DESCRIPTOR (9)
-#define REG_RESOURCE_REQUIREMENTS_LIST (10)
-#define REG_QWORD (11)
-extern const value_string winreg_winreg_Type_vals[];
-int winreg_dissect_enum_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
int winreg_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int winreg_dissect_struct_KeySecurityData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int winreg_dissect_struct_SecBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_KeyOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#define REG_ACTION_NONE (0)
#define REG_CREATED_NEW_KEY (1)
#define REG_OPENED_EXISTING_KEY (2)
extern const value_string winreg_winreg_CreateAction_vals[];
int winreg_dissect_enum_CreateAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
int winreg_dissect_struct_StringBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_ValNameBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_NotifyChangeType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_RestoreKeyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int winreg_dissect_struct_KeySecurityAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
int winreg_dissect_struct_QueryMultipleValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
#endif /* __PACKET_DCERPC_WINREG_H */
diff --git a/epan/dissectors/packet-dcerpc-wzcsvc.c b/epan/dissectors/packet-dcerpc-wzcsvc.c
index e52647a722..cc352e42c6 100644
--- a/epan/dissectors/packet-dcerpc-wzcsvc.c
+++ b/epan/dissectors/packet-dcerpc-wzcsvc.c
@@ -12,7 +12,6 @@
#include "config.h"
-
#ifdef _MSC_VER
#pragma warning(disable:4005)
#pragma warning(disable:4013)
diff --git a/epan/dissectors/pidl/README b/epan/dissectors/pidl/README
index 33b55c27a6..6426112bf3 100644
--- a/epan/dissectors/pidl/README
+++ b/epan/dissectors/pidl/README
@@ -1,41 +1,104 @@
-The REAMDE specific to the Wireshark "copy" of the pidl sources
-==============================================================
+A note about PIDL generated files
+=================================
+
+Quick guide
+===========
+ rsync -av rsync.samba.org::ftp/pub/unpacked/samba_4_0_test/pidl .
+
+ for file in *.idl; do
+ echo "Generating dissector for $file"
+ ./pidl/pidl --ws-parser -- $file;
+ done
+ cp packet-dcerpc*.* ..
+
+Complete infos
+==============
+
+The following files:
+../packet-dcerpc-atsvc.h
+../packet-dcerpc-budb.c
+../packet-dcerpc-budb.h
+../packet-dcerpc-butc.c
+../packet-dcerpc-butc.h
+../packet-dcerpc-dfs.h
+../packet-dcerpc-dnsserver.h
+../packet-dcerpc-drsuapi.c
+../packet-dcerpc-drsuapi.h
+../packet-dcerpc-dssetup.h
+../packet-dcerpc-efs.h
+../packet-dcerpc-eventlog.h
+../packet-dcerpc-frsrpc.h
+../packet-dcerpc-frstrans.h
+../packet-dcerpc-initshutdown.h
+../packet-dcerpc-lsa.h
+../packet-dcerpc-mapi.h
+../packet-dcerpc-misc.h
+../packet-dcerpc-nspi.h
+../packet-dcerpc-rfr.h
+../packet-dcerpc-samr.h
+../packet-dcerpc-srvsvc.h
+../packet-dcerpc-winreg.h
+../packet-dcerpc-wkssvc.h
+../packet-dcerpc-wzcsvc.h
+
+Are automatically generated via a tool called "pidl", you shouldn't modify them manually.
+
+The pidl tool is maintained by the Samba project (http://samba.org, samba-technical@samba.org)
+We recommend to fetch a copy of the git tree of Samba to get the tool:
+ git clone git://git.samba.org/samba.git
+
+Or if you are just interested to run pidl you could fetch it via rsync:
+ rsync -av rsync.samba.org::ftp/pub/unpacked/samba_4_0_test/pidl .
+
+If both solution are not applicable you can use the copy that is located in the
+tool folder but it might be a bit outdated.
+
+Running pidl
+============
+
+You have to run the pidl command inside the pidl folder of the wireshark source tree
+
+The command to compile file:
+ <path_to_pidl>pidl --ws-parser -- <idl-file>
+ ^^^
+ This is *VERY* important
+The command generate 2 files:
+ packet-dcerpc-<interfacename>.h
+ packet-dcerpc-<interfacename>.c
+
+For instance with a pidl copy in /usr/local/src/samba/pidl and the atsvc.idl, the
+command will be:
+
+ /usr/local/src/samba/pidl/pidl --ws-parser -- atsvc.idl
+
+This will generate 2 files:
+ packet-dcerpc-atsvc.h
+ packet-dcerpc-atsvc.c
-The tree tools/pidl is a direct extract from
+If you run outside the dissectors/pidl directory, this *will* result in a
+warning such as:
+
+ atsvc.idl:5:23: idl_types.h: No such file or directory
+
+and *may* result in additional warnings such as:
- svn://svnanon.samba.org/samba/branches/SAMBA_4_0/source/pidl
+ Warning: No conformance file `initshutdown.cnf'
+ Unable to handle string with flags STR_LEN4|STR_NOTERM at /usr/lib/perl5/site_perl/5.8.6/Parse/Pidl/Wireshark/NDR.pm line 283.
-to allow building Wireshark pidl dissectors without having to
-*explicitly* access a remote svn repository.
+Notes about the in-tree pidl
+============================
+
+To allow building Wireshark pidl dissectors without having to
+*explicitly* access a remote svn repository a copy of pidl is located in tools/pidl
Don't do changes in the tools/pidl directory, do them at the samba tree!
Changes to this tree will be overwritten the next time the sources from
the samba tree are updated, which is basically every time you do an svn
up in the Wireshark toplevel dir.
-In order to build, install yapp, then do
-
- perl Makefile.PL && make && && make install
-
-This will build and install the binaries and the manpage (pidl.1).
-
-Yapp can be found in CPAN at
-
- http://search.cpan.org/~fdesar/Parse-Yapp/
-
-If you are using Linux, there may be a package for Yapp for your
-distribution; on SUSE, the package is an rpm named perl-Parse-Yapp.
-
-Run pidl with:
-
- pidl --ws-parser -- <idl-file> (don't forget the "--")
-
-If you run outside the dissectors/pidl directory, this *will* result in a
-warning such as:
-
- atsvc.idl:5:23: idl_types.h: No such file or directory
-
-and *may* result in additional warnings such as:
-
- Warning: No conformance file `initshutdown.cnf'
- Unable to handle string with flags STR_LEN4|STR_NOTERM at /usr/lib/perl5/site_perl/5.8.6/Parse/Pidl/Wireshark/NDR.pm line 283.
+Not compiling idl
+=================
+As of October 2013, the following idl have issues when generating and compiling:
+dfs.idl
+srvsvc.idl
+wkssvc.cnf
diff --git a/epan/dissectors/pidl/dnsserver.cnf b/epan/dissectors/pidl/dnsserver.cnf
index d0381c7774..21bbda84e8 100644
--- a/epan/dissectors/pidl/dnsserver.cnf
+++ b/epan/dissectors/pidl/dnsserver.cnf
@@ -27,7 +27,7 @@ dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_
int dn_len = 0;
guint16 bc;
- di=pinfo->private_data;
+ di=(dcerpc_info *)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -65,7 +65,7 @@ dnsserver_dissect_element_DNS_RPC_NODE_RecordCount(tvbuff_t *tvb _U_, int offset
{
dcerpc_info *di = NULL;
- di=pinfo->private_data;
+ di=(dcerpc_info *)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -81,7 +81,7 @@ dnsserver_dissect_element_DNS_RPC_NODE_records(tvbuff_t *tvb _U_, int offset _U_
{
dcerpc_info *di = NULL;
- di=pinfo->private_data;
+ di=(dcerpc_info *)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
diff --git a/epan/dissectors/pidl/dssetup.idl b/epan/dissectors/pidl/dssetup.idl
index 1164427185..14de9f7633 100644
--- a/epan/dissectors/pidl/dssetup.idl
+++ b/epan/dissectors/pidl/dssetup.idl
@@ -1,17 +1,14 @@
-#include "idl_types.h"
-
-#define unistr [string] wchar_t *
-
/*
dssetup interface definition
*/
+import "misc.idl";
+
[
uuid("3919286a-b10c-11d0-9ba8-00c04fd92ef5"),
version(0.0),
endpoint("ncacn_np:[\\pipe\\lsarpc]", "ncacn_np:[\\pipe\\lsass]", "ncacn_ip_tcp:", "ncalrpc:"),
pointer_default(unique),
- pointer_default_top(unique),
helpstring("Active Directory Setup")
] interface dssetup
{
@@ -37,9 +34,9 @@
typedef struct {
dssetup_DsRole role;
dssetup_DsRoleFlags flags;
- unistr *domain;
- unistr *dns_domain;
- unistr *forest;
+ [charset(UTF16),string] uint16 *domain;
+ [charset(UTF16),string] uint16 *dns_domain;
+ [charset(UTF16),string] uint16 *forest;
GUID domain_guid;
} dssetup_DsRolePrimaryDomInfoBasic;
@@ -83,7 +80,7 @@
WERROR dssetup_DsRoleGetPrimaryDomainInformation(
[in] dssetup_DsRoleInfoLevel level,
- [out,switch_is(level)] dssetup_DsRoleInfo *info
+ [out,switch_is(level),unique] dssetup_DsRoleInfo *info
);
/*
@@ -91,14 +88,14 @@
These stubs are left here only as a way of documenting the names
of the calls in case they ever turn up on the wire.
*/
- WERROR dssetup_DsRoleDnsNameToFlatName();
- WERROR dssetup_DsRoleDcAsDc();
- WERROR dssetup_DsRoleDcAsReplica();
- WERROR dssetup_DsRoleDemoteDc();
- WERROR dssetup_DsRoleGetDcOperationProgress();
- WERROR dssetup_DsRoleGetDcOperationResults();
- WERROR dssetup_DsRoleCancel();
- WERROR dssetup_DsRoleServerSaveStateForUpgrade();
- WERROR dssetup_DsRoleUpgradeDownlevelServer();
- WERROR dssetup_DsRoleAbortDownlevelServerUpgrade();
+ [todo] WERROR dssetup_DsRoleDnsNameToFlatName();
+ [todo] WERROR dssetup_DsRoleDcAsDc();
+ [todo] WERROR dssetup_DsRoleDcAsReplica();
+ [todo] WERROR dssetup_DsRoleDemoteDc();
+ [todo] WERROR dssetup_DsRoleGetDcOperationProgress();
+ [todo] WERROR dssetup_DsRoleGetDcOperationResults();
+ [todo] WERROR dssetup_DsRoleCancel();
+ [todo] WERROR dssetup_DsRoleServerSaveStateForUpgrade();
+ [todo] WERROR dssetup_DsRoleUpgradeDownlevelServer();
+ [todo] WERROR dssetup_DsRoleAbortDownlevelServerUpgrade();
}
diff --git a/epan/dissectors/pidl/frsrpc.cnf b/epan/dissectors/pidl/frsrpc.cnf
index d49aa7cf53..72d2754e46 100644
--- a/epan/dissectors/pidl/frsrpc.cnf
+++ b/epan/dissectors/pidl/frsrpc.cnf
@@ -14,7 +14,7 @@ CODE START
static int
frsrpc_dissect_element_CommPktChangeOrderCommand_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int conformant = di->conformant_run;
if (!conformant) {
@@ -35,7 +35,7 @@ frsrpc_dissect_struct_CommPktChunk(tvbuff_t *tvb _U_, int offset _U_, packet_inf
const char *s = NULL;
proto_item *item = NULL;
proto_tree *tree = NULL;
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int old_offset;
@@ -100,7 +100,7 @@ frsrpc_dissect_struct_frsrpc_CommPktChunkCtr(tvbuff_t *tvb, int offset, packet_i
{
guint32 nb_chunk = 0;
guint32 remaining = tvb_length_remaining(tvb, offset);
- dcerpc_info *di = pinfo->private_data;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
int align_status = di->no_align;
if (remaining > 0) {
diff --git a/epan/dissectors/pidl/frsrpc.idl b/epan/dissectors/pidl/frsrpc.idl
index 5dad888122..a235702563 100644
--- a/epan/dissectors/pidl/frsrpc.idl
+++ b/epan/dissectors/pidl/frsrpc.idl
@@ -281,7 +281,7 @@ interface frsrpc
[case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)]
GUID compression_guid;
[case(FRSRPC_COMM_PKT_CHUNK_BLOCK)]
- DATA_BLOB block;
+ [flag(NDR_REMAINING)] DATA_BLOB block;
[case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)]
hyper block_size;
[case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)]
@@ -343,8 +343,8 @@ interface frsrpc
[value(0)] uint32 upk_len;
[subcontext(4),subcontext_size(pkt_len)]
frsrpc_CommPktChunkCtr *ctr;
- [value(0)] uint32 data_name;
- [value(0)] uint32 data_handle;
+ [value(0)] uint3264 data_name;
+ [value(0)] uint3264 data_handle;
} frsrpc_FrsSendCommPktReq;
WERROR frsrpc_FrsSendCommPkt(
@@ -392,39 +392,31 @@ interface frsrpc
/* Function 0x03 */
WERROR frsrpc_FrsNOP();
- /*
- *For Op from 4 to 10 Microsoft use
- *the notation OpnumxxNotUsedOnWire
- *where xx is the number of the OP.
- *They are only declared in the IDL of MS-FRS1.pdf.
- *Not in the core of the document.
- */
-
/*****************/
/* Function 0x04 */
- /*[todo] void FRSRPC_BACKUP_COMPLETE();*/
+ [todo] void FRSRPC_BACKUP_COMPLETE();
/*****************/
/* Function 0x05 */
- /*[todo] void FRSRPC_BACKUP_COMPLETE_5();*/
+ [todo] void FRSRPC_BACKUP_COMPLETE_5();
/*****************/
/* Function 0x06 */
- /*[todo] void FRSRPC_BACKUP_COMPLETE_6();*/
+ [todo] void FRSRPC_BACKUP_COMPLETE_6();
/*****************/
/* Function 0x07 */
- /*[todo] void FRSRPC_BACKUP_COMPLETE_7();*/
+ [todo] void FRSRPC_BACKUP_COMPLETE_7();
/*****************/
/* Function 0x08 */
- /*[todo] void FRSRPC_BACKUP_COMPLETE_8();*/
+ [todo] void FRSRPC_BACKUP_COMPLETE_8();
/*****************/
/* Function 0x09 */
- /*[todo] void FRSRPC_BACKUP_COMPLETE_9();*/
+ [todo] void FRSRPC_BACKUP_COMPLETE_9();
/*****************/
/* Function 0x0a */
- /*[todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();*/
+ [todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();
}
diff --git a/epan/dissectors/pidl/initshutdown.cnf b/epan/dissectors/pidl/initshutdown.cnf
new file mode 100644
index 0000000000..82949185a3
--- /dev/null
+++ b/epan/dissectors/pidl/initshutdown.cnf
@@ -0,0 +1 @@
+TYPE lsa_StringLarge "offset=lsarpc_dissect_struct_lsa_StringLarge(tvb, offset, pinfo, tree, drep, @HF@, @PARAM@);" FT_NONE BASE_NONE 0 NULL NULL
diff --git a/epan/dissectors/pidl/initshutdown.idl b/epan/dissectors/pidl/initshutdown.idl
index 868e48e28a..13a1362205 100644
--- a/epan/dissectors/pidl/initshutdown.idl
+++ b/epan/dissectors/pidl/initshutdown.idl
@@ -4,6 +4,8 @@
initshutdown interface definition
*/
+import "lsa.idl";
+
[
uuid("894de0c0-0d55-11d3-a322-00c04fa321a1"),
version(1.0),
@@ -12,23 +14,62 @@
helpstring("Init shutdown service")
] interface initshutdown
{
- typedef struct {
- [value(strlen_m_term(name))] uint32 name_size;
- [flag(STR_LEN4|STR_NOTERM)] string name;
- } initshutdown_String_sub;
+ typedef [v1_enum] enum {
+ SHTDN_REASON_MAJOR_OTHER = 0x00000000,
+ SHTDN_REASON_MAJOR_HARDWARE = 0x00010000,
+ SHTDN_REASON_MAJOR_OPERATINGSYSTEM = 0x00020000,
+ SHTDN_REASON_MAJOR_SOFTWARE = 0x00030000,
+ SHTDN_REASON_MAJOR_APPLICATION = 0x00040000,
+ SHTDN_REASON_MAJOR_SYSTEM = 0x00050000,
+ SHTDN_REASON_MAJOR_POWER = 0x00060000,
+ SHTDN_REASON_MAJOR_LEGACY_API = 0x00070000
+ } initshutdown_ReasonMajor;
+
+ typedef [v1_enum] enum {
+ SHTDN_REASON_MINOR_OTHER = 0x00000000,
+ SHTDN_REASON_MINOR_MAINTENANCE = 0x00000001,
+ SHTDN_REASON_MINOR_INSTALLATION = 0x00000002,
+ SHTDN_REASON_MINOR_UPGRADE = 0x00000003,
+ SHTDN_REASON_MINOR_RECONFIG = 0x00000004,
+ SHTDN_REASON_MINOR_HUNG = 0x00000005,
+ SHTDN_REASON_MINOR_UNSTABLE = 0x00000006,
+ SHTDN_REASON_MINOR_DISK = 0x00000007,
+ SHTDN_REASON_MINOR_PROCESSOR = 0x00000008,
+ SHTDN_REASON_MINOR_NETWORKCARD = 0x00000009,
+ SHTDN_REASON_MINOR_POWER_SUPPLY = 0x0000000a,
+ SHTDN_REASON_MINOR_CORDUNPLUGGED = 0x0000000b,
+ SHTDN_REASON_MINOR_ENVIRONMENT = 0x0000000c,
+ SHTDN_REASON_MINOR_HARDWARE_DRIVER = 0x0000000d,
+ SHTDN_REASON_MINOR_OTHERDRIVER = 0x0000000e,
+ SHTDN_REASON_MINOR_BLUESCREEN = 0x0000000f,
+ SHTDN_REASON_MINOR_SERVICEPACK = 0x00000010,
+ SHTDN_REASON_MINOR_HOTFIX = 0x00000011,
+ SHTDN_REASON_MINOR_SECURITYFIX = 0x00000012,
+ SHTDN_REASON_MINOR_SECURITY = 0x00000013,
+ SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY = 0x00000014,
+ SHTDN_REASON_MINOR_WMI = 0x00000015,
+ SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL= 0x00000016,
+ SHTDN_REASON_MINOR_HOTFIX_UNINSTALL = 0x00000017,
+ SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL= 0x00000018,
+ SHTDN_REASON_MINOR_MMC = 0x00000019,
+ SHTDN_REASON_MINOR_TERMSRV = 0x00000020
+ } initshutdown_ReasonMinor;
- typedef [public] struct {
- [value(strlen_m(name->name)*2)] uint16 name_len;
- [value(strlen_m_term(name->name)*2)] uint16 name_size;
- initshutdown_String_sub *name;
- } initshutdown_String;
+ typedef [bitmap32bit] bitmap {
+ SHTDN_REASON_FLAG_USER_DEFINED = 0x40000000,
+ SHTDN_REASON_FLAG_PLANNED = 0x80000000
+ } initshutdown_ReasonFlags;
WERROR initshutdown_Init(
[in,unique] uint16 *hostname,
- [in,unique] initshutdown_String *message,
+ /*
+ * Note: lsa_String and winreg_String both result
+ * in WERR_INVALID_PARAM
+ */
+ [in,unique] lsa_StringLarge *message,
[in] uint32 timeout,
[in] uint8 force_apps,
- [in] uint8 reboot
+ [in] uint8 do_reboot
);
WERROR initshutdown_Abort(
@@ -37,10 +78,14 @@
WERROR initshutdown_InitEx(
[in,unique] uint16 *hostname,
- [in,unique] initshutdown_String *message,
+ /*
+ * Note: lsa_String and winreg_String both result
+ * in WERR_INVALID_PARAM
+ */
+ [in,unique] lsa_StringLarge *message,
[in] uint32 timeout,
[in] uint8 force_apps,
- [in] uint8 reboot,
+ [in] uint8 do_reboot,
[in] uint32 reason
);
}
diff --git a/epan/dissectors/pidl/lsa.cnf b/epan/dissectors/pidl/lsa.cnf
index c94778c4b0..9637035ce7 100644
--- a/epan/dissectors/pidl/lsa.cnf
+++ b/epan/dissectors/pidl/lsa.cnf
@@ -178,7 +178,7 @@ cnf_dissect_sec_desc_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
guint32 type=0;
struct access_mask_info *ami=NULL;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -223,7 +223,7 @@ cnf_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
guint32 len;
dcerpc_info *di;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -281,7 +281,7 @@ lsarpc_dissect_element_lsa_LookupNames3_names_X(tvbuff_t *tvb _U_, int offset _U
tree = proto_item_add_subtree(item, ett_lsarpc_names);
}
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_names_);
@@ -363,7 +363,7 @@ lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_(tvbuff_t *tvb _U_, int offset
gint len, reported_len;
dissector_handle_t efsblob_handle;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
diff --git a/epan/dissectors/pidl/misc.cnf b/epan/dissectors/pidl/misc.cnf
new file mode 100644
index 0000000000..572bacfde4
--- /dev/null
+++ b/epan/dissectors/pidl/misc.cnf
@@ -0,0 +1,28 @@
+MANUAL misc_dissect_element_winreg_Data_value
+MANUAL misc_dissect_element_winreg_Data_string
+
+CODE START
+
+static int
+misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_string , 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_value, 0);
+
+ return offset;
+}
+
+static int
+misc_dissect_struct_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ /* We don't do it yet */
+ return offset;
+}
+CODE END
diff --git a/epan/dissectors/pidl/misc.idl b/epan/dissectors/pidl/misc.idl
index d37e515a31..c306f35962 100644
--- a/epan/dissectors/pidl/misc.idl
+++ b/epan/dissectors/pidl/misc.idl
@@ -4,10 +4,10 @@
miscellaneous IDL structures
*/
-
[
- pyhelper("librpc/ndr/py_misc.c"),
- pointer_default(unique)
+ uuid("12345678-1234-1234-1234-abcdef123456"),
+ version(1.0),
+ pointer_default(unique)
]
interface misc
{
diff --git a/epan/dissectors/pidl/samr.cnf b/epan/dissectors/pidl/samr.cnf
index bdcd28ae4f..5e865fd70a 100644
--- a/epan/dissectors/pidl/samr.cnf
+++ b/epan/dissectors/pidl/samr.cnf
@@ -386,7 +386,7 @@ cnf_dissect_sec_desc_buf_(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_t
guint32 type=0;
struct access_mask_info *ami=NULL;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
@@ -435,7 +435,7 @@ cnf_dissect_sec_desc_buf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tr
guint64 len;
dcerpc_info *di;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
diff --git a/epan/dissectors/pidl/winreg.cnf b/epan/dissectors/pidl/winreg.cnf
index 9c9238f67f..9ffefcaf65 100644
--- a/epan/dissectors/pidl/winreg.cnf
+++ b/epan/dissectors/pidl/winreg.cnf
@@ -1,3 +1,5 @@
+TYPE lsa_StringLarge "offset=lsarpc_dissect_struct_lsa_StringLarge(tvb, offset, pinfo, tree, drep, @HF@, @PARAM@);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE winreg_Type "offset=misc_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, @HF@, @PARAM@);" FT_NONE BASE_NONE 0 NULL NULL
IMPORT security_secinfo offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_GetKeySecurity_sec_info, NULL);
@@ -133,6 +135,7 @@ MANUAL winreg_dissect_bitmap_AccessMask
CODE START
+ #include "packet-dcerpc-lsa.h"
static void
winreg_specific_rights(tvbuff_t *tvb, gint offset, proto_tree *tree, guint32 access)
{
@@ -159,7 +162,7 @@ winreg_dissect_element_KeySecurityData_data_(tvbuff_t *tvb, int offset, packet_i
guint32 len;
dcerpc_info *di;
- di=pinfo->private_data;
+ di=(dcerpc_info*)pinfo->private_data;
if(di->conformant_run){
/*just a run to handle conformant arrays, nothing to dissect */
return offset;
@@ -190,17 +193,6 @@ winreg_dissect_bitmap_AccessMask(tvbuff_t *tvb, int offset, packet_info *pinfo,
return offset;
}
-/* FIXME: pidl generates the wrong name for external symbols */
-static int
-winreg_dissect_struct_initshutdown_String(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param)
-{
- #include "packet-dcerpc-initshutdown.h"
- return initshutdown_dissect_struct_String(tvb, offset, pinfo, parent_tree, drep, hf_index, param);
-}
-
-
-
-
/* winreg_String :
* typedef [public,noejs] struct {
* [value(strlen_m_term(name)*2)] uint16 name_len;
diff --git a/epan/dissectors/pidl/winreg.idl b/epan/dissectors/pidl/winreg.idl
index 4a75d5ff57..829a6435be 100644
--- a/epan/dissectors/pidl/winreg.idl
+++ b/epan/dissectors/pidl/winreg.idl
@@ -2,46 +2,51 @@
winreg interface definition
*/
-/* import "lsa.idl", "initshutdown.idl", "security.idl";*/
+/*import "lsa.idl", "security.idl",*/
+import "misc.idl";
[
uuid("338cd001-2244-31f1-aaaa-900038001003"),
version(1.0),
endpoint("ncacn_np:[\\pipe\\winreg]","ncacn_ip_tcp:","ncalrpc:"),
pointer_default(unique),
- pointer_default_top(unique),
helpstring("Remote Registry Service")
] interface winreg
{
- declare bitmap security_secinfo;
+ typedef bitmap security_secinfo security_secinfo;
+
+ /*
+ * Access Bits for registry ACLS
+ */
typedef [bitmap32bit] bitmap {
KEY_QUERY_VALUE = 0x00001,
KEY_SET_VALUE = 0x00002,
KEY_CREATE_SUB_KEY = 0x00004,
- KEY_ENUMERATE_SUB_KEYS = 0x00008,
- KEY_NOTIFY = 0x00010,
+ KEY_ENUMERATE_SUB_KEYS = 0x00008,
+ KEY_NOTIFY = 0x00010,
KEY_CREATE_LINK = 0x00020,
KEY_WOW64_64KEY = 0x00100,
KEY_WOW64_32KEY = 0x00200
} winreg_AccessMask;
- typedef [public,v1_enum] enum {
- REG_NONE = 0,
- REG_SZ = 1,
- REG_EXPAND_SZ = 2,
- REG_BINARY = 3,
- REG_DWORD = 4,
- REG_DWORD_BIG_ENDIAN = 5,
- REG_LINK = 6,
- REG_MULTI_SZ = 7,
- REG_RESOURCE_LIST = 8,
- REG_FULL_RESOURCE_DESCRIPTOR = 9,
- REG_RESOURCE_REQUIREMENTS_LIST = 10,
- REG_QWORD = 11
- } winreg_Type;
-
- typedef [public,noejs] struct {
+ const int REG_KEY_READ = ( STANDARD_RIGHTS_READ_ACCESS |
+ KEY_QUERY_VALUE |
+ KEY_ENUMERATE_SUB_KEYS |
+ KEY_NOTIFY);
+
+ const int REG_KEY_EXECUTE = REG_KEY_READ;
+
+ const int REG_KEY_WRITE = ( STANDARD_RIGHTS_WRITE_ACCESS |
+ KEY_SET_VALUE |
+ KEY_CREATE_SUB_KEY);
+
+ const int REG_KEY_ALL = ( STANDARD_RIGHTS_REQUIRED_ACCESS |
+ REG_KEY_READ |
+ REG_KEY_WRITE |
+ KEY_CREATE_LINK);
+
+ typedef [public] struct {
[value(strlen_m_term(name)*2)] uint16 name_len;
[value(strlen_m_term(name)*2)] uint16 name_size;
[string,charset(UTF16)] uint16 *name;
@@ -50,7 +55,7 @@
/******************/
/* Function: 0x00 */
WERROR winreg_OpenHKCR(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -58,7 +63,7 @@
/******************/
/* Function: 0x01 */
WERROR winreg_OpenHKCU(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -66,7 +71,7 @@
/******************/
/* Function: 0x02 */
[public] WERROR winreg_OpenHKLM(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -74,7 +79,7 @@
/******************/
/* Function: 0x03 */
WERROR winreg_OpenHKPD(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -82,7 +87,7 @@
/******************/
/* Function: 0x04 */
WERROR winreg_OpenHKU(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -108,6 +113,15 @@
boolean8 inherit;
} winreg_SecBuf;
+ const int REG_OPTION_NON_VOLATILE = 0x00000000;
+
+ typedef [bitmap32bit] bitmap {
+ REG_OPTION_VOLATILE = 0x00000001,
+ REG_OPTION_CREATE_LINK = 0x00000002,
+ REG_OPTION_BACKUP_RESTORE = 0x00000004,
+ REG_OPTION_OPEN_LINK = 0x00000008
+ } winreg_KeyOptions;
+
typedef [v1_enum] enum {
REG_ACTION_NONE = 0, /* used by caller */
REG_CREATED_NEW_KEY = 1,
@@ -118,7 +132,7 @@
[in,ref] policy_handle *handle,
[in] winreg_String name,
[in] winreg_String keyclass,
- [in] uint32 options,
+ [in] winreg_KeyOptions options,
[in] winreg_AccessMask access_mask,
[in,unique] winreg_SecBuf *secdesc,
[out,ref] policy_handle *new_handle,
@@ -140,7 +154,7 @@
);
typedef struct {
- [value(strlen_m_term(name)*2)] uint16 length;
+ [value(strlen_m_term_null(name)*2)] uint16 length;
/* size cannot be auto-set by value() as it is the
amount of space the server is allowed to use for this
string in the reply, not its current size */
@@ -158,15 +172,24 @@
[in,out,unique] NTTIME *last_changed_time
);
+ typedef struct {
+ [value(strlen_m_term(name)*2)] uint16 length;
+ /* size cannot be auto-set by value() as it is the
+ amount of space the server is allowed to use for this
+ string in the reply, not its current size */
+ uint16 size;
+ [size_is(size/2),length_is(length/2),charset(UTF16)] uint16 *name;
+ } winreg_ValNameBuf;
+
/******************/
/* Function: 0x0a */
[public] WERROR winreg_EnumValue(
[in,ref] policy_handle *handle,
[in] uint32 enum_index,
- [in,out,ref] winreg_StringBuf *name,
+ [in,out,ref] winreg_ValNameBuf *name,
[in,out,unique] winreg_Type *type,
- [in,out,unique,size_is(*size),length_is(*length)] uint8 *value,
+ [in,out,unique,size_is(size ? *size : 0),length_is(length ? *length : 0),range(0,0x4000000)] uint8 *value,
[in,out,unique] uint32 *size,
[in,out,unique] uint32 *length
);
@@ -189,19 +212,26 @@
/* Function: 0x0d */
WERROR winreg_LoadKey(
[in,ref] policy_handle *handle,
- [in] winreg_String *keyname,
- [in] winreg_String *filename
+ [in,unique] winreg_String *keyname,
+ [in,unique] winreg_String *filename
);
/******************/
/* Function: 0x0e */
+ typedef [public,bitmap32bit] bitmap {
+ REG_NOTIFY_CHANGE_NAME = 0x00000001,
+ REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002,
+ REG_NOTIFY_CHANGE_LAST_SET = 0x00000004,
+ REG_NOTIFY_CHANGE_SECURITY = 0x00000008
+ } winreg_NotifyChangeType;
+
[public] WERROR winreg_NotifyChangeKeyValue(
[in,ref] policy_handle *handle,
- [in] uint8 watch_subtree,
- [in] uint32 notify_filter,
+ [in] boolean8 watch_subtree,
+ [in] winreg_NotifyChangeType notify_filter,
[in] uint32 unknown,
[in] winreg_String string1,
- [in] winreg_String string2,
+ [in] winreg_String string2,
[in] uint32 unknown2
);
@@ -210,7 +240,7 @@
[public] WERROR winreg_OpenKey(
[in,ref] policy_handle *parent_handle,
[in] winreg_String keyname,
- [in] uint32 unknown,
+ [in] winreg_KeyOptions options,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -222,7 +252,7 @@
[in,out,ref] winreg_String *classname,
[out,ref] uint32 *num_subkeys,
[out,ref] uint32 *max_subkeylen,
- [out,ref] uint32 *max_subkeysize,
+ [out,ref] uint32 *max_classlen,
[out,ref] uint32 *num_values,
[out,ref] uint32 *max_valnamelen,
[out,ref] uint32 *max_valbufsize,
@@ -234,24 +264,36 @@
/* Function: 0x11 */
[public] WERROR winreg_QueryValue(
[in,ref] policy_handle *handle,
- [in] winreg_String value_name,
- [in,out] winreg_Type *type,
- [in,out,size_is(*size),length_is(*length)] uint8 *data,
- [in,out] uint32 *size,
- [in,out] uint32 *length
+ [in,ref] winreg_String *value_name,
+ [in,out,unique] winreg_Type *type,
+ [in,out,unique,size_is(data_size ? *data_size : 0),length_is(data_length ? *data_length : 0),range(0,0x4000000)] uint8 *data,
+ [in,out,unique] uint32 *data_size,
+ [in,out,unique] uint32 *data_length
);
/******************/
/* Function: 0x12 */
WERROR winreg_ReplaceKey(
+ [in,ref] policy_handle *handle,
+ [in,ref] winreg_String *subkey,
+ [in,ref] winreg_String *new_file,
+ [in,ref] winreg_String *old_file
);
/******************/
/* Function: 0x13 */
+
+ typedef [public,bitmap32bit] bitmap {
+ REG_WHOLE_HIVE_VOLATILE = 0x00000001,
+ REG_REFRESH_HIVE = 0x00000002,
+ REG_NO_LAZY_FLUSH = 0x00000004,
+ REG_FORCE_RESTORE = 0x00000008
+ } winreg_RestoreKeyFlags;
+
WERROR winreg_RestoreKey(
[in,ref] policy_handle *handle,
[in,ref] winreg_String *filename,
- [in] uint32 flags
+ [in] winreg_RestoreKeyFlags flags
);
/******************/
@@ -273,7 +315,7 @@
/* Function: 0x15 */
WERROR winreg_SetKeySecurity(
[in,ref] policy_handle *handle,
- [in] winreg_AccessMask access_mask,
+ [in] security_secinfo sec_info,
[in,ref] KeySecurityData *sd
);
@@ -290,22 +332,28 @@
/******************/
/* Function: 0x17 */
WERROR winreg_UnLoadKey(
+ [in,ref] policy_handle *handle,
+ [in,ref] winreg_String *subkey
);
/******************/
/* Function: 0x18 */
WERROR winreg_InitiateSystemShutdown(
- [in] uint16 *hostname,
- [in] initshutdown_String *message,
+ [in,unique] uint16 *hostname,
+ /*
+ * Note: lsa_String and winreg_String both result
+ * in WERR_INVALID_PARAM
+ */
+ [in,unique] lsa_StringLarge *message,
[in] uint32 timeout,
[in] uint8 force_apps,
- [in] uint8 reboot
+ [in] uint8 do_reboot
);
/******************/
/* Function: 0x19 */
WERROR winreg_AbortSystemShutdown(
- [in] uint16 *server
+ [in,unique] uint16 *server
);
/******************/
@@ -318,7 +366,7 @@
/******************/
/* Function: 0x1b */
WERROR winreg_OpenHKCC(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -326,48 +374,57 @@
/******************/
/* Function: 0x1c */
WERROR winreg_OpenHKDD(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
typedef struct {
- winreg_String *name;
- winreg_Type type;
- uint32 offset;
- uint32 length;
+ winreg_ValNameBuf *ve_valuename;
+ uint32 ve_valuelen;
+ uint32 ve_valueptr;
+ winreg_Type ve_type;
} QueryMultipleValue;
-
+
/******************/
/* Function: 0x1d */
[public] WERROR winreg_QueryMultipleValues(
[in,ref] policy_handle *key_handle,
- [in,out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values,
+ [in,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values_in,
+ [out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values_out,
[in] uint32 num_values,
- [in,out,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer,
+ [in,out,unique,size_is(*buffer_size),length_is(*buffer_size)] uint8 *buffer,
[in,out,ref] uint32 *buffer_size
);
/******************/
/* Function: 0x1e */
WERROR winreg_InitiateSystemShutdownEx(
- [in] uint16 *hostname,
- [in] initshutdown_String *message,
+ [in,unique] uint16 *hostname,
+ /*
+ * Note: lsa_String and winreg_String both result
+ * in WERR_INVALID_PARAM
+ */
+ [in,unique] lsa_StringLarge *message,
[in] uint32 timeout,
[in] uint8 force_apps,
- [in] uint8 reboot,
+ [in] uint8 do_reboot,
[in] uint32 reason
);
/******************/
/* Function: 0x1f */
WERROR winreg_SaveKeyEx(
+ [in,ref] policy_handle *handle,
+ [in,ref] winreg_String *filename,
+ [in,unique] KeySecurityAttribute *sec_attrib,
+ [in] uint32 flags
);
/******************/
/* Function: 0x20 */
WERROR winreg_OpenHKPT(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
@@ -375,13 +432,29 @@
/******************/
/* Function: 0x21 */
WERROR winreg_OpenHKPN(
- [in] uint16 *system_name,
+ [in,unique] uint16 *system_name,
[in] winreg_AccessMask access_mask,
[out,ref] policy_handle *handle
);
/******************/
/* Function: 0x22 */
- WERROR winreg_QueryMultipleValues2(
+ [public] WERROR winreg_QueryMultipleValues2(
+ [in,ref] policy_handle *key_handle,
+ [in,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values_in,
+ [out,ref,size_is(num_values),length_is(num_values)] QueryMultipleValue *values_out,
+ [in] uint32 num_values,
+ [in,out,unique,size_is(*offered),length_is(*offered)] uint8 *buffer,
+ [in,ref] uint32 *offered,
+ [out,ref] uint32 *needed
+ );
+
+ /******************/
+ /* Function: 0x23 */
+ WERROR winreg_DeleteKeyEx(
+ [in,ref] policy_handle *handle,
+ [in,ref] winreg_String *key,
+ [in] winreg_AccessMask access_mask,
+ [in] uint32 reserved
);
}