12 #ifndef __PACKET_DCERPC_NT_H
13 #define __PACKET_DCERPC_NT_H
15 #include "ws_symbol_export.h"
24 #define ALIGN_TO_8_BYTES \
26 if(!di->conformant_run) { \
28 offset=(offset&0xfffffff8)+8; \
32 #define ALIGN_TO_4_BYTES \
34 if(!di->conformant_run) { \
36 offset=(offset&0xfffffffc)+4; \
40 #define ALIGN_TO_2_BYTES \
42 if(!di->conformant_run) { \
44 offset=(offset&0xfffffffe)+2; \
49 #define ALIGN_TO_5_BYTES ALIGN_TO_4_OR_8_BYTES
51 #define ALIGN_TO_4_OR_8_BYTES \
53 if (di->call_data->flags & DCERPC_IS_NDR64) { \
60 #define ALIGN_TO_3_BYTES ALIGN_TO_2_OR_4_BYTES
62 #define ALIGN_TO_2_OR_4_BYTES \
64 if (di->call_data->flags & DCERPC_IS_NDR64) { \
73 int use_remaining_space);
86 dissect_ndr_counted_ascii_string_cb(
tvbuff_t *tvb,
int offset,
89 dcerpc_callback_fnct_t *callback,
92 dissect_ndr_counted_ascii_string(
tvbuff_t *tvb,
int offset,
94 dcerpc_info *di, guint8 *drep,
int hf_index,
int levels);
97 dissect_ndr_counted_string_cb(
tvbuff_t *tvb,
int offset,
100 dcerpc_callback_fnct_t *callback,
101 void *callback_args);
104 dissect_ndr_counted_string_ptr(
tvbuff_t *tvb,
int offset,
109 dissect_ndr_counted_string(
tvbuff_t *tvb,
int offset,
111 dcerpc_info *di, guint8 *drep,
int hf_index,
int levels);
114 dissect_ndr_counted_byte_array(
tvbuff_t *tvb,
int offset,
116 dcerpc_info *di, guint8 *drep,
int hf_index,
int levels);
119 dissect_ndr_counted_byte_array_cb(
tvbuff_t *tvb,
int offset,
122 dcerpc_callback_fnct_t *callback,
123 void *callback_args);
130 dissect_nt_GUID(
tvbuff_t *tvb,
int offset,
137 guint32 param,
int hfindex);
141 dissect_ndr_nt_NTTIME (
tvbuff_t *tvb,
int offset,
145 dissect_ndr_nt_NTTIME_hyper (
tvbuff_t *tvb,
int offset,
147 dcerpc_info *di, guint8 *drep,
int hf_index, gboolean onesec_resolution);
149 dissect_ndr_nt_LOGON_HOURS(
tvbuff_t *tvb,
int offset,
153 dissect_ndr_nt_SID(
tvbuff_t *tvb,
int offset,
157 dissect_ndr_nt_SID_with_options(
tvbuff_t *tvb,
int offset,
159 dcerpc_info *di, guint8 *drep, guint32 options,
int hf_index);
161 dissect_ndr_nt_PSID_cb(
tvbuff_t *tvb,
int offset,
164 dcerpc_callback_fnct_t *callback,
void *callback_args);
166 dissect_ndr_nt_PSID(
tvbuff_t *tvb,
int offset,
170 dissect_ndr_nt_PSID_ARRAY(
tvbuff_t *tvb,
int offset,
175 dissect_ndr_nt_SE_GROUP_ATTRIBUTES(
tvbuff_t *tvb,
int offset,
180 dissect_ndr_nt_SID_AND_ATTRIBUTES_ARRAY(
tvbuff_t *tvb,
int offset,
184 dissect_ndr_nt_SID_AND_ATTRIBUTES(
tvbuff_t *tvb,
int offset,
199 gboolean is_open, gboolean is_close);
210 dcerpc_fetch_polhnd_data(
e_ctx_hnd *policy_hnd,
char **name, guint32 *type,
211 guint32 *open_frame, guint32 *close_frame,
219 int hfindex, guint32 *pdata);
224 int hfindex, guint32 *pdata);
229 int hfindex, guint32 *pdata);
235 gboolean is_open, gboolean is_close);
246 gboolean is_open, gboolean is_close);
249 dissect_nt_LUID(
tvbuff_t *tvb,
int offset,
258 int hfindex,
int length,
const guint8 **pdata);
262 int hfindex,
int length,
const guint8 **pdata);
266 int hfindex,
int length);
270 int hfindex,
int length);
272 int dissect_ndr_str_pointer_item(
tvbuff_t *tvb, gint offset,
274 dcerpc_info *di, guint8 *drep,
int type,
const char *text,
275 int hf_index,
int levels);
277 int nt_dissect_MIDL_NDRHEADERBLOB(
proto_tree *parent_tree,
tvbuff_t *tvb,
int offset, guint8 *drep);
284 #define CB_STR_ITEM_LEVELS(x) ((x) & 0xFFFF)
285 #define CB_STR_SAVE 0x20000000
286 #define CB_STR_COL_INFO 0x10000000
290 int start_offset,
int end_offset,
291 void *callback_args);
294 int start_offset,
int end_offset,
295 void *callback_args);
299 void dcerpc_smb_init(
int proto_dcerpc);
302 extern int hf_nt_cs_len;
303 extern int hf_nt_cs_size;
Definition: packet-dcerpc.h:154
Definition: packet-dcerpc.h:54
Definition: packet_info.h:44
Definition: value_string.h:26
Definition: tvbuff-int.h:35