static int dissect_remsysact_remotecreateinstance_resp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, hf_sysact_unknown, NULL /* XXX */); offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, NULL /* pu32HResult */); return offset; }
static int dissect_remsysact_remotecreateinstance_rqst(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep) { offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); /* XXX - what is this? */ offset = dissect_dcom_nospec_data(tvb, offset, pinfo, tree, drep, 4); offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, hf_sysact_unknown, NULL /* XXX */); return offset; }
static int dissect_remact_remote_activation_rqst(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32ClientImpLevel; guint32 u32Mode; guint32 u32Interfaces; guint32 u32Pointer; guint32 u32ArraySize; guint32 u32ItemIdx; guint16 u16ProtSeqs; e_guid_t clsid; e_guid_t iid; gchar szObjName[1000] = { 0 }; guint32 u32ObjNameLen = sizeof(szObjName); offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); offset = dissect_dcom_append_UUID(tvb, offset, pinfo, tree, di, drep, hf_dcom_clsid, -1, &clsid); offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hf_remact_object_name, szObjName, u32ObjNameLen); } offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep, hf_remact_object_storage, NULL /* XXX */); offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_remact_client_impl_level, &u32ClientImpLevel); offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_remact_mode, &u32Mode); /* Interfaces */ offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_remact_interfaces, &u32Interfaces); offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, tree, di, drep, &u32ArraySize); u32ItemIdx = 1; while (u32Interfaces--) { offset = dissect_dcom_append_UUID(tvb, offset, pinfo, tree, di, drep, hf_dcom_iid, u32ItemIdx, &iid); u32ItemIdx++; } } offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_remact_requested_protseqs, &u16ProtSeqs); offset = dissect_dcom_dcerpc_array_size(tvb, offset, pinfo, tree, di, drep, &u32ArraySize); u32ItemIdx = 1; while (u32ArraySize--) { offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_remact_protseqs, &u16ProtSeqs); u32ItemIdx++; } return offset; }