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);
86dissect_ndr_counted_ascii_string_cb(
tvbuff_t *tvb,
int offset,
89 dcerpc_callback_fnct_t *callback,
92dissect_ndr_counted_ascii_string(
tvbuff_t *tvb,
int offset,
94 dcerpc_info *di, uint8_t *drep,
int hf_index,
int levels);
97dissect_ndr_counted_string_cb(
tvbuff_t *tvb,
int offset,
100 dcerpc_callback_fnct_t *callback,
101 void *callback_args);
104dissect_ndr_counted_string_ptr(
tvbuff_t *tvb,
int offset,
109dissect_ndr_counted_string(
tvbuff_t *tvb,
int offset,
111 dcerpc_info *di, uint8_t *drep,
int hf_index,
int levels);
114dissect_ndr_counted_byte_array(
tvbuff_t *tvb,
int offset,
116 dcerpc_info *di, uint8_t *drep,
int hf_index,
int levels);
119dissect_ndr_counted_byte_array_cb(
tvbuff_t *tvb,
int offset,
122 dcerpc_callback_fnct_t *callback,
123 void *callback_args);
130dissect_nt_GUID(
tvbuff_t *tvb,
int offset,
137 uint32_t param,
int hfindex);
141dissect_ndr_nt_NTTIME (
tvbuff_t *tvb,
int offset,
145dissect_ndr_nt_NTTIME_hyper (
tvbuff_t *tvb,
int offset,
149dissect_ndr_nt_NTTIME_1sec (
tvbuff_t *tvb,
int offset,
153dissect_ndr_nt_LOGON_HOURS(
tvbuff_t *tvb,
int offset,
157dissect_ndr_nt_SID(
tvbuff_t *tvb,
int offset,
161dissect_ndr_nt_SID_with_options(
tvbuff_t *tvb,
int offset,
163 dcerpc_info *di, uint8_t *drep, uint32_t options,
int hf_index);
165dissect_ndr_nt_PSID_cb(
tvbuff_t *tvb,
int offset,
168 dcerpc_callback_fnct_t *callback,
void *callback_args);
170dissect_ndr_nt_PSID(
tvbuff_t *tvb,
int offset,
174dissect_ndr_nt_PSID_ARRAY(
tvbuff_t *tvb,
int offset,
179dissect_ndr_nt_SE_GROUP_ATTRIBUTES(
tvbuff_t *tvb,
int offset,
184dissect_ndr_nt_SID_AND_ATTRIBUTES_ARRAY(
tvbuff_t *tvb,
int offset,
188dissect_ndr_nt_SID_AND_ATTRIBUTES(
tvbuff_t *tvb,
int offset,
214dcerpc_fetch_polhnd_data(
e_ctx_hnd *policy_hnd,
char **name, uint32_t *type,
215 uint32_t *open_frame, uint32_t *close_frame,
223 int hfindex, uint32_t *pdata);
228 int hfindex, uint32_t *pdata);
233 int hfindex, uint32_t *pdata);
253dissect_nt_LUID(
tvbuff_t *tvb,
int offset,
262 int hfindex,
int length,
const uint8_t **pdata);
266 int hfindex,
int length,
const uint8_t **pdata);
270 int hfindex,
int length);
274 int hfindex,
int length);
276int dissect_ndr_str_pointer_item(
tvbuff_t *tvb,
int offset,
278 dcerpc_info *di, uint8_t *drep,
int type,
const char *text,
279 int hf_index,
int levels);
281int nt_dissect_MIDL_NDRHEADERBLOB(
proto_tree *parent_tree,
tvbuff_t *tvb,
int offset, uint8_t *drep);
288#define CB_STR_ITEM_LEVELS(x) ((x) & 0xFFFF)
289#define CB_STR_SAVE 0x20000000
290#define CB_STR_COL_INFO 0x10000000
294 int start_offset,
int end_offset,
295 void *callback_args);
298 int start_offset,
int end_offset,
299 void *callback_args);
303void dcerpc_smb_init(
int proto_dcerpc);
306extern int hf_nt_cs_len;
307extern int hf_nt_cs_size;
Definition packet-dcerpc.h:154
Definition packet-dcerpc.h:54
Definition packet_info.h:43
Definition value_string.h:25
Definition tvbuff-int.h:35