34856b23d377ddd2fbbe7a6c87cfe000a5487d32
[metze/samba/wip.git] / bin / default / librpc / gen_ndr / packet-dcerpc-spoolss.c
1 /* DO NOT EDIT
2         This filter was automatically generated
3         from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/spoolss.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/spoolss.cnf.
4         
5         Pidl is a perl based IDL compiler for DCE/RPC idl files.
6         It is maintained by the Samba team, not the Wireshark team.
7         Instructions on how to download and install Pidl can be
8         found at http://wiki.wireshark.org/Pidl
9
10         $Id$
11 */
12
13
14 #include "config.h"
15 #ifdef _MSC_VER
16 #pragma warning(disable:4005)
17 #pragma warning(disable:4013)
18 #pragma warning(disable:4018)
19 #pragma warning(disable:4101)
20 #endif
21
22 #include <glib.h>
23 #include <string.h>
24 #include <epan/packet.h>
25
26 #include "packet-dcerpc.h"
27 #include "packet-dcerpc-nt.h"
28 #include "packet-windows-common.h"
29 #include "packet-dcerpc-spoolss.h"
30
31 /* Ett declarations */
32 static gint ett_dcerpc_spoolss = -1;
33 static gint ett_spoolss_spoolss_Time = -1;
34 static gint ett_spoolss_spoolss_TimeCtr = -1;
35 static gint ett_spoolss_spoolss_PrinterStatus = -1;
36 static gint ett_spoolss_spoolss_JobStatus = -1;
37 static gint ett_spoolss_spoolss_PrinterInfo0 = -1;
38 static gint ett_spoolss_spoolss_DMPS_Flags = -1;
39 static gint ett_spoolss_spoolss_PSDRVEXTRA351 = -1;
40 static gint ett_spoolss_spoolss_PSDRVEXTRA400 = -1;
41 static gint ett_spoolss_spoolss_PSDRVEXTRA500 = -1;
42 static gint ett_spoolss_spoolss_PSDRVEXTRA = -1;
43 static gint ett_spoolss_spoolss_UNIDRVEXTRA3_4 = -1;
44 static gint ett_spoolss_spoolss_DMUNI_Flags = -1;
45 static gint ett_spoolss_spoolss_UNIDRVEXTRA500 = -1;
46 static gint ett_spoolss_spoolss_UNIDRVEXTRA = -1;
47 static gint ett_spoolss_spoolss_JTEXP = -1;
48 static gint ett_spoolss_spoolss_OEM_DMEXTRA = -1;
49 static gint ett_spoolss_spoolss_DeviceModeExtraDataPostScript = -1;
50 static gint ett_spoolss_spoolss_DeviceModeExtraDataUniDriver = -1;
51 static gint ett_spoolss_spoolss_DeviceModeFields = -1;
52 static gint ett_spoolss_spoolss_DeviceMode = -1;
53 static gint ett_spoolss_spoolss_EnumPrinterFlags = -1;
54 static gint ett_spoolss_spoolss_PrinterAttributes = -1;
55 static gint ett_spoolss_spoolss_PrinterInfo1 = -1;
56 static gint ett_spoolss_spoolss_PrinterInfo2 = -1;
57 static gint ett_spoolss_spoolss_PrinterInfo3 = -1;
58 static gint ett_spoolss_spoolss_PrinterInfo4 = -1;
59 static gint ett_spoolss_spoolss_PrinterInfo5 = -1;
60 static gint ett_spoolss_spoolss_PrinterInfo6 = -1;
61 static gint ett_spoolss_spoolss_DsPrintAction = -1;
62 static gint ett_spoolss_spoolss_PrinterInfo7 = -1;
63 static gint ett_spoolss_spoolss_DeviceModeInfo = -1;
64 static gint ett_spoolss_spoolss_PrinterInfo = -1;
65 static gint ett_spoolss_spoolss_DevmodeContainer = -1;
66 static gint ett_spoolss_spoolss_JobInfo1 = -1;
67 static gint ett_spoolss_spoolss_JobInfo2 = -1;
68 static gint ett_spoolss_spoolss_JobInfo3 = -1;
69 static gint ett_spoolss_spoolss_JobInfo4 = -1;
70 static gint ett_spoolss_spoolss_JobInfo = -1;
71 static gint ett_spoolss_spoolss_SetJobInfo1 = -1;
72 static gint ett_spoolss_spoolss_SetJobInfo2 = -1;
73 static gint ett_spoolss_spoolss_SetJobInfo4 = -1;
74 static gint ett_spoolss_spoolss_SetJobInfo = -1;
75 static gint ett_spoolss_spoolss_JobInfoContainer = -1;
76 static gint ett_spoolss_spoolss_SetPrinterInfo0 = -1;
77 static gint ett_spoolss_spoolss_SetPrinterInfo1 = -1;
78 static gint ett_spoolss_spoolss_SetPrinterInfo2 = -1;
79 static gint ett_spoolss_spoolss_SetPrinterInfo3 = -1;
80 static gint ett_spoolss_spoolss_SetPrinterInfo4 = -1;
81 static gint ett_spoolss_spoolss_SetPrinterInfo5 = -1;
82 static gint ett_spoolss_spoolss_SetPrinterInfo6 = -1;
83 static gint ett_spoolss_spoolss_SetPrinterInfo7 = -1;
84 static gint ett_spoolss_spoolss_SetPrinterInfo8 = -1;
85 static gint ett_spoolss_spoolss_SetPrinterInfo9 = -1;
86 static gint ett_spoolss_spoolss_SetPrinterInfo = -1;
87 static gint ett_spoolss_spoolss_SetPrinterInfoCtr = -1;
88 static gint ett_spoolss_spoolss_StringArray = -1;
89 static gint ett_spoolss_spoolss_AddDriverInfo1 = -1;
90 static gint ett_spoolss_spoolss_AddDriverInfo2 = -1;
91 static gint ett_spoolss_spoolss_AddDriverInfo3 = -1;
92 static gint ett_spoolss_spoolss_AddDriverInfo4 = -1;
93 static gint ett_spoolss_spoolss_DriverAttributes = -1;
94 static gint ett_spoolss_spoolss_AddDriverInfo5 = -1;
95 static gint ett_spoolss_spoolss_AddDriverInfo6 = -1;
96 static gint ett_spoolss_spoolss_AddDriverInfo8 = -1;
97 static gint ett_spoolss_spoolss_AddDriverInfo = -1;
98 static gint ett_spoolss_spoolss_AddDriverInfoCtr = -1;
99 static gint ett_spoolss_spoolss_DriverInfo1 = -1;
100 static gint ett_spoolss_spoolss_DriverInfo2 = -1;
101 static gint ett_spoolss_spoolss_DriverInfo3 = -1;
102 static gint ett_spoolss_spoolss_DriverInfo4 = -1;
103 static gint ett_spoolss_spoolss_DriverInfo5 = -1;
104 static gint ett_spoolss_spoolss_DriverInfo6 = -1;
105 static gint ett_spoolss_spoolss_DriverInfo7 = -1;
106 static gint ett_spoolss_spoolss_DriverInfo8 = -1;
107 static gint ett_spoolss_spoolss_DriverFileInfo = -1;
108 static gint ett_spoolss_spoolss_DriverInfo101 = -1;
109 static gint ett_spoolss_spoolss_DriverInfo = -1;
110 static gint ett_spoolss_spoolss_DriverDirectoryInfo1 = -1;
111 static gint ett_spoolss_spoolss_DriverDirectoryInfo = -1;
112 static gint ett_spoolss_spoolss_PrintProcessorInfo1 = -1;
113 static gint ett_spoolss_spoolss_PrintProcessorInfo = -1;
114 static gint ett_spoolss_spoolss_PrintProcessorDirectoryInfo1 = -1;
115 static gint ett_spoolss_spoolss_PrintProcessorDirectoryInfo = -1;
116 static gint ett_spoolss_spoolss_DocumentInfo1 = -1;
117 static gint ett_spoolss_spoolss_DocumentInfo = -1;
118 static gint ett_spoolss_spoolss_DocumentInfoCtr = -1;
119 static gint ett_spoolss_spoolss_OSVersion = -1;
120 static gint ett_spoolss_spoolss_OSVersionEx = -1;
121 static gint ett_spoolss_spoolss_PrinterData = -1;
122 static gint ett_spoolss_spoolss_FormSize = -1;
123 static gint ett_spoolss_spoolss_FormArea = -1;
124 static gint ett_spoolss_spoolss_FormInfo1 = -1;
125 static gint ett_spoolss_spoolss_FormStringType = -1;
126 static gint ett_spoolss_spoolss_FormInfo2 = -1;
127 static gint ett_spoolss_spoolss_FormInfo = -1;
128 static gint ett_spoolss_spoolss_AddFormInfo1 = -1;
129 static gint ett_spoolss_spoolss_AddFormInfo2 = -1;
130 static gint ett_spoolss_spoolss_AddFormInfo = -1;
131 static gint ett_spoolss_spoolss_AddFormInfoCtr = -1;
132 static gint ett_spoolss_spoolss_PortInfo1 = -1;
133 static gint ett_spoolss_spoolss_PortType = -1;
134 static gint ett_spoolss_spoolss_PortInfo2 = -1;
135 static gint ett_spoolss_spoolss_PortInfo3 = -1;
136 static gint ett_spoolss_spoolss_PortInfoFF = -1;
137 static gint ett_spoolss_spoolss_PortInfo = -1;
138 static gint ett_spoolss_spoolss_MonitorInfo1 = -1;
139 static gint ett_spoolss_spoolss_MonitorInfo2 = -1;
140 static gint ett_spoolss_spoolss_MonitorInfo = -1;
141 static gint ett_spoolss_spoolss_SetPortInfo1 = -1;
142 static gint ett_spoolss_spoolss_SetPortInfo2 = -1;
143 static gint ett_spoolss_spoolss_SetPortInfo3 = -1;
144 static gint ett_spoolss_spoolss_SetPortInfoFF = -1;
145 static gint ett_spoolss_spoolss_SetPortInfo = -1;
146 static gint ett_spoolss_spoolss_SetPortInfoContainer = -1;
147 static gint ett_spoolss_UNIVERSAL_FONT_ID = -1;
148 static gint ett_spoolss_UNIVERSAL_FONT_ID_ctr = -1;
149 static gint ett_spoolss_spoolss_AddMonitorInfo1 = -1;
150 static gint ett_spoolss_spoolss_AddMonitorInfo2 = -1;
151 static gint ett_spoolss_spoolss_AddMonitorInfo = -1;
152 static gint ett_spoolss_spoolss_MonitorContainer = -1;
153 static gint ett_spoolss_spoolss_PrintProcDataTypesInfo1 = -1;
154 static gint ett_spoolss_spoolss_PrintProcDataTypesInfo = -1;
155 static gint ett_spoolss_spoolss_PrinterChangeFlags = -1;
156 static gint ett_spoolss_spoolss_PortVarContainer = -1;
157 static gint ett_spoolss_spoolss_Field = -1;
158 static gint ett_spoolss_spoolss_NotifyOptionType = -1;
159 static gint ett_spoolss_spoolssNotifyOptionFlags = -1;
160 static gint ett_spoolss_spoolss_NotifyOption = -1;
161 static gint ett_spoolss_spoolss_NotifyString = -1;
162 static gint ett_spoolss_spoolss_NotifyData = -1;
163 static gint ett_spoolss_spoolss_Notify = -1;
164 static gint ett_spoolss_spoolss_NotifyInfo = -1;
165 static gint ett_spoolss_spoolss_ReplyPrinterInfo = -1;
166 static gint ett_spoolss_spoolss_PrinterNotifyFlags = -1;
167 static gint ett_spoolss_spoolss_UserLevel1 = -1;
168 static gint ett_spoolss_spoolss_UserLevel2 = -1;
169 static gint ett_spoolss_spoolss_UserLevel3 = -1;
170 static gint ett_spoolss_spoolss_UserLevel = -1;
171 static gint ett_spoolss_spoolss_UserLevelCtr = -1;
172 static gint ett_spoolss_spoolss_AccessRights = -1;
173 static gint ett_spoolss_spoolss_PrinterEnumValues = -1;
174 static gint ett_spoolss_spoolss_KeyNames = -1;
175 static gint ett_spoolss_spoolss_DeleteDriverFlags = -1;
176 static gint ett_spoolss_spoolss_PortData1 = -1;
177 static gint ett_spoolss_spoolss_PortData2 = -1;
178 static gint ett_spoolss_spoolss_MonitorUi = -1;
179 static gint ett_spoolss_spoolss_AddPrinterDriverExFlags = -1;
180 static gint ett_spoolss_RPC_BINARY_CONTAINER = -1;
181 static gint ett_spoolss_RPC_BIDI_DATA_u = -1;
182 static gint ett_spoolss_RPC_BIDI_DATA = -1;
183 static gint ett_spoolss_RPC_BIDI_REQUEST_DATA = -1;
184 static gint ett_spoolss_RPC_BIDI_REQUEST_CONTAINER = -1;
185 static gint ett_spoolss_RPC_BIDI_RESPONSE_DATA = -1;
186 static gint ett_spoolss_RPC_BIDI_RESPONSE_CONTAINER = -1;
187 static gint ett_spoolss_spoolss_CorePrinterDriver = -1;
188 static gint ett_spoolss_propertyBlob = -1;
189 static gint ett_spoolss_RPC_PrintPropertyValueUnion = -1;
190 static gint ett_spoolss_RPC_PrintPropertyValue = -1;
191 static gint ett_spoolss_RPC_PrintNamedProperty = -1;
192
193
194 /* Header field declarations */
195 static gint hf_spoolss_spoolss_PortInfo1_port_name = -1;
196 static gint hf_spoolss_spoolss_DeviceMode_size = -1;
197 static gint hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result = -1;
198 static gint hf_spoolss_spoolss_GetJob_buffer = -1;
199 static gint hf_spoolss_spoolss_DriverInfo5_driver_path = -1;
200 static gint hf_spoolss_spoolss_SetPrinterInfo2_drivername = -1;
201 static gint hf_spoolss_spoolss_DocumentInfo_info1 = -1;
202 static gint hf_spoolss_spoolss_AddFormInfo2_ressource_id = -1;
203 static gint hf_spoolss_spoolss_UserLevel3_reserved = -1;
204 static gint hf_spoolss_spoolss_FormInfo2_keyword = -1;
205 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE = -1;
206 static gint hf_spoolss_spoolss_JobInfo2_start_time = -1;
207 static gint hf_spoolss_spoolss_PSDRVEXTRA_wCoreFullSize = -1;
208 static gint hf_spoolss_spoolss_SetJobInfo1_text_status = -1;
209 static gint hf_spoolss_spoolss_XcvData_handle = -1;
210 static gint hf_spoolss_spoolss_SetJobInfo1_total_pages = -1;
211 static gint hf_spoolss_spoolss_DriverInfo8_data_file = -1;
212 static gint hf_spoolss_spoolss_SetPortInfo2_monitor_name = -1;
213 static gint hf_spoolss_spoolss_PortInfo_infoFF = -1;
214 static gint hf_spoolss_spoolss_JobInfo2_submitted = -1;
215 static gint hf_spoolss_spoolss_AddDriverInfo6_architecture = -1;
216 static gint hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr = -1;
217 static gint hf_spoolss_spoolss_SetJobInfo4_server_name = -1;
218 static gint hf_spoolss__spoolss_EnumForms_count = -1;
219 static gint hf_spoolss_spoolss_SetPrinterInfo2_datatype = -1;
220 static gint hf_spoolss_spoolss_SetPrinterInfo5_attributes = -1;
221 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS = -1;
222 static gint hf_spoolss_spoolss_PrinterEnumValues_data = -1;
223 static gint hf_spoolss_spoolss_DeletePrintProcessor_server = -1;
224 static gint hf_spoolss___spoolss_EnumPrintProcDataTypes_level = -1;
225 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE = -1;
226 static gint hf_spoolss_spoolss_SetPrinterInfo2_location = -1;
227 static gint hf_spoolss_spoolss_EnumPrinterData_data_needed = -1;
228 static gint hf_spoolss_spoolss_NotifyData_integer = -1;
229 static gint hf_spoolss_spoolss_AddDriverInfo2_architecture = -1;
230 static gint hf_spoolss_spoolss_SetPrinter_devmode_ctr = -1;
231 static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema = -1;
232 static gint hf_spoolss_spoolss_SetJobInfo1_document_name = -1;
233 static gint hf_spoolss_spoolss_DriverInfo7_inf_name = -1;
234 static gint hf_spoolss_spoolss_SetPrinter_command = -1;
235 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS = -1;
236 static gint hf_spoolss_spoolss_SetPrinterInfo_info2 = -1;
237 static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_JobId = -1;
238 static gint hf_spoolss_spoolss_DeviceMode___driverextra_length = -1;
239 static gint hf_spoolss_spoolss_XcvData_function_name = -1;
240 static gint hf_spoolss_spoolss_AddDriverInfo_info1 = -1;
241 static gint hf_spoolss_spoolss_SetJobInfo2_position = -1;
242 static gint hf_spoolss_spoolss_PrinterInfo2_sepfile = -1;
243 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_RESTART = -1;
244 static gint hf_spoolss___spoolss_EnumPrinterDataEx_count = -1;
245 static gint hf_spoolss_spoolss_SetJobInfo2__devmode_ptr = -1;
246 static gint hf_spoolss_spoolss_JobInfo1_submitted = -1;
247 static gint hf_spoolss_spoolss_AddDriverInfo5_driver_attributes = -1;
248 static gint hf_spoolss_spoolss_AddDriverInfo8_monitor_name = -1;
249 static gint hf_spoolss_spoolss_PortData2_size = -1;
250 static gint hf_spoolss___spoolss_EnumPrintProcDataTypes_count = -1;
251 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT = -1;
252 static gint hf_spoolss_spoolss_StringArray_string = -1;
253 static gint hf_spoolss_spoolss_PSDRVEXTRA400_aubOptions = -1;
254 static gint hf_spoolss___spoolss_EnumPorts_level = -1;
255 static gint hf_spoolss_spoolss_JobInfo4_until_time = -1;
256 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED = -1;
257 static gint hf_spoolss_spoolss_AddDriverInfo8_config_file = -1;
258 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wFeedDirection = -1;
259 static gint hf_spoolss_spoolss_SetPrinterInfo2_averageppm = -1;
260 static gint hf_spoolss_spoolss_AddDriverInfo6_provider = -1;
261 static gint hf_spoolss_spoolss_SetJobInfo2_text_status = -1;
262 static gint hf_spoolss_spoolss_EnumPorts_level = -1;
263 static gint hf_spoolss_spoolss_EnumForms_count = -1;
264 static gint hf_spoolss_spoolss_PortData2_snmpcommunity = -1;
265 static gint hf_spoolss_spoolss_PSDRVEXTRA_aOptions = -1;
266 static gint hf_spoolss_spoolss_DriverInfo101_hardware_id = -1;
267 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wchEPSFile = -1;
268 static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName = -1;
269 static gint hf_spoolss_spoolss_AddPort_monitor_name = -1;
270 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab_size = -1;
271 static gint hf_spoolss_spoolss_AddDriverInfo3_driver_path = -1;
272 static gint hf_spoolss_spoolss_DriverInfo2_architecture = -1;
273 static gint hf_spoolss_spoolss_PrinterInfo2_printername = -1;
274 static gint hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED = -1;
275 static gint hf_spoolss_spoolss_AddDriverInfo6_help_file = -1;
276 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwSignature = -1;
277 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED = -1;
278 static gint hf_spoolss_spoolss_UNIDRVEXTRA_iLayout = -1;
279 static gint hf_spoolss_spoolss_DeletePrinterIC_gdi_handle = -1;
280 static gint hf_spoolss__spoolss_EnumJobs_numjobs = -1;
281 static gint hf_spoolss_spoolss_PrinterInfo3_secdesc = -1;
282 static gint hf_spoolss_spoolss_AddDriverInfo4_version = -1;
283 static gint hf_spoolss_spoolss_PrinterInfo2_averageppm = -1;
284 static gint hf_spoolss_spoolss_FormInfo1_form_name = -1;
285 static gint hf_spoolss__spoolss_EnumJobs_level = -1;
286 static gint hf_spoolss_spoolss_AddDriverInfo6_previous_names = -1;
287 static gint hf_spoolss_spoolss_PSDRVEXTRA_iTTDLFmt = -1;
288 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caRedGreenTint = -1;
289 static gint hf_spoolss_spoolss_NotifyOption_version = -1;
290 static gint hf_spoolss_spoolss_OSVersionEx_platform_id = -1;
291 static gint hf_spoolss_spoolss_SetPrinterInfo0_c_setprinter = -1;
292 static gint hf_spoolss_spoolss_PSDRVEXTRA_wVer = -1;
293 static gint hf_spoolss_spoolss_EnumPrintProcessors_info = -1;
294 static gint hf_spoolss_spoolss_JobInfo4_printer_name = -1;
295 static gint hf_spoolss_spoolss_EnumPorts_buffer = -1;
296 static gint hf_spoolss_spoolss_PortVarContainer_monitor_data = -1;
297 static gint hf_spoolss_spoolss_OSVersionEx_service_pack_major = -1;
298 static gint hf_spoolss_spoolss_DriverInfo5_config_file = -1;
299 static gint hf_spoolss_spoolss_DeviceMode_panningheight = -1;
300 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_BITSPERPEL = -1;
301 static gint hf_spoolss_spoolss_UserLevel3_major = -1;
302 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7 = -1;
303 static gint hf_spoolss_spoolss_GetForm_buffer = -1;
304 static gint hf_spoolss_spoolss_PrinterInfo2_devmode_ = -1;
305 static gint hf_spoolss_spoolss_Notify_variable_type = -1;
306 static gint hf_spoolss_spoolss_SetPrinterInfo1_description = -1;
307 static gint hf_spoolss_spoolss_SetPrinterInfo0_number_of_processors = -1;
308 static gint hf_spoolss__spoolss_EnumPrinterDrivers_environment = -1;
309 static gint hf_spoolss_spoolss_PrinterEnumValues_type = -1;
310 static gint hf_spoolss__spoolss_EnumPorts_count = -1;
311 static gint hf_spoolss_spoolss_DriverInfo4_data_file = -1;
312 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN = -1;
313 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caSize = -1;
314 static gint hf_spoolss_spoolss_EnumPrinterDrivers_count = -1;
315 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceWhite = -1;
316 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caGreenGamma = -1;
317 static gint hf_spoolss_spoolss_OSVersion_minor = -1;
318 static gint hf_spoolss___spoolss_EnumPrinterDrivers_level = -1;
319 static gint hf_spoolss_spoolss_PrinterInfo0_number_of_processors = -1;
320 static gint hf_spoolss_spoolss_SetPort_servername = -1;
321 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_info = -1;
322 static gint hf_spoolss_spoolss_DriverInfo101_driver_name = -1;
323 static gint hf_spoolss_spoolss_AddDriverInfo8_help_file = -1;
324 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caSize = -1;
325 static gint hf_spoolss__spoolss_EnumJobs_needed = -1;
326 static gint hf_spoolss_spoolss_DriverInfo6_previous_names = -1;
327 static gint hf_spoolss_spoolss_EnumPrinterData_enum_index = -1;
328 static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine = -1;
329 static gint hf_spoolss_spoolss_EnumJobs_info = -1;
330 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caBrightness = -1;
331 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_level = -1;
332 static gint hf_spoolss___spoolss_EnumMonitors_info = -1;
333 static gint hf_spoolss_spoolss_SetPortInfo3_status_string = -1;
334 static gint hf_spoolss_spoolss_PrinterInfo2_starttime = -1;
335 static gint hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter = -1;
336 static gint hf_spoolss_spoolss_JobInfo1_pages_printed = -1;
337 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caColorfulness = -1;
338 static gint hf_spoolss_spoolss_EnumPrinterDrivers_buffer = -1;
339 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_language = -1;
340 static gint hf_spoolss_spoolss_DriverInfo8_dependent_files = -1;
341 static gint hf_spoolss_spoolss_FormInfo_info1 = -1;
342 static gint hf_spoolss_spoolss_SetJobInfo_info3 = -1;
343 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved3 = -1;
344 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wReserved1 = -1;
345 static gint hf_spoolss_spoolss_AddDriverInfo5_config_version = -1;
346 static gint hf_spoolss_spoolss_JobInfo2_status = -1;
347 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2 = -1;
348 static gint hf_spoolss_spoolss_PSDRVEXTRA500_bReversePrint = -1;
349 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_offered = -1;
350 static gint hf_spoolss_spoolss_ReplyOpenPrinter_printer_local = -1;
351 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMMETHOD = -1;
352 static gint hf_spoolss_spoolss_SetPrinterInfo5_device_not_selected_timeout = -1;
353 static gint hf_spoolss_spoolss_DriverInfo101_version = -1;
354 static gint hf_spoolss_spoolss_JobInfo2_size = -1;
355 static gint hf_spoolss_spoolss_AddDriverInfo4_help_file = -1;
356 static gint hf_spoolss_spoolss_SetPrinterInfo0_reserved2 = -1;
357 static gint hf_spoolss_spoolss_GetPrinterDriver2_info = -1;
358 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB = -1;
359 static gint hf_spoolss_spoolss_SetPrinterInfo_info9 = -1;
360 static gint hf_spoolss_spoolss_SetJobInfo4_driver_name = -1;
361 static gint hf_spoolss_spoolss_PrinterInfo2_sharename = -1;
362 static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties = -1;
363 static gint hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES = -1;
364 static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Count = -1;
365 static gint hf_spoolss_spoolss_DeviceMode_panningwidth = -1;
366 static gint hf_spoolss_spoolss_PortInfo2_description = -1;
367 static gint hf_spoolss__spoolss_EnumJobs_count = -1;
368 static gint hf_spoolss_spoolss_SetPrinterInfo0_session_counter = -1;
369 static gint hf_spoolss_spoolss_DocumentInfo1_output_file = -1;
370 static gint hf_spoolss_spoolss_UserLevel3_user = -1;
371 static gint hf_spoolss_spoolss_DriverInfo_info7 = -1;
372 static gint hf_spoolss_spoolss_UserLevel1_minor = -1;
373 static gint hf_spoolss_spoolss_EnumPrinterDataEx_info = -1;
374 static gint hf_spoolss_spoolss_GetPrinterDriver_handle = -1;
375 static gint hf_spoolss_spoolss_SetJobInfo2_server_name = -1;
376 static gint hf_spoolss_spoolss_UserLevelCtr_level = -1;
377 static gint hf_spoolss_spoolss_OpenPrinterEx_access_mask = -1;
378 static gint hf_spoolss_spoolss_AddFormInfo1_form_name = -1;
379 static gint hf_spoolss_spoolss_PortData2_version = -1;
380 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ORIENTATION = -1;
381 static gint hf_spoolss_spoolss_OpenPrinter_handle = -1;
382 static gint hf_spoolss_spoolss_AccessRights_JOB_ACCESS_READ = -1;
383 static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwResult = -1;
384 static gint hf_spoolss_spoolss_DeletePerMachineConnection_server = -1;
385 static gint hf_spoolss_spoolss_JobInfoContainer_level = -1;
386 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_bReversePrint = -1;
387 static gint hf_spoolss_spoolss_GetPrinter_handle = -1;
388 static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwReqNumber = -1;
389 static gint hf_spoolss_spoolss_DriverInfo101_provider = -1;
390 static gint hf_spoolss_spoolss_DriverInfo2_driver_path = -1;
391 static gint hf_spoolss_spoolss_PortInfo2_port_type = -1;
392 static gint hf_spoolss_spoolss_DriverInfo6_data_file = -1;
393 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE = -1;
394 static gint hf_spoolss_spoolss_SetPrinterData_value_name = -1;
395 static gint hf_spoolss_spoolss_PortData1_queue = -1;
396 static gint hf_spoolss_spoolss_PortData2_reserved = -1;
397 static gint hf_spoolss_spoolss_PrinterInfo2_location = -1;
398 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT = -1;
399 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_servername = -1;
400 static gint hf_spoolss_spoolss_SetJobInfo2_submitted = -1;
401 static gint hf_spoolss_spoolss_EnumPorts_needed = -1;
402 static gint hf_spoolss_spoolss_DriverInfo4_config_file = -1;
403 static gint hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name = -1;
404 static gint hf_spoolss_spoolss_JobInfo4_devmode_ = -1;
405 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwReserved2 = -1;
406 static gint hf_spoolss_spoolss_Time_month = -1;
407 static gint hf_spoolss_spoolss_OpenPrinter_datatype = -1;
408 static gint hf_spoolss_spoolss_SetPrinterInfo_info0 = -1;
409 static gint hf_spoolss__spoolss_EnumPrinterDataEx_needed = -1;
410 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer = -1;
411 static gint hf_spoolss_spoolss_PortData2_hostaddress = -1;
412 static gint hf_spoolss_spoolss_UserLevel_level2 = -1;
413 static gint hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_date = -1;
414 static gint hf_spoolss_spoolss_AddDriverInfo3_config_file = -1;
415 static gint hf_spoolss_spoolss_NotifyInfo_version = -1;
416 static gint hf_spoolss_spoolss_GetPrinterDriver2_needed = -1;
417 static gint hf_spoolss_spoolss_DeviceMode_scale = -1;
418 static gint hf_spoolss_spoolss_DeletePrinterData_handle = -1;
419 static gint hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies = -1;
420 static gint hf_spoolss__spoolss_EnumPrinterDrivers_buffer = -1;
421 static gint hf_spoolss_spoolss_DriverInfo101_manufacturer_url = -1;
422 static gint hf_spoolss_spoolss_SetPrinterInfo0_printername = -1;
423 static gint hf_spoolss_spoolss_UNIDRVEXTRA_wOEMExtra = -1;
424 static gint hf_spoolss_spoolss_DeletePrinterDataEx_handle = -1;
425 static gint hf_spoolss_spoolss_DriverInfo4_previous_names = -1;
426 static gint hf_spoolss_spoolss_DriverInfo3_architecture = -1;
427 static gint hf_spoolss_spoolss_JobInfo4_devmode = -1;
428 static gint hf_spoolss_spoolss_JobInfo4_priority = -1;
429 static gint hf_spoolss_spoolss_EnumPrinterData_value_name = -1;
430 static gint hf_spoolss_spoolss_SetPrinterInfo0_status = -1;
431 static gint hf_spoolss_spoolss_FormArea_bottom = -1;
432 static gint hf_spoolss_spoolss_JobInfo4_server_name = -1;
433 static gint hf_spoolss_spoolss_SetJobInfo4_size = -1;
434 static gint hf_spoolss__spoolss_EnumJobs_offered = -1;
435 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE = -1;
436 static gint hf_spoolss_spoolss_DriverInfo3_version = -1;
437 static gint hf_spoolss_spoolss_GetJob_handle = -1;
438 static gint hf_spoolss_spoolss_AddPrinter_secdesc_ctr = -1;
439 static gint hf_spoolss_spoolss_DeviceMode_duplex = -1;
440 static gint hf_spoolss_spoolss_RouterReplyPrinterEx_color = -1;
441 static gint hf_spoolss_spoolss_DeletePort_port_name = -1;
442 static gint hf_spoolss__spoolss_EnumForms_handle = -1;
443 static gint hf_spoolss_spoolss_FormInfo2_flags = -1;
444 static gint hf_spoolss_spoolss_SetPrinterInfo2_status = -1;
445 static gint hf_spoolss_spoolss_AddDriverInfo2_config_file = -1;
446 static gint hf_spoolss_spoolss_SetJobInfo2_document_name = -1;
447 static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL = -1;
448 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT = -1;
449 static gint hf_spoolss_spoolss_PrinterInfo0_spooling = -1;
450 static gint hf_spoolss_spoolss_AddDriverInfo4__ndr_size_dependent_files = -1;
451 static gint hf_spoolss_spoolss_PSDRVEXTRA_wCoreJTExpSize = -1;
452 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_needed = -1;
453 static gint hf_spoolss_spoolss_PortInfoFF_monitor_data = -1;
454 static gint hf_spoolss_RPC_PrintNamedProperty_propertyValue = -1;
455 static gint hf_spoolss_spoolss_JobInfo2_position = -1;
456 static gint hf_spoolss_spoolss_GetPrinterDataEx_type = -1;
457 static gint hf_spoolss_spoolss_EnumPrinterDrivers_level = -1;
458 static gint hf_spoolss_spoolss_AddDriverInfo6_default_datatype = -1;
459 static gint hf_spoolss_spoolss_Time_millisecond = -1;
460 static gint hf_spoolss_spoolss_EnumForms_needed = -1;
461 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwNupDirection = -1;
462 static gint hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_version = -1;
463 static gint hf_spoolss_spoolss_AddDriverInfo8_driver_path = -1;
464 static gint hf_spoolss_spoolss_SetJobInfo4_time = -1;
465 static gint hf_spoolss_spoolss_GetPrinterDriver2_architecture = -1;
466 static gint hf_spoolss_spoolss_GetPrinter_buffer = -1;
467 static gint hf_spoolss_spoolss_PrinterData_string = -1;
468 static gint hf_spoolss_spoolss_JobInfo4_print_processor = -1;
469 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETED = -1;
470 static gint hf_spoolss_spoolss_OEM_DMEXTRA_dwVersion = -1;
471 static gint hf_spoolss_spoolss_SetPortInfo_info2 = -1;
472 static gint hf_spoolss_spoolss_JobInfo_info3 = -1;
473 static gint hf_spoolss_spoolss_AddDriverInfo4_architecture = -1;
474 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED = -1;
475 static gint hf_spoolss_spoolss_EnumPrinterKey__ndr_size = -1;
476 static gint hf_spoolss_spoolss_EnumPrinterDataEx_count = -1;
477 static gint hf_spoolss_spoolss_FormInfo2_display_name = -1;
478 static gint hf_spoolss__spoolss_EnumPrintProcessors_offered = -1;
479 static gint hf_spoolss_spoolss_DriverInfo4_default_datatype = -1;
480 static gint hf_spoolss_spoolss_EnumForms_offered = -1;
481 static gint hf_spoolss_spoolss_EnumPrinterDataEx_key_name = -1;
482 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwY = -1;
483 static gint hf_spoolss__spoolss_EnumPorts_level = -1;
484 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwChecksum32 = -1;
485 static gint hf_spoolss_spoolss_ReplyOpenPrinter_type = -1;
486 static gint hf_spoolss_spoolss_DeviceMode_copies = -1;
487 static gint hf_spoolss_spoolss_EnumPrinterDataEx_needed = -1;
488 static gint hf_spoolss_spoolss_AddDriverInfo3_data_file = -1;
489 static gint hf_spoolss_spoolss_PortData1_protocol = -1;
490 static gint hf_spoolss_spoolss_JobInfo4_size = -1;
491 static gint hf_spoolss_spoolss_EnumPrinters_level = -1;
492 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER = -1;
493 static gint hf_spoolss_spoolss_UserLevel3_client = -1;
494 static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psblob = -1;
495 static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cOut = -1;
496 static gint hf_spoolss_spoolss_JobInfo4_status = -1;
497 static gint hf_spoolss_spoolss_OSVersion_platform_id = -1;
498 static gint hf_spoolss_spoolss_PrinterInfo0_processor_architecture = -1;
499 static gint hf_spoolss_spoolss_UNIDRVEXTRA_bReversePrint = -1;
500 static gint hf_spoolss_spoolss_SetJobInfo2_total_pages = -1;
501 static gint hf_spoolss_spoolss_PortData2_device_type = -1;
502 static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED = -1;
503 static gint hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr = -1;
504 static gint hf_spoolss_spoolss_SetJobInfo2_status = -1;
505 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME = -1;
506 static gint hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData = -1;
507 static gint hf_spoolss_spoolss_ClosePrinter_handle = -1;
508 static gint hf_spoolss_spoolss_AddDriverInfo3_driver_name = -1;
509 static gint hf_spoolss_spoolss_PrinterInfo0_total_pages = -1;
510 static gint hf_spoolss_spoolss_PSDRVEXTRA_bReversePrint = -1;
511 static gint hf_spoolss__spoolss_EnumPrinterDrivers_level = -1;
512 static gint hf_spoolss__spoolss_EnumForms_buffer = -1;
513 static gint hf_spoolss_spoolss_PSDRVEXTRA400_dwFlags = -1;
514 static gint hf_spoolss_spoolss_PrinterInfo5_attributes = -1;
515 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caRedGamma = -1;
516 static gint hf_spoolss_spoolss_JobInfo1_priority = -1;
517 static gint hf_spoolss_spoolss_SetPrinterInfo1_name = -1;
518 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY = -1;
519 static gint hf_spoolss_spoolss_JobInfo1_data_type = -1;
520 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5 = -1;
521 static gint hf_spoolss_spoolss_DeviceMode_bitsperpel = -1;
522 static gint hf_spoolss_spoolss_OSVersionEx_extra_string = -1;
523 static gint hf_spoolss_spoolss_PrinterInfo_info0 = -1;
524 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwOptions = -1;
525 static gint hf_spoolss_spoolss_PSDRVEXTRA_caRedGreenTint = -1;
526 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED = -1;
527 static gint hf_spoolss_spoolss_SetJobInfo4_user_name = -1;
528 static gint hf_spoolss_spoolss_DocumentInfoCtr_level = -1;
529 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwChecksum32 = -1;
530 static gint hf_spoolss_spoolss_AddMonitorInfo1_monitor_name = -1;
531 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_offered = -1;
532 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_level = -1;
533 static gint hf_spoolss_spoolss_DevmodeContainer_devmode = -1;
534 static gint hf_spoolss_RPC_BIDI_DATA_u_sData = -1;
535 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwNupBorderFlags = -1;
536 static gint hf_spoolss_spoolss_JobInfo3_reserved = -1;
537 static gint hf_spoolss_spoolss_PrinterInfo0_version = -1;
538 static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies = -1;
539 static gint hf_spoolss__spoolss_EnumPrintProcessors_count = -1;
540 static gint hf_spoolss___spoolss_EnumPrinters_level = -1;
541 static gint hf_spoolss_spoolss_SetJobInfo2_priority = -1;
542 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer = -1;
543 static gint hf_spoolss_spoolss_UserLevel3_size = -1;
544 static gint hf_spoolss_spoolss_DriverInfo8_driver_date = -1;
545 static gint hf_spoolss_spoolss_JobInfo4_user_name = -1;
546 static gint hf_spoolss_spoolss_DeviceMode_icmintent = -1;
547 static gint hf_spoolss_spoolss_DriverInfo101_monitor_name = -1;
548 static gint hf_spoolss_spoolss_SetJobInfo1_job_id = -1;
549 static gint hf_spoolss_spoolss_PrinterInfo0_high_part_total_bytes = -1;
550 static gint hf_spoolss_spoolss_FormInfo2_unused = -1;
551 static gint hf_spoolss_spoolss_DriverInfo6_driver_date = -1;
552 static gint hf_spoolss__spoolss_EnumPrinterDataEx_count = -1;
553 static gint hf_spoolss_spoolss_JobInfo3_job_id = -1;
554 static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter = -1;
555 static gint hf_spoolss_spoolss_EnumPrinters_buffer = -1;
556 static gint hf_spoolss__spoolss_EnumPrinters_buffer = -1;
557 static gint hf_spoolss_spoolss_SetPortInfoFF_monitor_data = -1;
558 static gint hf_spoolss_spoolss_Notify_field = -1;
559 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTING = -1;
560 static gint hf_spoolss_spoolss_SetPortInfo3_status = -1;
561 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WAITING = -1;
562 static gint hf_spoolss_spoolss_DriverInfo2_data_file = -1;
563 static gint hf_spoolss_spoolss_PrinterInfo2_secdesc_ = -1;
564 static gint hf_spoolss_spoolss_GetPrinterData_type = -1;
565 static gint hf_spoolss_spoolss_DeletePrinterDataEx_key_name = -1;
566 static gint hf_spoolss_spoolss_EnumPrinterDataEx_handle = -1;
567 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caBrightness = -1;
568 static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cIn = -1;
569 static gint hf_spoolss_spoolss_SetPrinterInfo1_flags = -1;
570 static gint hf_spoolss_spoolss_AddFormInfo2_form_name = -1;
571 static gint hf_spoolss_spoolss_MonitorInfo_info2 = -1;
572 static gint hf_spoolss_spoolss_SetJobInfo_info4 = -1;
573 static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt64 = -1;
574 static gint hf_spoolss_spoolss_JTEXP_wCoreMFOSize = -1;
575 static gint hf_spoolss_spoolss_DeletePrinterKey_handle = -1;
576 static gint hf_spoolss_spoolss_PrinterInfo0_reserved2 = -1;
577 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER = -1;
578 static gint hf_spoolss_spoolss_DriverInfo8_print_processor = -1;
579 static gint hf_spoolss_spoolss_EnumPrinters_server = -1;
580 static gint hf_spoolss_spoolss_EnumMonitors_count = -1;
581 static gint hf_spoolss_spoolss_JobInfo2_secdesc = -1;
582 static gint hf_spoolss_spoolss_JobInfo2_job_id = -1;
583 static gint hf_spoolss_spoolss_DriverInfo8_architecture = -1;
584 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer = -1;
585 static gint hf_spoolss__spoolss_EnumPrinters_info = -1;
586 static gint hf_spoolss_spoolss_DriverInfo5_architecture = -1;
587 static gint hf_spoolss_spoolss_JobInfo4_document_name = -1;
588 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caFlags = -1;
589 static gint hf_spoolss_spoolss_PrintProcessorDirectoryInfo1_directory_name = -1;
590 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caSize = -1;
591 static gint hf_spoolss__spoolss_EnumPrinterDataEx_offered = -1;
592 static gint hf_spoolss_spoolss_RouterReplyPrinter_buffer = -1;
593 static gint hf_spoolss_spoolss_SetPrinterInfo6_status = -1;
594 static gint hf_spoolss_spoolss_PrinterInfo0_free_build = -1;
595 static gint hf_spoolss_spoolss_GetPrinterDriver2_buffer = -1;
596 static gint hf_spoolss_spoolss_AddDriverInfo_info3 = -1;
597 static gint hf_spoolss_spoolss_AddDriverInfo8_hardware_id = -1;
598 static gint hf_spoolss___spoolss_EnumPrinters_info = -1;
599 static gint hf_spoolss_spoolss_DriverInfo7_install_source_root = -1;
600 static gint hf_spoolss_spoolss_SetJobInfo4_position = -1;
601 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY = -1;
602 static gint hf_spoolss_spoolss_PrinterData_string_array = -1;
603 static gint hf_spoolss_spoolss_AddFormInfoCtr_info = -1;
604 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab = -1;
605 static gint hf_spoolss_spoolss_EnumPorts_count = -1;
606 static gint hf_spoolss_spoolss_DeviceMode_pelsheight = -1;
607 static gint hf_spoolss_spoolss_NotifyString_string = -1;
608 static gint hf_spoolss_spoolss_FormInfo1_size = -1;
609 static gint hf_spoolss_spoolss_AddMonitorInfo2_monitor_name = -1;
610 static gint hf_spoolss_spoolss_PrinterInfo0_time = -1;
611 static gint hf_spoolss_spoolss_JobInfo2_notify_name = -1;
612 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE = -1;
613 static gint hf_spoolss_spoolss_AddDriverInfo8_architecture = -1;
614 static gint hf_spoolss_spoolss_DriverInfo6_manufacturer_name = -1;
615 static gint hf_spoolss__spoolss_EnumPrinters_server = -1;
616 static gint hf_spoolss_RPC_BIDI_REQUEST_DATA_dwReqNumber = -1;
617 static gint hf_spoolss_spoolss_SetPrinterInfo0_ref_ic = -1;
618 static gint hf_spoolss_spoolss_JTEXP_FeatureOptionPairs = -1;
619 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_LOGPIXELS = -1;
620 static gint hf_spoolss_spoolss_DriverInfo6_manufacturer_url = -1;
621 static gint hf_spoolss__spoolss_EnumMonitors_offered = -1;
622 static gint hf_spoolss_spoolss_AddDriverInfo8_driver_version = -1;
623 static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut = -1;
624 static gint hf_spoolss_spoolss_SetPrinterInfo2_sepfile = -1;
625 static gint hf_spoolss_spoolss_GetPrinterDriver_info = -1;
626 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = -1;
627 static gint hf_spoolss_spoolss_DeviceMode_displayfrequency = -1;
628 static gint hf_spoolss_spoolss_JobInfo2_text_status = -1;
629 static gint hf_spoolss_spoolss_AddPrinterDriver_info_ctr = -1;
630 static gint hf_spoolss_spoolss_AddDriverInfo8_printer_driver_attributes = -1;
631 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN = -1;
632 static gint hf_spoolss_spoolss_MonitorInfo_info1 = -1;
633 static gint hf_spoolss___spoolss_EnumPrinterDrivers_info = -1;
634 static gint hf_spoolss_spoolss_AddDriverInfo8_previous_names = -1;
635 static gint hf_spoolss_spoolss_AddDriverInfo8_dependent_files = -1;
636 static gint hf_spoolss_spoolss_EnumPrinterData_value_needed = -1;
637 static gint hf_spoolss_spoolss_AddDriverInfo2_version = -1;
638 static gint hf_spoolss_spoolss_PSDRVEXTRA500_aOptions = -1;
639 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER = -1;
640 static gint hf_spoolss_spoolss_SetPrinterInfo0_high_part_total_bytes = -1;
641 static gint hf_spoolss_spoolss_SetJobInfo2_time = -1;
642 static gint hf_spoolss__spoolss_EnumForms_level = -1;
643 static gint hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url = -1;
644 static gint hf_spoolss_spoolss_AddForm_info_ctr = -1;
645 static gint hf_spoolss_spoolss_PrinterInfo2_cjobs = -1;
646 static gint hf_spoolss_spoolss_GetForm_needed = -1;
647 static gint hf_spoolss_spoolss_UNIDRVEXTRA_wCoreFullSize = -1;
648 static gint hf_spoolss_spoolss_GetPrinterDriver2_info_ = -1;
649 static gint hf_spoolss_spoolss_SetPrinterData_handle = -1;
650 static gint hf_spoolss_spoolss_GetPrinter_info_ = -1;
651 static gint hf_spoolss_spoolss_PortInfo3_status = -1;
652 static gint hf_spoolss_spoolss_SetPrinterInfo4_printername = -1;
653 static gint hf_spoolss_spoolss_EnumMonitors_info = -1;
654 static gint hf_spoolss_spoolss_SetJobInfo2_pages_printed = -1;
655 static gint hf_spoolss_spoolss_JobInfo2_secdesc_ = -1;
656 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caBlueGamma = -1;
657 static gint hf_spoolss_spoolss_JobInfo4_data_type = -1;
658 static gint hf_spoolss_spoolss_EnumJobs_firstjob = -1;
659 static gint hf_spoolss_spoolss_DriverInfo_info4 = -1;
660 static gint hf_spoolss_spoolss_SetPrinterInfo0_enumerate_network_printers = -1;
661 static gint hf_spoolss__spoolss_EnumPrinterDrivers_needed = -1;
662 static gint hf_spoolss_spoolss_SetJobInfo4_printer_name = -1;
663 static gint hf_spoolss_spoolss_JobInfo2_printer_name = -1;
664 static gint hf_spoolss_spoolss_EnumPrinterKey_offered = -1;
665 static gint hf_spoolss__spoolss_EnumPorts_offered = -1;
666 static gint hf_spoolss_spoolss_DeviceMode_yresolution = -1;
667 static gint hf_spoolss_spoolss_EnumPrinters_info = -1;
668 static gint hf_spoolss_spoolss_AddDriverInfo4_default_datatype = -1;
669 static gint hf_spoolss_spoolss_JobInfo2_until_time = -1;
670 static gint hf_spoolss_spoolss_EnumPrinterData_data_offered = -1;
671 static gint hf_spoolss_spoolss_NotifyOptionType_u2 = -1;
672 static gint hf_spoolss___spoolss_EnumPrintProcessors_level = -1;
673 static gint hf_spoolss_spoolss_EnumJobs_count = -1;
674 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAUSED = -1;
675 static gint hf_spoolss_spoolss_SetPrinterInfo0_change_id = -1;
676 static gint hf_spoolss_spoolss_AddDriverInfo4_previous_names = -1;
677 static gint hf_spoolss_spoolss_DeletePrinterData_value_name = -1;
678 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwSignature = -1;
679 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_ERROR = -1;
680 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = -1;
681 static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_JobId = -1;
682 static gint hf_spoolss_spoolss_SetPrinterInfoCtr_level = -1;
683 static gint hf_spoolss_spoolss_DeviceModeInfo_devmode_ = -1;
684 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER = -1;
685 static gint hf_spoolss_spoolss_NotifyOptionType_u3 = -1;
686 static gint hf_spoolss_spoolss_JobInfo1_server_name = -1;
687 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caColorfulness = -1;
688 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwOptions = -1;
689 static gint hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr = -1;
690 static gint hf_spoolss_spoolss_DriverInfo6_provider = -1;
691 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION = -1;
692 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_server = -1;
693 static gint hf_spoolss_spoolss_SetJobInfo2_notify_name = -1;
694 static gint hf_spoolss___spoolss_EnumPrintProcDataTypes_info = -1;
695 static gint hf_spoolss_spoolss_JobInfo2_data_type = -1;
696 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_needed = -1;
697 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwHeightOffset = -1;
698 static gint hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData = -1;
699 static gint hf_spoolss_spoolss_AddFormInfoCtr_level = -1;
700 static gint hf_spoolss_spoolss_RouterReplyPrinterEx_reply_type = -1;
701 static gint hf_spoolss_spoolss_SetJobInfo1_user_name = -1;
702 static gint hf_spoolss_spoolss_AddFormInfo2_area = -1;
703 static gint hf_spoolss_spoolss_JobInfo4_job_id = -1;
704 static gint hf_spoolss_spoolss_JobInfo4_secdesc_ = -1;
705 static gint hf_spoolss_spoolss_GetJob_info_ = -1;
706 static gint hf_spoolss_spoolss_DriverInfo8_manufacturer_name = -1;
707 static gint hf_spoolss_spoolss_EnumPrinterDrivers_offered = -1;
708 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_SPOOLING = -1;
709 static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Count = -1;
710 static gint hf_spoolss_spoolss_SetJobInfo4_parameters = -1;
711 static gint hf_spoolss_spoolss_DriverInfo101_file_info = -1;
712 static gint hf_spoolss_spoolss_GetPrinter_level = -1;
713 static gint hf_spoolss_spoolss_DeviceMode_papersize = -1;
714 static gint hf_spoolss_spoolss_DeletePrinterKey_key_name = -1;
715 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caContrast = -1;
716 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES = -1;
717 static gint hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr = -1;
718 static gint hf_spoolss_spoolss_AddPerMachineConnection_printername = -1;
719 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_server = -1;
720 static gint hf_spoolss_spoolss_SetPrinterDataEx_value_name = -1;
721 static gint hf_spoolss_spoolss_PrinterInfo_info5 = -1;
722 static gint hf_spoolss_spoolss_UNIDRVEXTRA_wReserved = -1;
723 static gint hf_spoolss_spoolss_SetJobInfo1_pages_printed = -1;
724 static gint hf_spoolss_spoolss_XcvData_out_data_size = -1;
725 static gint hf_spoolss__spoolss_EnumPorts_buffer = -1;
726 static gint hf_spoolss__spoolss_EnumPrinters_needed = -1;
727 static gint hf_spoolss_spoolss_PrinterInfo0_ref_ic = -1;
728 static gint hf_spoolss_spoolss_DocumentInfo1_document_name = -1;
729 static gint hf_spoolss_spoolss_DriverInfo3_monitor_name = -1;
730 static gint hf_spoolss___spoolss_EnumJobs_level = -1;
731 static gint hf_spoolss_spoolss_RpcDeleteJobNamedProperty_JobId = -1;
732 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION = -1;
733 static gint hf_spoolss__spoolss_EnumPrintProcessors_needed = -1;
734 static gint hf_spoolss_spoolss_PrintProcDataTypesInfo_info1 = -1;
735 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6 = -1;
736 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE = -1;
737 static gint hf_spoolss_spoolss_SetJobInfo4_total_pages = -1;
738 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwWidthOffset = -1;
739 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwPadding = -1;
740 static gint hf_spoolss_spoolss_AddDriverInfo5_architecture = -1;
741 static gint hf_spoolss_RPC_PrintPropertyValue_ePropertyType = -1;
742 static gint hf_spoolss_spoolss_SetJobInfo2_user_name = -1;
743 static gint hf_spoolss_spoolss_OSVersion_extra_string_ = -1;
744 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE = -1;
745 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwNupBorderFlags = -1;
746 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT = -1;
747 static gint hf_spoolss_spoolss_SetJob_command = -1;
748 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_info_ = -1;
749 static gint hf_spoolss_spoolss_FormInfo2_string_type = -1;
750 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwFlags = -1;
751 static gint hf_spoolss_spoolss_AddDriverInfo3_monitor_name = -1;
752 static gint hf_spoolss_spoolss_SetPrinterInfo0_version = -1;
753 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP = -1;
754 static gint hf_spoolss_spoolss_AddPrinterEx_devmode_ctr = -1;
755 static gint hf_spoolss_spoolss_SetPrinterDataEx_data = -1;
756 static gint hf_spoolss_spoolss_CreatePrinterIC_handle = -1;
757 static gint hf_spoolss_spoolss_DriverInfo6_help_file = -1;
758 static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_color_profiles = -1;
759 static gint hf_spoolss__spoolss_EnumPrinters_flags = -1;
760 static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra500 = -1;
761 static gint hf_spoolss_spoolss_PrinterInfo_info2 = -1;
762 static gint hf_spoolss_spoolss_SetPrinterInfo_info6 = -1;
763 static gint hf_spoolss_spoolss_EnumPrintProcessors_environment = -1;
764 static gint hf_spoolss_spoolss_OSVersion_build = -1;
765 static gint hf_spoolss_spoolss_PrinterInfo0_last_error = -1;
766 static gint hf_spoolss_spoolss_AddPerMachineConnection_printserver = -1;
767 static gint hf_spoolss_spoolss_WritePrinter_data = -1;
768 static gint hf_spoolss__spoolss_EnumJobs_info = -1;
769 static gint hf_spoolss_spoolss_DriverInfo7_size = -1;
770 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caIlluminantIndex = -1;
771 static gint hf_spoolss_spoolss_EnumPorts_offered = -1;
772 static gint hf_spoolss_spoolss_PortData1_ip_address = -1;
773 static gint hf_spoolss_spoolss_Time_minute = -1;
774 static gint hf_spoolss_spoolss_AddPortEx_monitor_name = -1;
775 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_iQuality = -1;
776 static gint hf_spoolss_spoolss_DriverInfo3_default_datatype = -1;
777 static gint hf_spoolss_spoolss_SetJobInfo2_until_time = -1;
778 static gint hf_spoolss_spoolss_XcvData_status_code = -1;
779 static gint hf_spoolss_spoolss_JobInfo3_next_job_id = -1;
780 static gint hf_spoolss_spoolss_AddDriverInfoCtr_level = -1;
781 static gint hf_spoolss_RPC_PrintPropertyValue_value = -1;
782 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caRedGamma = -1;
783 static gint hf_spoolss_spoolss_PrinterEnumValues_data_ = -1;
784 static gint hf_spoolss_spoolss_DriverInfo1_driver_name = -1;
785 static gint hf_spoolss_spoolss_DeviceMode_driverextra_data = -1;
786 static gint hf_spoolss_spoolss_UserLevel1_build = -1;
787 static gint hf_spoolss_spoolss_AddDriverInfo8_data_file = -1;
788 static gint hf_spoolss_spoolss_PSDRVEXTRA_wOEMExtra = -1;
789 static gint hf_spoolss_spoolss_GetPrinterDataEx_handle = -1;
790 static gint hf_spoolss_spoolss_GetJob_info = -1;
791 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caContrast = -1;
792 static gint hf_spoolss_spoolss_AddPrinterEx_info_ctr = -1;
793 static gint hf_spoolss_spoolss_PSDRVEXTRA_wFeedDirection = -1;
794 static gint hf_spoolss__spoolss_EnumPrintProcessors_buffer = -1;
795 static gint hf_spoolss_UNIVERSAL_FONT_ID_ctr_count = -1;
796 static gint hf_spoolss_spoolss_NotifyString_size = -1;
797 static gint hf_spoolss_spoolss_PrinterInfo0_status = -1;
798 static gint hf_spoolss_spoolss_SetPrinterInfo_info3 = -1;
799 static gint hf_spoolss_spoolss_PrinterInfo0_c_setprinter = -1;
800 static gint hf_spoolss__spoolss_EnumPrintProcessors_environment = -1;
801 static gint hf_spoolss_spoolss_GetForm_offered = -1;
802 static gint hf_spoolss_spoolss_SetPrinterInfo0_num_error_out_of_paper = -1;
803 static gint hf_spoolss___spoolss_EnumPrinters_count = -1;
804 static gint hf_spoolss_spoolss_PortInfo3_severity = -1;
805 static gint hf_spoolss_spoolss_XcvData_out_data = -1;
806 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_servername = -1;
807 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_info = -1;
808 static gint hf_spoolss_spoolss_EnumPrinterKey_key_buffer = -1;
809 static gint hf_spoolss_spoolss_UserLevel3_flags = -1;
810 static gint hf_spoolss_spoolss_DeletePrinter_handle = -1;
811 static gint hf_spoolss_spoolss_AddDriverInfo4_config_file = -1;
812 static gint hf_spoolss_spoolss_GetCorePrinterDrivers_servername = -1;
813 static gint hf_spoolss_spoolss_GetPrinterData_handle = -1;
814 static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_printer_local = -1;
815 static gint hf_spoolss_spoolss_DeletePrinterDriverEx_architecture = -1;
816 static gint hf_spoolss___spoolss_EnumMonitors_level = -1;
817 static gint hf_spoolss_spoolss_RouterReplyPrinterEx_info = -1;
818 static gint hf_spoolss_spoolss_DeletePrintProcessor_print_processor_name = -1;
819 static gint hf_spoolss_spoolss_DeletePrinterDriver_server = -1;
820 static gint hf_spoolss_spoolss_PSDRVEXTRA_caBrightness = -1;
821 static gint hf_spoolss_spoolss_PortData1_size = -1;
822 static gint hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES = -1;
823 static gint hf_spoolss_spoolss_PortData1_snmpcommunity = -1;
824 static gint hf_spoolss_spoolss_UserLevel1_client = -1;
825 static gint hf_spoolss_spoolss_KeyNames_string_array = -1;
826 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture = -1;
827 static gint hf_spoolss__spoolss_EnumMonitors_servername = -1;
828 static gint hf_spoolss_spoolss_AddMonitorInfo_info2 = -1;
829 static gint hf_spoolss_spoolss_SetPrinterInfo2_sharename = -1;
830 static gint hf_spoolss_spoolss_SetPrinterInfo_info4 = -1;
831 static gint hf_spoolss_spoolss_EnumForms_level = -1;
832 static gint hf_spoolss_spoolss_ReadPrinter_handle = -1;
833 static gint hf_spoolss_spoolss_DriverInfo8_inf_path = -1;
834 static gint hf_spoolss_spoolss_AddDriverInfo6_driver_version = -1;
835 static gint hf_spoolss_spoolss_SetJobInfo_info2 = -1;
836 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_environment = -1;
837 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED = -1;
838 static gint hf_spoolss_spoolss_AddDriverInfo8_color_profiles = -1;
839 static gint hf_spoolss_spoolss_AddDriverInfo8_vendor_setup = -1;
840 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMINTENT = -1;
841 static gint hf_spoolss_spoolss_OSVersionEx_service_pack_minor = -1;
842 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE = -1;
843 static gint hf_spoolss_spoolss_StartDocPrinter_job_id = -1;
844 static gint hf_spoolss__spoolss_EnumPrinters_count = -1;
845 static gint hf_spoolss_spoolss_AddFormInfo2_lang_id = -1;
846 static gint hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR = -1;
847 static gint hf_spoolss_spoolss_JobInfo_info2 = -1;
848 static gint hf_spoolss__spoolss_EnumPrinterDrivers_count = -1;
849 static gint hf_spoolss_spoolss_PortInfo_info1 = -1;
850 static gint hf_spoolss_spoolss_EnumForms_buffer = -1;
851 static gint hf_spoolss_spoolss_PortData1_snmp_enabled = -1;
852 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLOR = -1;
853 static gint hf_spoolss_spoolss_SetPortInfo2_port_name = -1;
854 static gint hf_spoolss_spoolss_EnumMonitors_buffer = -1;
855 static gint hf_spoolss_spoolss_PrinterInfo2_parameters = -1;
856 static gint hf_spoolss_spoolss_CorePrinterDriver_driver_date = -1;
857 static gint hf_spoolss_spoolss_EnumPrinters_flags = -1;
858 static gint hf_spoolss_spoolss_SetPrinterInfo2_attributes = -1;
859 static gint hf_spoolss___spoolss_EnumJobs_info = -1;
860 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32 = -1;
861 static gint hf_spoolss_spoolss_ReadPrinter_data = -1;
862 static gint hf_spoolss_spoolss_DriverInfo_info2 = -1;
863 static gint hf_spoolss_spoolss_DriverInfo5_version = -1;
864 static gint hf_spoolss_spoolss_JobInfo4_start_time = -1;
865 static gint hf_spoolss_spoolss_AddDriverInfo6_config_file = -1;
866 static gint hf_spoolss_spoolss_AddFormInfo1_flags = -1;
867 static gint hf_spoolss_spoolss_GetPrinterDriver_level = -1;
868 static gint hf_spoolss_spoolss_ReadPrinter__data_size = -1;
869 static gint hf_spoolss_spoolss_EnumPrintProcessors_buffer = -1;
870 static gint hf_spoolss_spoolss_SetPortInfo2_description = -1;
871 static gint hf_spoolss_spoolss_MonitorInfo1_monitor_name = -1;
872 static gint hf_spoolss_spoolss_DriverInfo3_driver_name = -1;
873 static gint hf_spoolss_spoolss_PrinterInfo5_printername = -1;
874 static gint hf_spoolss_spoolss_SetJobInfo4_status = -1;
875 static gint hf_spoolss__spoolss_EnumPorts_needed = -1;
876 static gint hf_spoolss_spoolss_GetPrinterDataEx_offered = -1;
877 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY = -1;
878 static gint hf_spoolss___spoolss_EnumPorts_info = -1;
879 static gint hf_spoolss_spoolss_EnumPrinterDrivers_environment = -1;
880 static gint hf_spoolss_spoolss_FormInfo2_mui_dll = -1;
881 static gint hf_spoolss_spoolss_DeviceMode_driverversion = -1;
882 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTED = -1;
883 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI = -1;
884 static gint hf_spoolss_spoolss_GetPrinterDriver2_client_major_version = -1;
885 static gint hf_spoolss__spoolss_EnumJobs_buffer = -1;
886 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETING = -1;
887 static gint hf_spoolss__spoolss_EnumForms_needed = -1;
888 static gint hf_spoolss_spoolss_Notify_type = -1;
889 static gint hf_spoolss_spoolss_PortData2_port_number = -1;
890 static gint hf_spoolss_spoolss_PrinterInfo0_max_spooling = -1;
891 static gint hf_spoolss_spoolss_PSDRVEXTRA_caColorfulness = -1;
892 static gint hf_spoolss_spoolss_JobInfo2_parameters = -1;
893 static gint hf_spoolss_spoolss_GetForm_handle = -1;
894 static gint hf_spoolss_spoolss_JobInfo2_print_processor = -1;
895 static gint hf_spoolss_spoolss_SetPrinterInfo0_last_error = -1;
896 static gint hf_spoolss_spoolss_AddDriverInfo4_monitor_name = -1;
897 static gint hf_spoolss_spoolss_UserLevel3_build = -1;
898 static gint hf_spoolss_spoolss_OSVersionEx_build = -1;
899 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL = -1;
900 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername = -1;
901 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wOEMExtra = -1;
902 static gint hf_spoolss_spoolss_DriverFileInfo_file_type = -1;
903 static gint hf_spoolss_RPC_BIDI_DATA_u_iData = -1;
904 static gint hf_spoolss_spoolss_DriverInfo8_driver_path = -1;
905 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_XPS = -1;
906 static gint hf_spoolss_spoolss_PSDRVEXTRA500_iDialect = -1;
907 static gint hf_spoolss__spoolss_EnumMonitors_info = -1;
908 static gint hf_spoolss_spoolss_AddPrinterEx_handle = -1;
909 static gint hf_spoolss_spoolss_JobInfo1_status = -1;
910 static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE = -1;
911 static gint hf_spoolss_spoolss_JobInfo4_secdesc = -1;
912 static gint hf_spoolss_spoolss_AddFormInfo1_size = -1;
913 static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_core_driver_dependencies = -1;
914 static gint hf_spoolss__spoolss_EnumPrinterDrivers_server = -1;
915 static gint hf_spoolss_spoolss_PrinterInfo0_processor_level = -1;
916 static gint hf_spoolss_spoolss_SetJobInfo2_printer_name = -1;
917 static gint hf_spoolss__spoolss_EnumMonitors_count = -1;
918 static gint hf_spoolss_spoolss_JobInfo4_pages_printed = -1;
919 static gint hf_spoolss_spoolss_NotifyOptionType_fields = -1;
920 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX = -1;
921 static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra351 = -1;
922 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwX = -1;
923 static gint hf_spoolss_spoolss_DevmodeContainer_devmode_ = -1;
924 static gint hf_spoolss_spoolss_GetPrinter_info = -1;
925 static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt32 = -1;
926 static gint hf_spoolss_spoolss_NotifyData_devmode = -1;
927 static gint hf_spoolss_spoolss_DriverInfo8_config_file = -1;
928 static gint hf_spoolss_spoolss_SetPrinterDataEx_key_name = -1;
929 static gint hf_spoolss_spoolss_PSDRVEXTRA500_iPSLevel = -1;
930 static gint hf_spoolss_spoolss_PrinterInfo2_priority = -1;
931 static gint hf_spoolss_spoolss_AddFormInfo1_area = -1;
932 static gint hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_date = -1;
933 static gint hf_spoolss_spoolss_GetPrinterDriver2_offered = -1;
934 static gint hf_spoolss_spoolss_PSDRVEXTRA500_fxScrAngle = -1;
935 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved2 = -1;
936 static gint hf_spoolss_spoolss_PrinterEnumValues_value_name = -1;
937 static gint hf_spoolss_spoolss_SetPrinterInfo0_time = -1;
938 static gint hf_spoolss__spoolss_EnumPrinterDrivers_offered = -1;
939 static gint hf_spoolss_spoolss_DriverInfo101_file_count = -1;
940 static gint hf_spoolss_spoolss_PrinterInfo7_guid = -1;
941 static gint hf_spoolss_spoolss_StringArray__ndr_size = -1;
942 static gint hf_spoolss_spoolss_NotifyInfo_count = -1;
943 static gint hf_spoolss_spoolss_FormArea_left = -1;
944 static gint hf_spoolss_spoolss_PSDRVEXTRA_iLayout = -1;
945 static gint hf_spoolss_spoolss_SetForm_info_ctr = -1;
946 static gint hf_spoolss_spoolss_AddFormInfo_info1 = -1;
947 static gint hf_spoolss_spoolss_Time_year = -1;
948 static gint hf_spoolss_spoolss_EnumPorts_servername = -1;
949 static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER = -1;
950 static gint hf_spoolss_spoolss_AddDriverInfo4_data_file = -1;
951 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4 = -1;
952 static gint hf_spoolss_spoolss_JobInfo4_parameters = -1;
953 static gint hf_spoolss__spoolss_EnumPorts_info = -1;
954 static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Version = -1;
955 static gint hf_spoolss_spoolss_PrinterInfo_info7 = -1;
956 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caContrast = -1;
957 static gint hf_spoolss_spoolss_OSVersionEx_suite_mask = -1;
958 static gint hf_spoolss_spoolss_PSDRVEXTRA_wCutSheet = -1;
959 static gint hf_spoolss_spoolss_RouterReplyPrinter_handle = -1;
960 static gint hf_spoolss_spoolss_DriverInfo7_version = -1;
961 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES = -1;
962 static gint hf_spoolss_spoolss_JobInfo4_notify_name = -1;
963 static gint hf_spoolss___spoolss_EnumPrintProcessors_info = -1;
964 static gint hf_spoolss_spoolss_OpenPrinterEx_printername = -1;
965 static gint hf_spoolss_spoolss_DeletePrinterDataEx_value_name = -1;
966 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_count = -1;
967 static gint hf_spoolss_UNIVERSAL_FONT_ID_Index = -1;
968 static gint hf_spoolss_spoolss_DeviceMode_reserved2 = -1;
969 static gint hf_spoolss_spoolss_AddDriverInfo3_dependent_files = -1;
970 static gint hf_spoolss_spoolss_DeletePrinterDriverEx_delete_flags = -1;
971 static gint hf_spoolss_spoolss_OSVersion_major = -1;
972 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH = -1;
973 static gint hf_spoolss_spoolss_NotifyData_string = -1;
974 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK = -1;
975 static gint hf_spoolss__spoolss_EnumMonitors_level = -1;
976 static gint hf_spoolss_spoolss_SetPrinterInfo0_global_counter = -1;
977 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwFlags = -1;
978 static gint hf_spoolss_spoolss_PrinterInfo5_portname = -1;
979 static gint hf_spoolss_spoolss_FormArea_top = -1;
980 static gint hf_spoolss_spoolss_SetJobInfo1_printer_name = -1;
981 static gint hf_spoolss_spoolss_PrinterInfo2_untiltime = -1;
982 static gint hf_spoolss_spoolss_SetPrinterDataEx_type = -1;
983 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caGreenGamma = -1;
984 static gint hf_spoolss___spoolss_EnumPorts_count = -1;
985 static gint hf_spoolss_spoolss_EnumPrinters_needed = -1;
986 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER = -1;
987 static gint hf_spoolss_spoolss_FormArea_right = -1;
988 static gint hf_spoolss_spoolss_Time_hour = -1;
989 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED = -1;
990 static gint hf_spoolss_spoolss_SetPrinterInfo0_free_build = -1;
991 static gint hf_spoolss_spoolss_DevmodeContainer__ndr_size = -1;
992 static gint hf_spoolss_spoolss_AddMonitorInfo2_dll_name = -1;
993 static gint hf_spoolss_spoolss_JobInfo2_pages_printed = -1;
994 static gint hf_spoolss_spoolss_JobInfo4_driver_name = -1;
995 static gint hf_spoolss_spoolss_PSDRVEXTRA_iDialect = -1;
996 static gint hf_spoolss_spoolss_JobInfo4_time = -1;
997 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER = -1;
998 static gint hf_spoolss_spoolss_GetForm_form_name = -1;
999 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceBlack = -1;
1000 static gint hf_spoolss_spoolss_PrinterInfo_info1 = -1;
1001 static gint hf_spoolss_spoolss_DeviceMode_logpixels = -1;
1002 static gint hf_spoolss_spoolss_AddDriverInfo3_default_datatype = -1;
1003 static gint hf_spoolss_spoolss_DeletePort_ptr = -1;
1004 static gint hf_spoolss_spoolss_PrinterEnumValues_data_length = -1;
1005 static gint hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema = -1;
1006 static gint hf_spoolss_spoolss_AddDriverInfo3_version = -1;
1007 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAPEROUT = -1;
1008 static gint hf_spoolss_spoolss_AddDriverInfoCtr_info = -1;
1009 static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_READ = -1;
1010 static gint hf_spoolss_spoolss_SetPrinterInfo2_comment = -1;
1011 static gint hf_spoolss_spoolss_SetPrinterInfo0_max_spooling = -1;
1012 static gint hf_spoolss_spoolss_PortData2_snmp_dev_index = -1;
1013 static gint hf_spoolss_spoolss_PrinterInfo4_printername = -1;
1014 static gint hf_spoolss_spoolss_DriverInfo101_architecture = -1;
1015 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE = -1;
1016 static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info = -1;
1017 static gint hf_spoolss_spoolss_JobInfo4_total_pages = -1;
1018 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name = -1;
1019 static gint hf_spoolss_spoolss_ReadPrinter_data_size = -1;
1020 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_info = -1;
1021 static gint hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION = -1;
1022 static gint hf_spoolss_spoolss_AddDriverInfo6_driver_path = -1;
1023 static gint hf_spoolss_spoolss_AddFormInfo_info2 = -1;
1024 static gint hf_spoolss_spoolss_SetPrinterInfo2_printername = -1;
1025 static gint hf_spoolss_spoolss_XcvData_in_data = -1;
1026 static gint hf_spoolss_spoolss_Notify_data = -1;
1027 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_YRESOLUTION = -1;
1028 static gint hf_spoolss_spoolss_ScheduleJob_jobid = -1;
1029 static gint hf_spoolss_spoolss_PrinterInfo0_change_id = -1;
1030 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwReserved3 = -1;
1031 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwHeightOffset = -1;
1032 static gint hf_spoolss_spoolss_FormInfo2_ressource_id = -1;
1033 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_required = -1;
1034 static gint hf_spoolss_spoolss_DeletePrinterDriverEx_driver = -1;
1035 static gint hf_spoolss_spoolss_GetPrinterDriver2_handle = -1;
1036 static gint hf_spoolss_spoolss_PrinterInfo2_secdesc = -1;
1037 static gint hf_spoolss_spoolss_GetCorePrinterDrivers_architecture = -1;
1038 static gint hf_spoolss_spoolss_AddPrinter_handle = -1;
1039 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL = -1;
1040 static gint hf_spoolss_spoolss_AddDriverInfo8_driver_date = -1;
1041 static gint hf_spoolss_spoolss_SetPrinterDataEx_offered = -1;
1042 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8 = -1;
1043 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS = -1;
1044 static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_REPUBLISH = -1;
1045 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caRedGreenTint = -1;
1046 static gint hf_spoolss_spoolss_FormInfo2_area = -1;
1047 static gint hf_spoolss_spoolss_ReplyOpenPrinter_bufsize = -1;
1048 static gint hf_spoolss_spoolss_GetPrinterDriver2_server_major_version = -1;
1049 static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name = -1;
1050 static gint hf_spoolss_spoolss_PrinterInfo1_description = -1;
1051 static gint hf_spoolss_spoolss_DriverInfo6_default_datatype = -1;
1052 static gint hf_spoolss_spoolss_ScheduleJob_handle = -1;
1053 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COPIES = -1;
1054 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caBlueGamma = -1;
1055 static gint hf_spoolss_spoolss_UNIDRVEXTRA3_4_wReserved = -1;
1056 static gint hf_spoolss_spoolss_AddPrinter_info_ctr = -1;
1057 static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra3_4 = -1;
1058 static gint hf_spoolss_spoolss_PrinterData_value = -1;
1059 static gint hf_spoolss_spoolss_AddDriverInfo8_inf_path = -1;
1060 static gint hf_spoolss_spoolss_UNIDRVEXTRA_wCoreJTExpSize = -1;
1061 static gint hf_spoolss_spoolss_DriverInfo8_help_file = -1;
1062 static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_data = -1;
1063 static gint hf_spoolss_spoolss_EnumMonitors_needed = -1;
1064 static gint hf_spoolss_spoolss_PSDRVEXTRA_fxScrFreq = -1;
1065 static gint hf_spoolss_spoolss_PrinterInfo5_device_not_selected_timeout = -1;
1066 static gint hf_spoolss_spoolss_DeviceModeInfo_devmode = -1;
1067 static gint hf_spoolss_spoolss_OSVersion_extra_string = -1;
1068 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_SCALE = -1;
1069 static gint hf_spoolss_spoolss_SetPortInfo3_severity = -1;
1070 static gint hf_spoolss_spoolss_PSDRVEXTRA_wchEPSFile = -1;
1071 static gint hf_spoolss_spoolss_DriverInfo101_previous_names = -1;
1072 static gint hf_spoolss_spoolss_SetPortInfo_info1 = -1;
1073 static gint hf_spoolss_spoolss_AddPrintProcessor_print_processor_name = -1;
1074 static gint hf_spoolss_spoolss_SetPrinterInfo0_reserved3 = -1;
1075 static gint hf_spoolss_spoolss_DriverInfo_info8 = -1;
1076 static gint hf_spoolss_spoolss_PrinterInfo2_drivername = -1;
1077 static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_flags = -1;
1078 static gint hf_spoolss_spoolss_PSDRVEXTRA_caGreenGamma = -1;
1079 static gint hf_spoolss_spoolss_DriverInfo101_default_datatype = -1;
1080 static gint hf_spoolss_spoolss_AddPerMachineConnection_server = -1;
1081 static gint hf_spoolss_spoolss_AddForm_handle = -1;
1082 static gint hf_spoolss_spoolss_DeviceMode_dithertype = -1;
1083 static gint hf_spoolss_spoolss_SetJobInfo2_print_processor = -1;
1084 static gint hf_spoolss_spoolss_GetPrinterDriver_needed = -1;
1085 static gint hf_spoolss_spoolss_PrinterInfo6_status = -1;
1086 static gint hf_spoolss_RPC_BIDI_DATA_u = -1;
1087 static gint hf_spoolss_RPC_BINARY_CONTAINER_pszString = -1;
1088 static gint hf_spoolss_spoolss_DeletePrinterDriverEx_version = -1;
1089 static gint hf_spoolss_spoolss_EnumJobs_needed = -1;
1090 static gint hf_spoolss__spoolss_EnumPrinterDataEx_key_name = -1;
1091 static gint hf_spoolss_spoolss_MonitorInfo2_environment = -1;
1092 static gint hf_spoolss_spoolss_DriverInfo3_data_file = -1;
1093 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL = -1;
1094 static gint hf_spoolss_spoolss_CorePrinterDriver_formname = -1;
1095 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_count = -1;
1096 static gint hf_spoolss_spoolss_AddPortEx_port_ctr = -1;
1097 static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id = -1;
1098 static gint hf_spoolss_spoolss_GetForm_info = -1;
1099 static gint hf_spoolss_spoolss_TimeCtr_size = -1;
1100 static gint hf_spoolss_spoolss_UNIDRVEXTRA_iQuality = -1;
1101 static gint hf_spoolss_spoolss_SetPrinterInfo_info8 = -1;
1102 static gint hf_spoolss_spoolss_PrinterEnumValues_value_name_len = -1;
1103 static gint hf_spoolss__spoolss_EnumPrinterDrivers_info = -1;
1104 static gint hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1 = -1;
1105 static gint hf_spoolss___spoolss_EnumForms_info = -1;
1106 static gint hf_spoolss_spoolss_SetPrinterDataEx_handle = -1;
1107 static gint hf_spoolss_spoolss_UserLevel1_major = -1;
1108 static gint hf_spoolss_spoolss_NotifyInfo_notifies = -1;
1109 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caBlueGamma = -1;
1110 static gint hf_spoolss_spoolss_SetPort_port_name = -1;
1111 static gint hf_spoolss_spoolss_SetJobInfo1_submitted = -1;
1112 static gint hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name = -1;
1113 static gint hf_spoolss_spoolss_StartPagePrinter_handle = -1;
1114 static gint hf_spoolss_spoolss_OSVersionEx_reserved = -1;
1115 static gint hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr = -1;
1116 static gint hf_spoolss_spoolss_OSVersionEx__ndr_size = -1;
1117 static gint hf_spoolss_spoolss_OpenPrinterEx_devmode_ctr = -1;
1118 static gint hf_spoolss_spoolss_DriverInfo6_driver_path = -1;
1119 static gint hf_spoolss_spoolss_AddDriverInfo3_architecture = -1;
1120 static gint hf_spoolss__spoolss_EnumForms_info = -1;
1121 static gint hf_spoolss_spoolss_AddDriverInfo3_help_file = -1;
1122 static gint hf_spoolss_spoolss_RpcSendRecvBidiData_pAction = -1;
1123 static gint hf_spoolss_spoolss_AddPrinterDriver_servername = -1;
1124 static gint hf_spoolss_spoolss_GetJob_job_id = -1;
1125 static gint hf_spoolss_spoolss_PrinterInfo2_portname = -1;
1126 static gint hf_spoolss_spoolss_DriverInfo8_provider = -1;
1127 static gint hf_spoolss_spoolss_UserLevel2_not_used = -1;
1128 static gint hf_spoolss_spoolss_NotifyOption_types = -1;
1129 static gint hf_spoolss_spoolss_CorePrinterDriver_core_driver_guid = -1;
1130 static gint hf_spoolss_spoolss_DriverInfo8_version = -1;
1131 static gint hf_spoolss_spoolss_DeviceMode_paperwidth = -1;
1132 static gint hf_spoolss_spoolss_JTEXP_wJTHdrSize = -1;
1133 static gint hf_spoolss_spoolss_DriverInfo4_version = -1;
1134 static gint hf_spoolss_spoolss_SetJobInfo4_size_high = -1;
1135 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE = -1;
1136 static gint hf_spoolss_spoolss_ReplyClosePrinter_handle = -1;
1137 static gint hf_spoolss_spoolss_AddPrintProcessor_server = -1;
1138 static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_UNPUBLISH = -1;
1139 static gint hf_spoolss_spoolss_DriverInfo8_monitor_name = -1;
1140 static gint hf_spoolss_spoolss_DeviceMode_devicename = -1;
1141 static gint hf_spoolss_spoolss_AddDriverInfo8_driver_name = -1;
1142 static gint hf_spoolss_spoolss_SetJobInfo4_document_name = -1;
1143 static gint hf_spoolss_spoolss_PSDRVEXTRA_caIlluminantIndex = -1;
1144 static gint hf_spoolss_spoolss_JobInfo2_server_name = -1;
1145 static gint hf_spoolss_spoolss_SetJob_ctr = -1;
1146 static gint hf_spoolss_spoolss_AddDriverInfo6_driver_date = -1;
1147 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER = -1;
1148 static gint hf_spoolss_spoolss_UserLevel1_processor = -1;
1149 static gint hf_spoolss_spoolss_PrinterInfo4_servername = -1;
1150 static gint hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName = -1;
1151 static gint hf_spoolss__spoolss_EnumPorts_servername = -1;
1152 static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP = -1;
1153 static gint hf_spoolss_spoolss_GetJob_needed = -1;
1154 static gint hf_spoolss_spoolss_PortData1_reserved = -1;
1155 static gint hf_spoolss_spoolss_SetJobInfo1_status = -1;
1156 static gint hf_spoolss_spoolss_GetPrinterDriver_buffer = -1;
1157 static gint hf_spoolss_spoolss_DriverInfo8_driver_version = -1;
1158 static gint hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr = -1;
1159 static gint hf_spoolss_spoolss_SetPrinterData_offered = -1;
1160 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_BUSY = -1;
1161 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK = -1;
1162 static gint hf_spoolss_spoolss_DriverInfo6_dependent_files = -1;
1163 static gint hf_spoolss_spoolss_FormSize_height = -1;
1164 static gint hf_spoolss_spoolss_PortData2_dblspool = -1;
1165 static gint hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name = -1;
1166 static gint hf_spoolss_spoolss_SetPrinterInfo4_attributes = -1;
1167 static gint hf_spoolss_spoolss_DriverInfo3_config_file = -1;
1168 static gint hf_spoolss_spoolss_DriverInfo8_vendor_setup = -1;
1169 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM = -1;
1170 static gint hf_spoolss_spoolss_EndDocPrinter_handle = -1;
1171 static gint hf_spoolss_spoolss_RpcSendRecvBidiData_hPrinter = -1;
1172 static gint hf_spoolss_spoolss_EnumMonitors_level = -1;
1173 static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY = -1;
1174 static gint hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER = -1;
1175 static gint hf_spoolss_spoolss_PSDRVEXTRA400_wchEPSFile = -1;
1176 static gint hf_spoolss_spoolss_AddFormInfo2_keyword = -1;
1177 static gint hf_spoolss_spoolss_DriverInfo4_monitor_name = -1;
1178 static gint hf_spoolss_spoolss_DocumentInfo1_datatype = -1;
1179 static gint hf_spoolss_spoolss_AddDriverInfo5_driver_name = -1;
1180 static gint hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter = -1;
1181 static gint hf_spoolss_spoolss_AddPrintProcessor_architecture = -1;
1182 static gint hf_spoolss_spoolss_UserLevel_level3 = -1;
1183 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING = -1;
1184 static gint hf_spoolss_spoolss_PortData2_snmp_enabled = -1;
1185 static gint hf_spoolss_spoolss_OEM_DMEXTRA_Data = -1;
1186 static gint hf_spoolss__spoolss_EnumPrinterDataEx_handle = -1;
1187 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT = -1;
1188 static gint hf_spoolss_spoolss_FormInfo1_area = -1;
1189 static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyByte = -1;
1190 static gint hf_spoolss_spoolss_PortData2_protocol = -1;
1191 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wOEMExtra = -1;
1192 static gint hf_spoolss_spoolss_PSDRVEXTRA_caReferenceWhite = -1;
1193 static gint hf_spoolss_spoolss_PrinterInfo2_attributes = -1;
1194 static gint hf_spoolss_spoolss_RouterReplyPrinterEx_flags = -1;
1195 static gint hf_spoolss_spoolss_AddJob_buffer = -1;
1196 static gint hf_spoolss_spoolss_PSDRVEXTRA_caSize = -1;
1197 static gint hf_spoolss_spoolss_AddJob_offered = -1;
1198 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_needed = -1;
1199 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caBrightness = -1;
1200 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND = -1;
1201 static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra = -1;
1202 static gint hf_spoolss_spoolss_JTEXP_dwVersion = -1;
1203 static gint hf_spoolss_spoolss_AddDriverInfo4_driver_name = -1;
1204 static gint hf_spoolss_spoolss_UserLevel1_user = -1;
1205 static gint hf_spoolss__spoolss_EnumMonitors_needed = -1;
1206 static gint hf_spoolss_spoolss_SetJob_handle = -1;
1207 static gint hf_spoolss_spoolss_JobInfo1_total_pages = -1;
1208 static gint hf_spoolss_spoolss_SetPrinterInfo2_priority = -1;
1209 static gint hf_spoolss_spoolss_SetJobInfo1_data_type = -1;
1210 static gint hf_spoolss_spoolss_EnumPrinterKey_key_name = -1;
1211 static gint hf_spoolss_spoolss_PrinterInfo_info3 = -1;
1212 static gint hf_spoolss_spoolss_JobInfo1_printer_name = -1;
1213 static gint hf_spoolss_spoolss_SetJobInfo4_start_time = -1;
1214 static gint hf_spoolss_spoolss_AddDriverInfo_info4 = -1;
1215 static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options = -1;
1216 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAUSED = -1;
1217 static gint hf_spoolss_spoolss_DeviceMode_fields = -1;
1218 static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Version = -1;
1219 static gint hf_spoolss_spoolss_EnumPrinterKey_needed = -1;
1220 static gint hf_spoolss_spoolss_PrinterInfo0_servername = -1;
1221 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wReserved = -1;
1222 static gint hf_spoolss_spoolss_SetPrinterInfo0_job_error = -1;
1223 static gint hf_spoolss_spoolss_DriverInfo_info1 = -1;
1224 static gint hf_spoolss_spoolss_StartDocPrinter_info_ctr = -1;
1225 static gint hf_spoolss_spoolss_MonitorUi_dll_name = -1;
1226 static gint hf_spoolss_spoolss_JobInfo1_position = -1;
1227 static gint hf_spoolss_spoolss_AddDriverInfo6_data_file = -1;
1228 static gint hf_spoolss_RPC_BINARY_CONTAINER_cbBuf = -1;
1229 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_MEDIATYPE = -1;
1230 static gint hf_spoolss_spoolss_SetPrinterInfo0_total_jobs = -1;
1231 static gint hf_spoolss_spoolss_PrinterInfo2_datatype = -1;
1232 static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_PUBLISH = -1;
1233 static gint hf_spoolss_spoolss_JobInfoContainer_info = -1;
1234 static gint hf_spoolss_spoolss_XcvData_needed = -1;
1235 static gint hf_spoolss_spoolss_SetJobInfo1_position = -1;
1236 static gint hf_spoolss_spoolss_SetJobInfo4_notify_name = -1;
1237 static gint hf_spoolss_spoolss_GetPrinterDataEx_needed = -1;
1238 static gint hf_spoolss_spoolss_DeletePrinterDriver_driver = -1;
1239 static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra500 = -1;
1240 static gint hf_spoolss_spoolss_PSDRVEXTRA_caReferenceBlack = -1;
1241 static gint hf_spoolss_spoolss_AddPort_unknown = -1;
1242 static gint hf_spoolss_spoolss_DriverInfo5_driver_name = -1;
1243 static gint hf_spoolss_spoolss_AddDriverInfo2_driver_path = -1;
1244 static gint hf_spoolss_spoolss_OEM_DMEXTRA_dwSignature = -1;
1245 static gint hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url = -1;
1246 static gint hf_spoolss_spoolss_DriverFileInfo_file_name = -1;
1247 static gint hf_spoolss_UNIVERSAL_FONT_ID_Checksum = -1;
1248 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION = -1;
1249 static gint hf_spoolss___spoolss_EnumForms_level = -1;
1250 static gint hf_spoolss___spoolss_EnumPrinterDataEx_info = -1;
1251 static gint hf_spoolss_spoolss_OSVersionEx_extra_string_ = -1;
1252 static gint hf_spoolss_spoolss_SetPrinterInfo_info7 = -1;
1253 static gint hf_spoolss_spoolss_DriverInfo6_monitor_name = -1;
1254 static gint hf_spoolss_spoolss_OSVersion__ndr_size = -1;
1255 static gint hf_spoolss_spoolss_DriverInfo8_hardware_id = -1;
1256 static gint hf_spoolss_spoolss_EnumJobs_handle = -1;
1257 static gint hf_spoolss_spoolss_DriverInfo_info6 = -1;
1258 static gint hf_spoolss_spoolss_EnumPrinterKey_handle = -1;
1259 static gint hf_spoolss_spoolss_SetPortInfo_infoFF = -1;
1260 static gint hf_spoolss_spoolss_AddDriverInfo6__ndr_size_dependent_files = -1;
1261 static gint hf_spoolss_spoolss_GetPrinterDriver_offered = -1;
1262 static gint hf_spoolss_spoolss_OpenPrinter_devmode_ctr = -1;
1263 static gint hf_spoolss_spoolss_DeviceMode_driverextra_data_ = -1;
1264 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW = -1;
1265 static gint hf_spoolss_spoolss_PrinterInfo0_reserved3 = -1;
1266 static gint hf_spoolss__spoolss_EnumPrinterDataEx_info = -1;
1267 static gint hf_spoolss_spoolss_AddPortEx_servername = -1;
1268 static gint hf_spoolss_spoolss_PSDRVEXTRA_fxScrAngle = -1;
1269 static gint hf_spoolss_spoolss_PrinterInfo_info8 = -1;
1270 static gint hf_spoolss_spoolss_DriverInfo8_manufacturer_url = -1;
1271 static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra = -1;
1272 static gint hf_spoolss_spoolss_JobInfo4_position = -1;
1273 static gint hf_spoolss__spoolss_EnumJobs_handle = -1;
1274 static gint hf_spoolss_spoolss_PrinterInfo2_defaultpriority = -1;
1275 static gint hf_spoolss_spoolss_SetPrinterInfo7_action = -1;
1276 static gint hf_spoolss_spoolss_PrinterData_data = -1;
1277 static gint hf_spoolss_spoolss_AbortPrinter_handle = -1;
1278 static gint hf_spoolss_RPC_BIDI_DATA_u_bData = -1;
1279 static gint hf_spoolss_spoolss_FormInfo1_flags = -1;
1280 static gint hf_spoolss_spoolss_PortData1_portname = -1;
1281 static gint hf_spoolss_spoolss_SetPrinterInfo2_starttime = -1;
1282 static gint hf_spoolss_spoolss_DeviceMode_icmmethod = -1;
1283 static gint hf_spoolss_spoolss_AddDriverInfo8_provider = -1;
1284 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caColorfulness = -1;
1285 static gint hf_spoolss_spoolss_MonitorContainer_level = -1;
1286 static gint hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty = -1;
1287 static gint hf_spoolss_spoolss_AddPortEx_port_var_ctr = -1;
1288 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT = -1;
1289 static gint hf_spoolss_spoolss_AddDriverInfo6_version = -1;
1290 static gint hf_spoolss_spoolss_OSVersionEx_minor = -1;
1291 static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData = -1;
1292 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wVer = -1;
1293 static gint hf_spoolss_spoolss_AddDriverInfo6_dependent_files = -1;
1294 static gint hf_spoolss_spoolss_DeviceMode_mediatype = -1;
1295 static gint hf_spoolss_spoolss_SetPrinterInfo4_servername = -1;
1296 static gint hf_spoolss_spoolss_PSDRVEXTRA400_wOptions = -1;
1297 static gint hf_spoolss_spoolss_AddPrinterDriverEx_flags = -1;
1298 static gint hf_spoolss_spoolss_RouterReplyPrinter_bufsize = -1;
1299 static gint hf_spoolss_spoolss_SetPortInfoFF_port_name = -1;
1300 static gint hf_spoolss_spoolss_AddPerMachineConnection_provider = -1;
1301 static gint hf_spoolss_spoolss_UserLevel_level1 = -1;
1302 static gint hf_spoolss_spoolss_AccessRights_JOB_ACCESS_ADMINISTER = -1;
1303 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DITHERTYPE = -1;
1304 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = -1;
1305 static gint hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr = -1;
1306 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH = -1;
1307 static gint hf_spoolss_spoolss_SetPortInfo_info3 = -1;
1308 static gint hf_spoolss_spoolss_PrinterInfo0_total_bytes = -1;
1309 static gint hf_spoolss_spoolss_SetJobInfo2_driver_name = -1;
1310 static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn = -1;
1311 static gint hf_spoolss_spoolss_AddDriverInfo8_version = -1;
1312 static gint hf_spoolss_spoolss_PortData1_port_number = -1;
1313 static gint hf_spoolss_spoolss_SetPrinter_secdesc_ctr = -1;
1314 static gint hf_spoolss_spoolss_SetJobInfo4_priority = -1;
1315 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwFlags = -1;
1316 static gint hf_spoolss_spoolss_AddDriverInfo6__ndr_size_previous_names = -1;
1317 static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_options = -1;
1318 static gint hf_spoolss_spoolss_UserLevel3_minor = -1;
1319 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH = -1;
1320 static gint hf_spoolss_spoolss_DriverInfo4_driver_path = -1;
1321 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN = -1;
1322 static gint hf_spoolss_spoolss_SetPrinterInfo2_untiltime = -1;
1323 static gint hf_spoolss_spoolss_SetPrinterInfo0_total_bytes = -1;
1324 static gint hf_spoolss_spoolss_EnumPrintProcessors_needed = -1;
1325 static gint hf_spoolss_spoolss_SetPortInfoContainer_info = -1;
1326 static gint hf_spoolss_spoolss_DeletePrinterDriverEx_server = -1;
1327 static gint hf_spoolss_spoolss_AddDriverInfo8_default_datatype = -1;
1328 static gint hf_spoolss_spoolss_SetPrinterInfo0_num_error_not_ready = -1;
1329 static gint hf_spoolss_spoolss_PSDRVEXTRA_caContrast = -1;
1330 static gint hf_spoolss_spoolss_PSDRVEXTRA351_dwSignature = -1;
1331 static gint hf_spoolss_spoolss_PrinterInfo1_comment = -1;
1332 static gint hf_spoolss_spoolss_SetPrinterInfo5_printername = -1;
1333 static gint hf_spoolss_spoolss_EnumPrinterDataEx_offered = -1;
1334 static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE = -1;
1335 static gint hf_spoolss_spoolss_FindClosePrinterNotify_handle = -1;
1336 static gint hf_spoolss_spoolss_SetPrinterInfo_info1 = -1;
1337 static gint hf_spoolss_spoolss_AddDriverInfo2_driver_name = -1;
1338 static gint hf_spoolss_spoolss_EnumForms_handle = -1;
1339 static gint hf_spoolss_spoolss_JobInfo2_document_name = -1;
1340 static gint hf_spoolss_spoolss_PrinterInfo0_global_counter = -1;
1341 static gint hf_spoolss_spoolss_SetJobInfo2_size = -1;
1342 static gint hf_spoolss_spoolss_JobInfo2_devmode_ = -1;
1343 static gint hf_spoolss_spoolss_SetPortInfo1_port_name = -1;
1344 static gint hf_spoolss_spoolss_SetPrinterInfo0_processor_level = -1;
1345 static gint hf_spoolss_spoolss_OpenPrinterEx_datatype = -1;
1346 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL = -1;
1347 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS = -1;
1348 static gint hf_spoolss_spoolss_AddDriverInfo1_driver_name = -1;
1349 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM = -1;
1350 static gint hf_spoolss_spoolss_SetPort_port_ctr = -1;
1351 static gint hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr = -1;
1352 static gint hf_spoolss_spoolss_PortData1_snmp_dev_index = -1;
1353 static gint hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE = -1;
1354 static gint hf_spoolss_spoolss_EnumPrintProcessors_level = -1;
1355 static gint hf_spoolss_spoolss_DriverInfo8_default_datatype = -1;
1356 static gint hf_spoolss_spoolss_PortInfo2_reserved = -1;
1357 static gint hf_spoolss_propertyBlob_cbBuf = -1;
1358 static gint hf_spoolss_spoolss_PrinterInfo0_enumerate_network_printers = -1;
1359 static gint hf_spoolss_spoolss_GetPrinter_needed = -1;
1360 static gint hf_spoolss_spoolss_JobInfo_info4 = -1;
1361 static gint hf_spoolss_spoolss_DriverInfo_info5 = -1;
1362 static gint hf_spoolss_spoolss_JobInfo1_job_id = -1;
1363 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_FORMNAME = -1;
1364 static gint hf_spoolss__spoolss_EnumPrinters_level = -1;
1365 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwBookletFlags = -1;
1366 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wSize = -1;
1367 static gint hf_spoolss_spoolss_MonitorInfo2_monitor_name = -1;
1368 static gint hf_spoolss_spoolss_StartDocPrinter_handle = -1;
1369 static gint hf_spoolss_spoolss_SetJobInfo2_job_id = -1;
1370 static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options = -1;
1371 static gint hf_spoolss_spoolss_PortInfo_info3 = -1;
1372 static gint hf_spoolss_RPC_BIDI_DATA_u_biData = -1;
1373 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwSignature = -1;
1374 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceBlack = -1;
1375 static gint hf_spoolss_spoolss_EnumPrinterDrivers_server = -1;
1376 static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR = -1;
1377 static gint hf_spoolss_spoolss_NotifyOptionType_count = -1;
1378 static gint hf_spoolss_spoolss_DriverInfo3_driver_path = -1;
1379 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_level = -1;
1380 static gint hf_spoolss_spoolss_OpenPrinter_printername = -1;
1381 static gint hf_spoolss_spoolss_SetPrinterInfo0_total_pages = -1;
1382 static gint hf_spoolss_spoolss_AddDriverInfo5_driver_version = -1;
1383 static gint hf_spoolss_spoolss_PrinterInfo0_cjobs = -1;
1384 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERSIZE = -1;
1385 static gint hf_spoolss_spoolss_EnumPrinterKey_key_buffer_ = -1;
1386 static gint hf_spoolss_spoolss_PSDRVEXTRA351_dwFlags = -1;
1387 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT = -1;
1388 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM = -1;
1389 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caIlluminantIndex = -1;
1390 static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle = -1;
1391 static gint hf_spoolss_spoolss_Time_second = -1;
1392 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE = -1;
1393 static gint hf_spoolss_spoolss_DriverDirectoryInfo_info1 = -1;
1394 static gint hf_spoolss_spoolss_SetPrinterInfo2_cjobs = -1;
1395 static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_UPDATE = -1;
1396 static gint hf_spoolss_spoolss_SetPrinterInfo1_comment = -1;
1397 static gint hf_spoolss_spoolss_JobInfo4_text_status = -1;
1398 static gint hf_spoolss_spoolss_ResetPrinter_handle = -1;
1399 static gint hf_spoolss_spoolss_OSVersionEx_product_type = -1;
1400 static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_ul = -1;
1401 static gint hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies = -1;
1402 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE = -1;
1403 static gint hf_spoolss_spoolss_GetPrinterDataEx_key_name = -1;
1404 static gint hf_spoolss_spoolss_PortData1_hostaddress = -1;
1405 static gint hf_spoolss_spoolss_PrinterInfo7_action = -1;
1406 static gint hf_spoolss_spoolss_JTEXP_dwSignature = -1;
1407 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CLASS = -1;
1408 static gint hf_spoolss_spoolss_SetPrinterInfo0_servername = -1;
1409 static gint hf_spoolss_spoolss_TimeCtr_time = -1;
1410 static gint hf_spoolss_spoolss_DriverInfo3_help_file = -1;
1411 static gint hf_spoolss_spoolss_DriverInfo4_dependent_files = -1;
1412 static gint hf_spoolss_spoolss_AddDriverInfo5_config_file = -1;
1413 static gint hf_spoolss_RPC_BIDI_DATA_dwBidiType = -1;
1414 static gint hf_spoolss_spoolss_GetForm_level = -1;
1415 static gint hf_spoolss_spoolss_DeviceMode_printquality = -1;
1416 static gint hf_spoolss_spoolss_DriverInfo2_version = -1;
1417 static gint hf_spoolss_spoolss_DriverInfo2_driver_name = -1;
1418 static gint hf_spoolss_spoolss_DeviceMode_formname = -1;
1419 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caGreenGamma = -1;
1420 static gint hf_spoolss__spoolss_EnumForms_offered = -1;
1421 static gint hf_spoolss_spoolss_PSDRVEXTRA351_caIlluminantIndex = -1;
1422 static gint hf_spoolss_spoolss_SetPortInfo2_port_type = -1;
1423 static gint hf_spoolss_spoolss_EnumJobs_level = -1;
1424 static gint hf_spoolss_spoolss_PSDRVEXTRA500_iTTDLFmt = -1;
1425 static gint hf_spoolss_spoolss_DriverInfo101_manufacturer_name = -1;
1426 static gint hf_spoolss_spoolss_NotifyData_sd = -1;
1427 static gint hf_spoolss_spoolss_SetPrinterInfo2_printprocessor = -1;
1428 static gint hf_spoolss_spoolss_CreatePrinterIC_gdi_handle = -1;
1429 static gint hf_spoolss_spoolss_EnumJobs_buffer = -1;
1430 static gint hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ENUMERATE = -1;
1431 static gint hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS = -1;
1432 static gint hf_spoolss_spoolss_SetPrinterInfo2_servername = -1;
1433 static gint hf_spoolss_spoolss_UserLevel3_size2 = -1;
1434 static gint hf_spoolss_spoolss_SetPrinterInfoCtr_info = -1;
1435 static gint hf_spoolss_spoolss_PrinterInfo_info4 = -1;
1436 static gint hf_spoolss_spoolss_NotifyOption_count = -1;
1437 static gint hf_spoolss_spoolss_GetJob_offered = -1;
1438 static gint hf_spoolss_spoolss_SetPrinterInfo7_guid = -1;
1439 static gint hf_spoolss_spoolss_PrinterInfo0_total_jobs = -1;
1440 static gint hf_spoolss_spoolss_SetPrinterInfo2_parameters = -1;
1441 static gint hf_spoolss_spoolss_DeletePort_server_name = -1;
1442 static gint hf_spoolss_spoolss_SetPrinterInfo_info5 = -1;
1443 static gint hf_spoolss_spoolss_AddFormInfo2_string_type = -1;
1444 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_NUP = -1;
1445 static gint hf_spoolss_spoolss_RpcSetJobNamedProperty_JobId = -1;
1446 static gint hf_spoolss_spoolss_DriverInfo6_hardware_id = -1;
1447 static gint hf_spoolss_spoolss_PortInfoFF_port_name = -1;
1448 static gint hf_spoolss_spoolss_FormInfo2_form_name = -1;
1449 static gint hf_spoolss_spoolss_EnumPrinters_count = -1;
1450 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ = -1;
1451 static gint hf_spoolss_spoolss_DriverInfo8_driver_name = -1;
1452 static gint hf_spoolss_spoolss_DriverInfo2_config_file = -1;
1453 static gint hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr = -1;
1454 static gint hf_spoolss_spoolss_AddDriverInfo6_driver_name = -1;
1455 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_sPadding = -1;
1456 static gint hf_spoolss_spoolss_CorePrinterDriver_driver_version = -1;
1457 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT = -1;
1458 static gint hf_spoolss_spoolss_DriverInfo101_driver_date = -1;
1459 static gint hf_spoolss_spoolss_SetForm_handle = -1;
1460 static gint hf_spoolss_spoolss_DriverInfo4_architecture = -1;
1461 static gint hf_spoolss_spoolss_PrinterInfo0_num_error_out_of_paper = -1;
1462 static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_PENDING = -1;
1463 static gint hf_spoolss_spoolss_DeviceMode_reserved1 = -1;
1464 static gint hf_spoolss_spoolss_GetPrinterData_offered = -1;
1465 static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter = -1;
1466 static gint hf_spoolss_spoolss_DriverInfo6_driver_name = -1;
1467 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_offered = -1;
1468 static gint hf_spoolss_spoolss_GetPrinterData_value_name = -1;
1469 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE = -1;
1470 static gint hf_spoolss_spoolss_UserLevel3_processor = -1;
1471 static gint hf_spoolss_spoolss_PSDRVEXTRA_caRedGamma = -1;
1472 static gint hf_spoolss_spoolss_EnumPrinterData_handle = -1;
1473 static gint hf_spoolss_spoolss_PrinterInfo0_job_error = -1;
1474 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE = -1;
1475 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM = -1;
1476 static gint hf_spoolss_spoolss_SetPortInfoContainer_level = -1;
1477 static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Flags = -1;
1478 static gint hf_spoolss_spoolss_DriverInfo101_driver_version = -1;
1479 static gint hf_spoolss_spoolss_DeviceMode_defaultsource = -1;
1480 static gint hf_spoolss_spoolss_FormSize_width = -1;
1481 static gint hf_spoolss_spoolss_SetPrinter_handle = -1;
1482 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caRedGamma = -1;
1483 static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyString = -1;
1484 static gint hf_spoolss_spoolss_SetPrinterInfo2_portname = -1;
1485 static gint hf_spoolss_spoolss_EnumPrinterData_data = -1;
1486 static gint hf_spoolss__spoolss_EnumPrintProcessors_info = -1;
1487 static gint hf_spoolss_spoolss_DocumentInfoCtr_info = -1;
1488 static gint hf_spoolss_spoolss_PrinterData_binary = -1;
1489 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caRedGreenTint = -1;
1490 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY = -1;
1491 static gint hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_version = -1;
1492 static gint hf_spoolss_spoolss_AddDriverInfo6_hardware_id = -1;
1493 static gint hf_spoolss_spoolss_AddFormInfo2_flags = -1;
1494 static gint hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array = -1;
1495 static gint hf_spoolss_spoolss_PrinterInfo2_comment = -1;
1496 static gint hf_spoolss_spoolss_PortInfo2_monitor_name = -1;
1497 static gint hf_spoolss_spoolss_FormInfo2_lang_id = -1;
1498 static gint hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING = -1;
1499 static gint hf_spoolss_spoolss_SetPrinterInfo0_processor_type = -1;
1500 static gint hf_spoolss_spoolss_DriverInfo8_printer_driver_attributes = -1;
1501 static gint hf_spoolss_spoolss_GetPrinterDataEx_value_name = -1;
1502 static gint hf_spoolss_spoolss_PrinterInfo0_session_counter = -1;
1503 static gint hf_spoolss_spoolss_SetJobInfo4_job_id = -1;
1504 static gint hf_spoolss__spoolss_EnumMonitors_buffer = -1;
1505 static gint hf_spoolss_spoolss_JobInfo2_driver_name = -1;
1506 static gint hf_spoolss_spoolss_DriverFileInfo_file_version = -1;
1507 static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_size = -1;
1508 static gint hf_spoolss_spoolss_DeletePerMachineConnection_printername = -1;
1509 static gint hf_spoolss_spoolss_DriverInfo6_driver_version = -1;
1510 static gint hf_spoolss_spoolss_JobInfo2_user_name = -1;
1511 static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_change_low = -1;
1512 static gint hf_spoolss_spoolss_SetPrinterInfo0_spooling = -1;
1513 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING = -1;
1514 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_OFFLINE = -1;
1515 static gint hf_spoolss_spoolss_EndPagePrinter_handle = -1;
1516 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT = -1;
1517 static gint hf_spoolss_spoolss_AddDriverInfo3__ndr_size_dependent_files = -1;
1518 static gint hf_spoolss_spoolss_SetForm_form_name = -1;
1519 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_level = -1;
1520 static gint hf_spoolss_spoolss_AddPrintProcessor_path_name = -1;
1521 static gint hf_spoolss_spoolss_PortData2_port_monitor_mib_index = -1;
1522 static gint hf_spoolss_spoolss_AddDriverInfo4_driver_path = -1;
1523 static gint hf_spoolss_spoolss_AddDriverInfo_info6 = -1;
1524 static gint hf_spoolss_spoolss_DriverInfo4_help_file = -1;
1525 static gint hf_spoolss___spoolss_EnumJobs_count = -1;
1526 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceWhite = -1;
1527 static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_driver_count = -1;
1528 static gint hf_spoolss_spoolss_ReplyOpenPrinter_handle = -1;
1529 static gint hf_spoolss_spoolss_JobInfo2_time = -1;
1530 static gint hf_spoolss_spoolss_PrinterInfo1_flags = -1;
1531 static gint hf_spoolss_spoolss_PortData1_version = -1;
1532 static gint hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL = -1;
1533 static gint hf_spoolss_spoolss_EnumPrintProcessors_offered = -1;
1534 static gint hf_spoolss_spoolss_PortInfo3_status_string = -1;
1535 static gint hf_spoolss_spoolss_SetPrinterData_data = -1;
1536 static gint hf_spoolss_spoolss_SetJobInfo4__devmode_ptr = -1;
1537 static gint hf_spoolss_spoolss_GetJob_level = -1;
1538 static gint hf_spoolss_spoolss_DeviceMode_ttoption = -1;
1539 static gint hf_spoolss_spoolss_GetPrinterDriver_info_ = -1;
1540 static gint hf_spoolss_spoolss_UNIDRVEXTRA_aOptions = -1;
1541 static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue = -1;
1542 static gint hf_spoolss_spoolss_DriverInfo_info3 = -1;
1543 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wVer = -1;
1544 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_iLayout = -1;
1545 static gint hf_spoolss_spoolss_PortData1_device_type = -1;
1546 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_info = -1;
1547 static gint hf_spoolss_spoolss_DeviceMode_displayflags = -1;
1548 static gint hf_spoolss_spoolss_PSDRVEXTRA351_wchEPSFile = -1;
1549 static gint hf_spoolss_spoolss_PrinterInfo_info9 = -1;
1550 static gint hf_spoolss_spoolss_Time_day_of_week = -1;
1551 static gint hf_spoolss_spoolss_JobInfo1_text_status = -1;
1552 static gint hf_spoolss_spoolss_PrinterInfo2_servername = -1;
1553 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB = -1;
1554 static gint hf_spoolss_spoolss_SetPrinterData_type = -1;
1555 static gint hf_spoolss_spoolss_PrinterInfo0_processor_type = -1;
1556 static gint hf_spoolss_spoolss_SetPrinterInfo5_transmission_retry_timeout = -1;
1557 static gint hf_spoolss_spoolss_FormInfo_info2 = -1;
1558 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_ERROR = -1;
1559 static gint hf_spoolss_spoolss_EnumPrinterDrivers_needed = -1;
1560 static gint hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel = -1;
1561 static gint hf_spoolss_spoolss_GetPrinterDataEx_data = -1;
1562 static gint hf_spoolss_spoolss_AddPrinter_server = -1;
1563 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3 = -1;
1564 static gint hf_spoolss_spoolss_DeviceMode_pelswidth = -1;
1565 static gint hf_spoolss_spoolss_DeviceMode_orientation = -1;
1566 static gint hf_spoolss_spoolss_EnumForms_info = -1;
1567 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwChecksum32 = -1;
1568 static gint hf_spoolss_spoolss_NotifyOptionType_u1 = -1;
1569 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceBlack = -1;
1570 static gint hf_spoolss_spoolss_AddFormInfo2_size = -1;
1571 static gint hf_spoolss_spoolss_AddPrinterEx_server = -1;
1572 static gint hf_spoolss_spoolss_DriverInfo8_color_profiles = -1;
1573 static gint hf_spoolss_spoolss_EnumPrintProcessors_count = -1;
1574 static gint hf_spoolss_spoolss_SetJobInfo4_pages_printed = -1;
1575 static gint hf_spoolss__spoolss_EnumPrinters_offered = -1;
1576 static gint hf_spoolss_spoolss_SetJobInfo4_print_processor = -1;
1577 static gint hf_spoolss_spoolss_PSDRVEXTRA_caBlueGamma = -1;
1578 static gint hf_spoolss_spoolss_SetJobInfo4_until_time = -1;
1579 static gint hf_spoolss___spoolss_EnumForms_count = -1;
1580 static gint hf_spoolss_spoolss_DriverInfo_info101 = -1;
1581 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER = -1;
1582 static gint hf_spoolss_spoolss_SetJobInfo_info1 = -1;
1583 static gint hf_spoolss_spoolss_MonitorInfo2_dll_name = -1;
1584 static gint hf_spoolss_spoolss_RouterReplyPrinter_flags = -1;
1585 static gint hf_spoolss_spoolss_GetPrinterDriver2_client_minor_version = -1;
1586 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwBookletFlags = -1;
1587 static gint hf_spoolss_spoolss_OpenPrinter_access_mask = -1;
1588 static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED = -1;
1589 static gint hf_spoolss__spoolss_EnumPrintProcessors_level = -1;
1590 static gint hf_spoolss_RPC_BIDI_REQUEST_DATA_data = -1;
1591 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX = -1;
1592 static gint hf_spoolss_spoolss_UNIDRVEXTRA_wVer = -1;
1593 static gint hf_spoolss_spoolss_AddJob_handle = -1;
1594 static gint hf_spoolss_spoolss_GetPrinterDriver_architecture = -1;
1595 static gint hf_spoolss_spoolss_EnumPrinterData_type = -1;
1596 static gint hf_spoolss_spoolss_DriverInfo8_previous_names = -1;
1597 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer = -1;
1598 static gint hf_spoolss_spoolss_JobInfo2_devmode = -1;
1599 static gint hf_spoolss_spoolss_JTEXP_dwSize = -1;
1600 static gint hf_spoolss_spoolss_PortVarContainer_monitor_data_size = -1;
1601 static gint hf_spoolss_spoolss_EnumJobs_numjobs = -1;
1602 static gint hf_spoolss__spoolss_EnumJobs_firstjob = -1;
1603 static gint hf_spoolss_spoolss_XcvData__in_data_length = -1;
1604 static gint hf_spoolss_spoolss_SetPrinter_info_ctr = -1;
1605 static gint hf_spoolss_spoolss_SetPrinterInfo0_processor_architecture = -1;
1606 static gint hf_spoolss_spoolss_ResetPrinter_devmode_ctr = -1;
1607 static gint hf_spoolss_spoolss_PrinterInfo5_transmission_retry_timeout = -1;
1608 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER = -1;
1609 static gint hf_spoolss_spoolss_OpenPrinterEx_userlevel_ctr = -1;
1610 static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_dependent_files = -1;
1611 static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwOptions = -1;
1612 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwX = -1;
1613 static gint hf_spoolss_spoolss_SetPrinterInfo0_cjobs = -1;
1614 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB = -1;
1615 static gint hf_spoolss___spoolss_EnumMonitors_count = -1;
1616 static gint hf_spoolss__spoolss_EnumPrintProcessors_servername = -1;
1617 static gint hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr = -1;
1618 static gint hf_spoolss_werror = -1;
1619 static gint hf_spoolss_spoolss_EnumMonitors_servername = -1;
1620 static gint hf_spoolss_spoolss_AddJob_level = -1;
1621 static gint hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_USE = -1;
1622 static gint hf_spoolss_spoolss_SetJobInfo2_data_type = -1;
1623 static gint hf_spoolss_spoolss_AddMonitorInfo2_environment = -1;
1624 static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_previous_names = -1;
1625 static gint hf_spoolss_spoolss_AddPrinterDriverEx_servername = -1;
1626 static gint hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH = -1;
1627 static gint hf_spoolss_spoolss_JobInfo4_submitted = -1;
1628 static gint hf_spoolss_spoolss_AddDriverInfo5_version = -1;
1629 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM = -1;
1630 static gint hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED = -1;
1631 static gint hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL = -1;
1632 static gint hf_spoolss_spoolss_FormInfo2_size = -1;
1633 static gint hf_spoolss_spoolss_DeletePrintProcessor_architecture = -1;
1634 static gint hf_spoolss_spoolss_SetJob_job_id = -1;
1635 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DUPLEX = -1;
1636 static gint hf_spoolss_spoolss_EnumPrinterData_value_offered = -1;
1637 static gint hf_spoolss_spoolss_DriverInfo6_architecture = -1;
1638 static gint hf_spoolss___spoolss_EnumPrinterDrivers_count = -1;
1639 static gint hf_spoolss_spoolss_DriverInfo5_driver_attributes = -1;
1640 static gint hf_spoolss_spoolss_ResetPrinter_data_type = -1;
1641 static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle = -1;
1642 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_aOptions = -1;
1643 static gint hf_spoolss_spoolss_SetJobInfo4_text_status = -1;
1644 static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties = -1;
1645 static gint hf_spoolss_spoolss_JTEXP_ModelName = -1;
1646 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caFlags = -1;
1647 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED = -1;
1648 static gint hf_spoolss_spoolss_RouterReplyPrinterEx_handle = -1;
1649 static gint hf_spoolss_spoolss_PrintProcessorInfo_info1 = -1;
1650 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT = -1;
1651 static gint hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version = -1;
1652 static gint hf_spoolss_spoolss_EnumJobs_offered = -1;
1653 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR = -1;
1654 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLLATE = -1;
1655 static gint hf_spoolss_spoolss_EnumMonitors_offered = -1;
1656 static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_uniblob = -1;
1657 static gint hf_spoolss_spoolss_WritePrinter_handle = -1;
1658 static gint hf_spoolss_spoolss_PSDRVEXTRA400_dwSignature = -1;
1659 static gint hf_spoolss_spoolss_AddDriverInfo5_driver_path = -1;
1660 static gint hf_spoolss_spoolss_SetPrinterInfo5_portname = -1;
1661 static gint hf_spoolss_spoolss_Field_field = -1;
1662 static gint hf_spoolss_spoolss_AddDriverInfo_info2 = -1;
1663 static gint hf_spoolss_spoolss_AddMonitorInfo_info1 = -1;
1664 static gint hf_spoolss_spoolss_OSVersionEx_major = -1;
1665 static gint hf_spoolss_spoolss_AddFormInfo2_mui_dll = -1;
1666 static gint hf_spoolss_spoolss_SetPortInfo2_reserved = -1;
1667 static gint hf_spoolss_spoolss_AddDriverInfo4__ndr_size_previous_names = -1;
1668 static gint hf_spoolss_spoolss_DriverInfo3_dependent_files = -1;
1669 static gint hf_spoolss_spoolss_AddDriverInfo5_data_file = -1;
1670 static gint hf_spoolss_spoolss_AddFormInfo2_display_name = -1;
1671 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwY = -1;
1672 static gint hf_spoolss_spoolss_JobInfo4_size_high = -1;
1673 static gint hf_spoolss_spoolss_Notify_job_id = -1;
1674 static gint hf_spoolss_spoolss_UserLevelCtr_user_info = -1;
1675 static gint hf_spoolss_spoolss_JobInfo2_priority = -1;
1676 static gint hf_spoolss_spoolss_PortInfo2_port_name = -1;
1677 static gint hf_spoolss_spoolss_JobInfo1_user_name = -1;
1678 static gint hf_spoolss_spoolss_PrinterInfo2_devmode = -1;
1679 static gint hf_spoolss_spoolss_GetPrinterData_data = -1;
1680 static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle = -1;
1681 static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE = -1;
1682 static gint hf_spoolss_spoolss_AddDriverInfo_info8 = -1;
1683 static gint hf_spoolss_spoolss_DeviceMode_collate = -1;
1684 static gint hf_spoolss_spoolss_DeleteForm_form_name = -1;
1685 static gint hf_spoolss_spoolss_Time_day = -1;
1686 static gint hf_spoolss_spoolss_DriverDirectoryInfo1_directory_name = -1;
1687 static gint hf_spoolss_spoolss_SetJobInfo2_start_time = -1;
1688 static gint hf_spoolss_spoolss_PrinterInfo_info6 = -1;
1689 static gint hf_spoolss_spoolss_PrinterInfo2_printprocessor = -1;
1690 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwWidthOffset = -1;
1691 static gint hf_spoolss_spoolss_ReplyOpenPrinter_server_name = -1;
1692 static gint hf_spoolss_spoolss_DriverInfo5_config_version = -1;
1693 static gint hf_spoolss_spoolss_OpenPrinterEx_handle = -1;
1694 static gint hf_spoolss___spoolss_EnumPrintProcessors_count = -1;
1695 static gint hf_spoolss_spoolss_PortData1_dblspool = -1;
1696 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wSize = -1;
1697 static gint hf_spoolss_spoolss_SetJobInfo4_data_type = -1;
1698 static gint hf_spoolss_spoolss_DriverInfo6_config_file = -1;
1699 static gint hf_spoolss_spoolss_AddDriverInfo6_monitor_name = -1;
1700 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_TTOPTION = -1;
1701 static gint hf_spoolss_spoolss_DeletePrinterDriver_architecture = -1;
1702 static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData = -1;
1703 static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwFlags = -1;
1704 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE = -1;
1705 static gint hf_spoolss_spoolss_PrinterInfo1_name = -1;
1706 static gint hf_spoolss_spoolss_PortData2_portname = -1;
1707 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT = -1;
1708 static gint hf_spoolss_spoolss_OEM_DMEXTRA_dwSize = -1;
1709 static gint hf_spoolss_spoolss_AddPort_server_name = -1;
1710 static gint hf_spoolss_propertyBlob_pBuf = -1;
1711 static gint hf_spoolss_spoolss_EnumPrinters_offered = -1;
1712 static gint hf_spoolss_spoolss_DriverInfo7_driver_name = -1;
1713 static gint hf_spoolss_spoolss_AddDriverInfo8_print_processor = -1;
1714 static gint hf_spoolss_spoolss_PortData1_hardware_address = -1;
1715 static gint hf_spoolss_UNIVERSAL_FONT_ID_ctr_fonts = -1;
1716 static gint hf_spoolss_spoolss_NotifyInfo_flags = -1;
1717 static gint hf_spoolss_spoolss_PrinterInfo4_attributes = -1;
1718 static gint hf_spoolss_spoolss_SetJobInfo4_submitted = -1;
1719 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSWIDTH = -1;
1720 static gint hf_spoolss_spoolss_SetJobInfo1_server_name = -1;
1721 static gint hf_spoolss_spoolss_DeviceMode_color = -1;
1722 static gint hf_spoolss_spoolss_ReplyPrinterInfo_info0 = -1;
1723 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE = -1;
1724 static gint hf_spoolss_spoolss_GetPrinterData_needed = -1;
1725 static gint hf_spoolss_spoolss_EnumPrinterDrivers_info = -1;
1726 static gint hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq = -1;
1727 static gint hf_spoolss_spoolss_ReplyOpenPrinter_buffer = -1;
1728 static gint hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER = -1;
1729 static gint hf_spoolss_spoolss_JobInfo_info1 = -1;
1730 static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_environment = -1;
1731 static gint hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceWhite = -1;
1732 static gint hf_spoolss_spoolss_MonitorContainer_info = -1;
1733 static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra400 = -1;
1734 static gint hf_spoolss_spoolss_DriverInfo5_data_file = -1;
1735 static gint hf_spoolss_spoolss_JobInfo2_total_pages = -1;
1736 static gint hf_spoolss_spoolss_SetJobInfo1_priority = -1;
1737 static gint hf_spoolss_opnum = -1;
1738 static gint hf_spoolss_spoolss_NotifyOptionType_type = -1;
1739 static gint hf_spoolss_spoolss_WritePrinter_num_written = -1;
1740 static gint hf_spoolss_spoolss_PSDRVEXTRA500_wCutSheet = -1;
1741 static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwSignature = -1;
1742 static gint hf_spoolss_spoolss_PSDRVEXTRA500_iLayout = -1;
1743 static gint hf_spoolss_spoolss_GetPrinterDriver2_level = -1;
1744 static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_info_ = -1;
1745 static gint hf_spoolss_spoolss_DriverInfo6_version = -1;
1746 static gint hf_spoolss_spoolss_GetPrinter_offered = -1;
1747 static gint hf_spoolss_spoolss_JobInfo1_document_name = -1;
1748 static gint hf_spoolss_spoolss_EnumPrintProcessors_servername = -1;
1749 static gint hf_spoolss_spoolss_PrinterInfo3_secdesc_ = -1;
1750 static gint hf_spoolss_spoolss_DeleteForm_handle = -1;
1751 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER = -1;
1752 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwOptions = -1;
1753 static gint hf_spoolss_spoolss_NotifyData_time = -1;
1754 static gint hf_spoolss_spoolss_AddPrinter_devmode_ctr = -1;
1755 static gint hf_spoolss_spoolss_PSDRVEXTRA_caFlags = -1;
1756 static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_POSITION = -1;
1757 static gint hf_spoolss_spoolss_NotifyOption_flags = -1;
1758 static gint hf_spoolss_spoolss_SetJobInfo2_parameters = -1;
1759 static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ = -1;
1760 static gint hf_spoolss_spoolss_EnumPorts_info = -1;
1761 static gint hf_spoolss_spoolss_DeviceMode_paperlength = -1;
1762 static gint hf_spoolss_spoolss_DriverInfo5_driver_version = -1;
1763 static gint hf_spoolss_spoolss_PortData2_queue = -1;
1764 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER = -1;
1765 static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180 = -1;
1766 static gint hf_spoolss_spoolss_AddDriverInfo2_data_file = -1;
1767 static gint hf_spoolss_spoolss_DeviceMode_specversion = -1;
1768 static gint hf_spoolss_spoolss_PortInfo_info2 = -1;
1769 static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1 = -1;
1770 static gint hf_spoolss_spoolss_WritePrinter__data_size = -1;
1771 static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyBlob = -1;
1772 static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED = -1;
1773 static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers = -1;
1774 static gint hf_spoolss_spoolss_UserLevel1_size = -1;
1775 static gint hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr = -1;
1776 static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Flags = -1;
1777 static gint hf_spoolss_spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH = -1;
1778 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_needed = -1;
1779 static gint hf_spoolss_spoolss_AddJob_needed = -1;
1780 static gint hf_spoolss_spoolss_DriverInfo4_driver_name = -1;
1781 static gint hf_spoolss_spoolss_AddDriverInfo4_dependent_files = -1;
1782 static gint hf_spoolss_spoolss_PrinterInfo0_num_error_not_ready = -1;
1783 static gint hf_spoolss_spoolss_SetPrinterInfo2_defaultpriority = -1;
1784 static gint hf_spoolss_spoolss_PrinterInfo0_printername = -1;
1785 static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_offered = -1;
1786 static gint hf_spoolss_spoolss_PSDRVEXTRA_dwNupDirection = -1;
1787 static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PRINTING = -1;
1788 static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB = -1;
1789 static gint hf_spoolss_spoolss_PSDRVEXTRA500_caFlags = -1;
1790 static gint hf_spoolss_spoolss_PrinterInfo2_status = -1;
1791 static gint hf_spoolss_spoolss_GetForm_info_ = -1;
1792 static gint hf_spoolss_spoolss_PSDRVEXTRA400_wChecksum = -1;
1793 static gint hf_spoolss_RPC_PrintNamedProperty_propertyName = -1;
1794
1795 static gint proto_dcerpc_spoolss = -1;
1796 /* Version information */
1797
1798
1799 static e_uuid_t uuid_dcerpc_spoolss = {
1800         0x12345678, 0x1234, 0xabcd,
1801         { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab }
1802 };
1803 static guint16 ver_dcerpc_spoolss = 1;
1804
1805 const value_string spoolss_winreg_Type_vals[] = {
1806 { 0, NULL }
1807 };
1808 static int spoolss_dissect_element_Time_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1809 static int spoolss_dissect_element_Time_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1810 static int spoolss_dissect_element_Time_day_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1811 static int spoolss_dissect_element_Time_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1812 static int spoolss_dissect_element_Time_hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1813 static int spoolss_dissect_element_Time_minute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1814 static int spoolss_dissect_element_Time_second(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1815 static int spoolss_dissect_element_Time_millisecond(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1816 static int spoolss_dissect_element_TimeCtr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1817 static int spoolss_dissect_element_TimeCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1818 static int spoolss_dissect_element_TimeCtr_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
1819 const value_string spoolss_spoolss_ProcessorArchitecture_vals[] = {
1820         { PROCESSOR_ARCHITECTURE_INTEL, "PROCESSOR_ARCHITECTURE_INTEL" },
1821         { PROCESSOR_ARCHITECTURE_ARM, "PROCESSOR_ARCHITECTURE_ARM" },
1822         { PROCESSOR_ARCHITECTURE_IA64, "PROCESSOR_ARCHITECTURE_IA64" },
1823         { PROCESSOR_ARCHITECTURE_AMD64, "PROCESSOR_ARCHITECTURE_AMD64" },
1824 { 0, NULL }
1825 };
1826 const value_string spoolss_spoolss_ProcessorType_vals[] = {
1827         { PROCESSOR_ARM, "PROCESSOR_ARM" },
1828         { PROCESSOR_INTEL_386, "PROCESSOR_INTEL_386" },
1829         { PROCESSOR_INTEL_486, "PROCESSOR_INTEL_486" },
1830         { PROCESSOR_INTEL_PENTIUM, "PROCESSOR_INTEL_PENTIUM" },
1831         { PROCESSOR_INTEL_IA64, "PROCESSOR_INTEL_IA64" },
1832         { PROCESSOR_AMD_X8664, "PROCESSOR_AMD_X8664" },
1833 { 0, NULL }
1834 };
1835 const value_string spoolss_spoolss_MajorVersion_vals[] = {
1836         { SPOOLSS_MAJOR_VERSION_NT4_95_98_ME, "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME" },
1837         { SPOOLSS_MAJOR_VERSION_2000_2003_XP, "SPOOLSS_MAJOR_VERSION_2000_2003_XP" },
1838         { SPOOLSS_MAJOR_VERSION_2008_VISTA, "SPOOLSS_MAJOR_VERSION_2008_VISTA" },
1839 { 0, NULL }
1840 };
1841 const value_string spoolss_spoolss_MinorVersion_vals[] = {
1842         { SPOOLSS_MINOR_VERSION_0, "SPOOLSS_MINOR_VERSION_0" },
1843         { SPOOLSS_MINOR_VERSION_XP, "SPOOLSS_MINOR_VERSION_XP" },
1844         { SPOOLSS_MINOR_VERSION_2003_XP64, "SPOOLSS_MINOR_VERSION_2003_XP64" },
1845         { SPOOLSS_MINOR_VERSION_98, "SPOOLSS_MINOR_VERSION_98" },
1846         { SPOOLSS_MINOR_VERSION_ME, "SPOOLSS_MINOR_VERSION_ME" },
1847 { 0, NULL }
1848 };
1849 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAUSED_tfs = {
1850    "PRINTER_STATUS_PAUSED is SET",
1851    "PRINTER_STATUS_PAUSED is NOT SET",
1852 };
1853 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_ERROR_tfs = {
1854    "PRINTER_STATUS_ERROR is SET",
1855    "PRINTER_STATUS_ERROR is NOT SET",
1856 };
1857 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION_tfs = {
1858    "PRINTER_STATUS_PENDING_DELETION is SET",
1859    "PRINTER_STATUS_PENDING_DELETION is NOT SET",
1860 };
1861 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM_tfs = {
1862    "PRINTER_STATUS_PAPER_JAM is SET",
1863    "PRINTER_STATUS_PAPER_JAM is NOT SET",
1864 };
1865 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT_tfs = {
1866    "PRINTER_STATUS_PAPER_OUT is SET",
1867    "PRINTER_STATUS_PAPER_OUT is NOT SET",
1868 };
1869 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED_tfs = {
1870    "PRINTER_STATUS_MANUAL_FEED is SET",
1871    "PRINTER_STATUS_MANUAL_FEED is NOT SET",
1872 };
1873 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM_tfs = {
1874    "PRINTER_STATUS_PAPER_PROBLEM is SET",
1875    "PRINTER_STATUS_PAPER_PROBLEM is NOT SET",
1876 };
1877 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE_tfs = {
1878    "PRINTER_STATUS_OFFLINE is SET",
1879    "PRINTER_STATUS_OFFLINE is NOT SET",
1880 };
1881 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE_tfs = {
1882    "PRINTER_STATUS_IO_ACTIVE is SET",
1883    "PRINTER_STATUS_IO_ACTIVE is NOT SET",
1884 };
1885 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_BUSY_tfs = {
1886    "PRINTER_STATUS_BUSY is SET",
1887    "PRINTER_STATUS_BUSY is NOT SET",
1888 };
1889 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PRINTING_tfs = {
1890    "PRINTER_STATUS_PRINTING is SET",
1891    "PRINTER_STATUS_PRINTING is NOT SET",
1892 };
1893 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL_tfs = {
1894    "PRINTER_STATUS_OUTPUT_BIN_FULL is SET",
1895    "PRINTER_STATUS_OUTPUT_BIN_FULL is NOT SET",
1896 };
1897 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE_tfs = {
1898    "PRINTER_STATUS_NOT_AVAILABLE is SET",
1899    "PRINTER_STATUS_NOT_AVAILABLE is NOT SET",
1900 };
1901 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_WAITING_tfs = {
1902    "PRINTER_STATUS_WAITING is SET",
1903    "PRINTER_STATUS_WAITING is NOT SET",
1904 };
1905 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING_tfs = {
1906    "PRINTER_STATUS_PROCESSING is SET",
1907    "PRINTER_STATUS_PROCESSING is NOT SET",
1908 };
1909 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING_tfs = {
1910    "PRINTER_STATUS_INITIALIZING is SET",
1911    "PRINTER_STATUS_INITIALIZING is NOT SET",
1912 };
1913 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP_tfs = {
1914    "PRINTER_STATUS_WARMING_UP is SET",
1915    "PRINTER_STATUS_WARMING_UP is NOT SET",
1916 };
1917 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW_tfs = {
1918    "PRINTER_STATUS_TONER_LOW is SET",
1919    "PRINTER_STATUS_TONER_LOW is NOT SET",
1920 };
1921 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER_tfs = {
1922    "PRINTER_STATUS_NO_TONER is SET",
1923    "PRINTER_STATUS_NO_TONER is NOT SET",
1924 };
1925 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT_tfs = {
1926    "PRINTER_STATUS_PAGE_PUNT is SET",
1927    "PRINTER_STATUS_PAGE_PUNT is NOT SET",
1928 };
1929 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION_tfs = {
1930    "PRINTER_STATUS_USER_INTERVENTION is SET",
1931    "PRINTER_STATUS_USER_INTERVENTION is NOT SET",
1932 };
1933 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY_tfs = {
1934    "PRINTER_STATUS_OUT_OF_MEMORY is SET",
1935    "PRINTER_STATUS_OUT_OF_MEMORY is NOT SET",
1936 };
1937 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN_tfs = {
1938    "PRINTER_STATUS_DOOR_OPEN is SET",
1939    "PRINTER_STATUS_DOOR_OPEN is NOT SET",
1940 };
1941 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN_tfs = {
1942    "PRINTER_STATUS_SERVER_UNKNOWN is SET",
1943    "PRINTER_STATUS_SERVER_UNKNOWN is NOT SET",
1944 };
1945 static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE_tfs = {
1946    "PRINTER_STATUS_POWER_SAVE is SET",
1947    "PRINTER_STATUS_POWER_SAVE is NOT SET",
1948 };
1949 static const true_false_string spoolss_JobStatus_JOB_STATUS_PAUSED_tfs = {
1950    "JOB_STATUS_PAUSED is SET",
1951    "JOB_STATUS_PAUSED is NOT SET",
1952 };
1953 static const true_false_string spoolss_JobStatus_JOB_STATUS_ERROR_tfs = {
1954    "JOB_STATUS_ERROR is SET",
1955    "JOB_STATUS_ERROR is NOT SET",
1956 };
1957 static const true_false_string spoolss_JobStatus_JOB_STATUS_DELETING_tfs = {
1958    "JOB_STATUS_DELETING is SET",
1959    "JOB_STATUS_DELETING is NOT SET",
1960 };
1961 static const true_false_string spoolss_JobStatus_JOB_STATUS_SPOOLING_tfs = {
1962    "JOB_STATUS_SPOOLING is SET",
1963    "JOB_STATUS_SPOOLING is NOT SET",
1964 };
1965 static const true_false_string spoolss_JobStatus_JOB_STATUS_PRINTING_tfs = {
1966    "JOB_STATUS_PRINTING is SET",
1967    "JOB_STATUS_PRINTING is NOT SET",
1968 };
1969 static const true_false_string spoolss_JobStatus_JOB_STATUS_OFFLINE_tfs = {
1970    "JOB_STATUS_OFFLINE is SET",
1971    "JOB_STATUS_OFFLINE is NOT SET",
1972 };
1973 static const true_false_string spoolss_JobStatus_JOB_STATUS_PAPEROUT_tfs = {
1974    "JOB_STATUS_PAPEROUT is SET",
1975    "JOB_STATUS_PAPEROUT is NOT SET",
1976 };
1977 static const true_false_string spoolss_JobStatus_JOB_STATUS_PRINTED_tfs = {
1978    "JOB_STATUS_PRINTED is SET",
1979    "JOB_STATUS_PRINTED is NOT SET",
1980 };
1981 static const true_false_string spoolss_JobStatus_JOB_STATUS_DELETED_tfs = {
1982    "JOB_STATUS_DELETED is SET",
1983    "JOB_STATUS_DELETED is NOT SET",
1984 };
1985 static const true_false_string spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ_tfs = {
1986    "JOB_STATUS_BLOCKED_DEVQ is SET",
1987    "JOB_STATUS_BLOCKED_DEVQ is NOT SET",
1988 };
1989 static const true_false_string spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION_tfs = {
1990    "JOB_STATUS_USER_INTERVENTION is SET",
1991    "JOB_STATUS_USER_INTERVENTION is NOT SET",
1992 };
1993 static const true_false_string spoolss_JobStatus_JOB_STATUS_RESTART_tfs = {
1994    "JOB_STATUS_RESTART is SET",
1995    "JOB_STATUS_RESTART is NOT SET",
1996 };
1997 static const true_false_string spoolss_JobStatus_JOB_STATUS_COMPLETE_tfs = {
1998    "JOB_STATUS_COMPLETE is SET",
1999    "JOB_STATUS_COMPLETE is NOT SET",
2000 };
2001 const value_string spoolss_spoolss_Build_vals[] = {
2002         { SPOOLSS_DEBUGGING_BUILD, "SPOOLSS_DEBUGGING_BUILD" },
2003         { SPOOLSS_RELEASE_BUILD, "SPOOLSS_RELEASE_BUILD" },
2004 { 0, NULL }
2005 };
2006 static int spoolss_dissect_element_PrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2007 static int spoolss_dissect_element_PrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2008 static int spoolss_dissect_element_PrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2009 static int spoolss_dissect_element_PrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2010 static int spoolss_dissect_element_PrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2011 static int spoolss_dissect_element_PrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2012 static int spoolss_dissect_element_PrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2013 static int spoolss_dissect_element_PrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2014 static int spoolss_dissect_element_PrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2015 static int spoolss_dissect_element_PrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2016 static int spoolss_dissect_element_PrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2017 static int spoolss_dissect_element_PrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2018 static int spoolss_dissect_element_PrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2019 static int spoolss_dissect_element_PrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2020 static int spoolss_dissect_element_PrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2021 static int spoolss_dissect_element_PrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2022 static int spoolss_dissect_element_PrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2023 static int spoolss_dissect_element_PrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2024 static int spoolss_dissect_element_PrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2025 static int spoolss_dissect_element_PrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2026 static int spoolss_dissect_element_PrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2027 static int spoolss_dissect_element_PrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2028 static int spoolss_dissect_element_PrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2029 static int spoolss_dissect_element_PrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2030 static int spoolss_dissect_element_PrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2031 static int spoolss_dissect_element_PrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2032 static int spoolss_dissect_element_PrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2033 static int spoolss_dissect_element_PrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2034 static int spoolss_dissect_element_PrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2035 static int spoolss_dissect_element_PrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2036 static int spoolss_dissect_element_PrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2037 const value_string spoolss_spoolss_DM_Signature_vals[] = {
2038         { SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA, "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA" },
2039         { SPOOLSS_DM_SIGNATURE_JTEXP, "SPOOLSS_DM_SIGNATURE_JTEXP" },
2040         { SPOOLSS_DM_SIGNATURE_PSEXTRA, "SPOOLSS_DM_SIGNATURE_PSEXTRA" },
2041 { 0, NULL }
2042 };
2043 const value_string spoolss_spoolss_DM_Layout_vals[] = {
2044         { SPOOLSS_DM_LAYOUT_NUP_DISABLED, "SPOOLSS_DM_LAYOUT_NUP_DISABLED" },
2045         { SPOOLSS_DM_LAYOUT_NUP_2, "SPOOLSS_DM_LAYOUT_NUP_2" },
2046         { SPOOLSS_DM_LAYOUT_NUP_4, "SPOOLSS_DM_LAYOUT_NUP_4" },
2047         { SPOOLSS_DM_LAYOUT_NUP_6, "SPOOLSS_DM_LAYOUT_NUP_6" },
2048         { SPOOLSS_DM_LAYOUT_NUP_9, "SPOOLSS_DM_LAYOUT_NUP_9" },
2049         { SPOOLSS_DM_LAYOUT_NUP_16, "SPOOLSS_DM_LAYOUT_NUP_16" },
2050         { SPOOLSS_DM_LAYOUT_BOOKLET, "SPOOLSS_DM_LAYOUT_BOOKLET" },
2051 { 0, NULL }
2052 };
2053 const value_string spoolss_spoolss_DM_NupDirection_vals[] = {
2054         { SPOOLSS_DM_NUP_DIRECTION_L2R_T2B, "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B" },
2055         { SPOOLSS_DM_NUP_DIRECTION_T2B_L2R, "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R" },
2056         { SPOOLSS_DM_NUP_DIRECTION_R2L_T2B, "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B" },
2057         { SPOOLSS_DM_NUP_DIRECTION_T2B_R2L, "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L" },
2058 { 0, NULL }
2059 };
2060 const value_string spoolss_spoolss_DM_NupBorderFlags_vals[] = {
2061         { SPOOLSS_DM_NUP_BORDER_PRINT, "SPOOLSS_DM_NUP_BORDER_PRINT" },
2062         { SPOOLSS_DM_NUP_BORDER_NONE, "SPOOLSS_DM_NUP_BORDER_NONE" },
2063 { 0, NULL }
2064 };
2065 const value_string spoolss_spoolss_DM_BookletFlags_vals[] = {
2066         { SPOOLSS_DM_BOOKLET_LEFT_FLIP, "SPOOLSS_DM_BOOKLET_LEFT_FLIP" },
2067         { SPOOLSS_DM_BOOKLET_RIGHT_FLIP, "SPOOLSS_DM_BOOKLET_RIGHT_FLIP" },
2068 { 0, NULL }
2069 };
2070 static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER_tfs = {
2071    "SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER is SET",
2072    "SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER is NOT SET",
2073 };
2074 static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR_tfs = {
2075    "SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR is SET",
2076    "SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR is NOT SET",
2077 };
2078 static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE_tfs = {
2079    "SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE is SET",
2080    "SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE is NOT SET",
2081 };
2082 static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP_tfs = {
2083    "SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP is SET",
2084    "SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP is NOT SET",
2085 };
2086 static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180_tfs = {
2087    "SPOOLSS_DM_PS_FLAGS_ROTATE_180 is SET",
2088    "SPOOLSS_DM_PS_FLAGS_ROTATE_180 is NOT SET",
2089 };
2090 static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL_tfs = {
2091    "SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL is SET",
2092    "SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL is NOT SET",
2093 };
2094 static int spoolss_dissect_element_PSDRVEXTRA351_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2095 static int spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2096 static int spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2097 static int spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2098 static int spoolss_dissect_element_PSDRVEXTRA351_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2099 static int spoolss_dissect_element_PSDRVEXTRA351_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2100 static int spoolss_dissect_element_PSDRVEXTRA351_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2101 static int spoolss_dissect_element_PSDRVEXTRA351_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2102 static int spoolss_dissect_element_PSDRVEXTRA351_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2103 static int spoolss_dissect_element_PSDRVEXTRA351_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2104 static int spoolss_dissect_element_PSDRVEXTRA351_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2105 static int spoolss_dissect_element_PSDRVEXTRA351_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2106 static int spoolss_dissect_element_PSDRVEXTRA351_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2107 static int spoolss_dissect_element_PSDRVEXTRA351_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2108 static int spoolss_dissect_element_PSDRVEXTRA351_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2109 static int spoolss_dissect_element_PSDRVEXTRA351_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2110 static int spoolss_dissect_element_PSDRVEXTRA400_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2111 static int spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2112 static int spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2113 static int spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2114 static int spoolss_dissect_element_PSDRVEXTRA400_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2115 static int spoolss_dissect_element_PSDRVEXTRA400_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2116 static int spoolss_dissect_element_PSDRVEXTRA400_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2117 static int spoolss_dissect_element_PSDRVEXTRA400_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2118 static int spoolss_dissect_element_PSDRVEXTRA400_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2119 static int spoolss_dissect_element_PSDRVEXTRA400_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2120 static int spoolss_dissect_element_PSDRVEXTRA400_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2121 static int spoolss_dissect_element_PSDRVEXTRA400_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2122 static int spoolss_dissect_element_PSDRVEXTRA400_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2123 static int spoolss_dissect_element_PSDRVEXTRA400_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2124 static int spoolss_dissect_element_PSDRVEXTRA400_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2125 static int spoolss_dissect_element_PSDRVEXTRA400_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2126 static int spoolss_dissect_element_PSDRVEXTRA400_wChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2127 static int spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2128 static int spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2129 static int spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2130 const value_string spoolss_spoolss_DMPS_Dialect_vals[] = {
2131         { SPOOLSS_DM_PS_OPTIMIZE_SPEED, "SPOOLSS_DM_PS_OPTIMIZE_SPEED" },
2132         { SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY, "SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY" },
2133         { SPOOLSS_DM_PS_OPTIMIZE_EPS, "SPOOLSS_DM_PS_OPTIMIZE_EPS" },
2134         { SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL, "SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL" },
2135 { 0, NULL }
2136 };
2137 const value_string spoolss_spoolss_DMPS_TTDLFmt_vals[] = {
2138         { SPOOLSS_DM_PS_TTDLFMT_DEFAULT, "SPOOLSS_DM_PS_TTDLFMT_DEFAULT" },
2139         { SPOOLSS_DM_PS_TTDLFMT_TYPE_1, "SPOOLSS_DM_PS_TTDLFMT_TYPE_1" },
2140         { SPOOLSS_DM_PS_TTDLFMT_TYPE_3, "SPOOLSS_DM_PS_TTDLFMT_TYPE_3" },
2141         { SPOOLSS_DM_PS_TTDLFMT_TYPE_42, "SPOOLSS_DM_PS_TTDLFMT_TYPE_42" },
2142 { 0, NULL }
2143 };
2144 const value_string spoolss_spoolss_DMPS_PSLevel_vals[] = {
2145         { SPOOLSS_DM_PS_PSLEVEL_1, "SPOOLSS_DM_PS_PSLEVEL_1" },
2146         { SPOOLSS_DM_PS_PSLEVEL_2, "SPOOLSS_DM_PS_PSLEVEL_2" },
2147         { SPOOLSS_DM_PS_PSLEVEL_3, "SPOOLSS_DM_PS_PSLEVEL_3" },
2148 { 0, NULL }
2149 };
2150 const value_string spoolss_spoolss_DMPS_FeedDirection_vals[] = {
2151         { SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST, "SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST" },
2152         { SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST, "SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST" },
2153         { SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN, "SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN" },
2154         { SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN, "SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN" },
2155 { 0, NULL }
2156 };
2157 static int spoolss_dissect_element_PSDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2158 static int spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2159 static int spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2160 static int spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2161 static int spoolss_dissect_element_PSDRVEXTRA500_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2162 static int spoolss_dissect_element_PSDRVEXTRA500_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2163 static int spoolss_dissect_element_PSDRVEXTRA500_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2164 static int spoolss_dissect_element_PSDRVEXTRA500_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2165 static int spoolss_dissect_element_PSDRVEXTRA500_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2166 static int spoolss_dissect_element_PSDRVEXTRA500_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2167 static int spoolss_dissect_element_PSDRVEXTRA500_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2168 static int spoolss_dissect_element_PSDRVEXTRA500_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2169 static int spoolss_dissect_element_PSDRVEXTRA500_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2170 static int spoolss_dissect_element_PSDRVEXTRA500_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2171 static int spoolss_dissect_element_PSDRVEXTRA500_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2172 static int spoolss_dissect_element_PSDRVEXTRA500_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2173 static int spoolss_dissect_element_PSDRVEXTRA500_wReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2174 static int spoolss_dissect_element_PSDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2175 static int spoolss_dissect_element_PSDRVEXTRA500_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2176 static int spoolss_dissect_element_PSDRVEXTRA500_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2177 static int spoolss_dissect_element_PSDRVEXTRA500_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2178 static int spoolss_dissect_element_PSDRVEXTRA500_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2179 static int spoolss_dissect_element_PSDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2180 static int spoolss_dissect_element_PSDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2181 static int spoolss_dissect_element_PSDRVEXTRA500_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2182 static int spoolss_dissect_element_PSDRVEXTRA500_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2183 static int spoolss_dissect_element_PSDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2184 static int spoolss_dissect_element_PSDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2185 static int spoolss_dissect_element_PSDRVEXTRA500_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2186 static int spoolss_dissect_element_PSDRVEXTRA500_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2187 static int spoolss_dissect_element_PSDRVEXTRA500_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2188 static int spoolss_dissect_element_PSDRVEXTRA500_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2189 static int spoolss_dissect_element_PSDRVEXTRA500_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2190 static int spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2191 static int spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2192 static int spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2193 static int spoolss_dissect_element_PSDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2194 static int spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2195 static int spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2196 static int spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2197 static int spoolss_dissect_element_PSDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2198 static int spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2199 static int spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2200 static int spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2201 static int spoolss_dissect_element_PSDRVEXTRA_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2202 static int spoolss_dissect_element_PSDRVEXTRA_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2203 static int spoolss_dissect_element_PSDRVEXTRA_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2204 static int spoolss_dissect_element_PSDRVEXTRA_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2205 static int spoolss_dissect_element_PSDRVEXTRA_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2206 static int spoolss_dissect_element_PSDRVEXTRA_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2207 static int spoolss_dissect_element_PSDRVEXTRA_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2208 static int spoolss_dissect_element_PSDRVEXTRA_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2209 static int spoolss_dissect_element_PSDRVEXTRA_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2210 static int spoolss_dissect_element_PSDRVEXTRA_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2211 static int spoolss_dissect_element_PSDRVEXTRA_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2212 static int spoolss_dissect_element_PSDRVEXTRA_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2213 static int spoolss_dissect_element_PSDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2214 static int spoolss_dissect_element_PSDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2215 static int spoolss_dissect_element_PSDRVEXTRA_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2216 static int spoolss_dissect_element_PSDRVEXTRA_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2217 static int spoolss_dissect_element_PSDRVEXTRA_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2218 static int spoolss_dissect_element_PSDRVEXTRA_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2219 static int spoolss_dissect_element_PSDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2220 static int spoolss_dissect_element_PSDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2221 static int spoolss_dissect_element_PSDRVEXTRA_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2222 static int spoolss_dissect_element_PSDRVEXTRA_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2223 static int spoolss_dissect_element_PSDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2224 static int spoolss_dissect_element_PSDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2225 static int spoolss_dissect_element_PSDRVEXTRA_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2226 static int spoolss_dissect_element_PSDRVEXTRA_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2227 static int spoolss_dissect_element_PSDRVEXTRA_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2228 static int spoolss_dissect_element_PSDRVEXTRA_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2229 static int spoolss_dissect_element_PSDRVEXTRA_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2230 static int spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2231 static int spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2232 static int spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2233 static int spoolss_dissect_element_PSDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2234 static int spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2235 static int spoolss_dissect_element_PSDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2236 static int spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2237 static int spoolss_dissect_element_PSDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2238 static int spoolss_dissect_element_PSDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2239 static int spoolss_dissect_element_PSDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2240 static int spoolss_dissect_element_PSDRVEXTRA_dwPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2241 static int spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2242 static int spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2243 const value_string spoolss_spoolss_DMUNI_Quality_vals[] = {
2244         { SPOOLSS_DM_UNI_QUALITY_BEST, "SPOOLSS_DM_UNI_QUALITY_BEST" },
2245         { SPOOLSS_DM_UNI_QUALITY_MEDIUM, "SPOOLSS_DM_UNI_QUALITY_MEDIUM" },
2246         { SPOOLSS_DM_UNI_QUALITY_DRAFT, "SPOOLSS_DM_UNI_QUALITY_DRAFT" },
2247 { 0, NULL }
2248 };
2249 static const true_false_string spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS_tfs = {
2250    "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS is SET",
2251    "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS is NOT SET",
2252 };
2253 static const true_false_string spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL_tfs = {
2254    "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL is SET",
2255    "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL is NOT SET",
2256 };
2257 static const true_false_string spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING_tfs = {
2258    "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING is SET",
2259    "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING is NOT SET",
2260 };
2261 static int spoolss_dissect_element_UNIDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2262 static int spoolss_dissect_element_UNIDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2263 static int spoolss_dissect_element_UNIDRVEXTRA500_sPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2264 static int spoolss_dissect_element_UNIDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2265 static int spoolss_dissect_element_UNIDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2266 static int spoolss_dissect_element_UNIDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2267 static int spoolss_dissect_element_UNIDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2268 static int spoolss_dissect_element_UNIDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2269 static int spoolss_dissect_element_UNIDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2270 static int spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2271 static int spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2272 static int spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2273 static int spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2274 static int spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2275 static int spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2276 static int spoolss_dissect_element_UNIDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2277 static int spoolss_dissect_element_UNIDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2278 static int spoolss_dissect_element_UNIDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2279 static int spoolss_dissect_element_UNIDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2280 static int spoolss_dissect_element_UNIDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2281 static int spoolss_dissect_element_UNIDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2282 static int spoolss_dissect_element_UNIDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2283 static int spoolss_dissect_element_UNIDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2284 static int spoolss_dissect_element_UNIDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2285 static int spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2286 static int spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2287 static int spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2288 static int spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2289 static int spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2290 static int spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2291 static int spoolss_dissect_element_UNIDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2292 static int spoolss_dissect_element_UNIDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2293 static int spoolss_dissect_element_UNIDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2294 static int spoolss_dissect_element_JTEXP_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2295 static int spoolss_dissect_element_JTEXP_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2296 static int spoolss_dissect_element_JTEXP_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2297 static int spoolss_dissect_element_JTEXP_wJTHdrSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2298 static int spoolss_dissect_element_JTEXP_wCoreMFOSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2299 static int spoolss_dissect_element_JTEXP_ModelName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2300 static int spoolss_dissect_element_JTEXP_FeatureOptionPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2301 static int spoolss_dissect_element_OEM_DMEXTRA_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2302 static int spoolss_dissect_element_OEM_DMEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2303 static int spoolss_dissect_element_OEM_DMEXTRA_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2304 static int spoolss_dissect_element_OEM_DMEXTRA_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2305 static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra351(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2306 static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra400(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2307 static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2308 static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2309 static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2310 static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra3_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2311 static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2312 static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2313 static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_uniblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2314 static const true_false_string spoolss_DeviceModeFields_DEVMODE_ORIENTATION_tfs = {
2315    "DEVMODE_ORIENTATION is SET",
2316    "DEVMODE_ORIENTATION is NOT SET",
2317 };
2318 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PAPERSIZE_tfs = {
2319    "DEVMODE_PAPERSIZE is SET",
2320    "DEVMODE_PAPERSIZE is NOT SET",
2321 };
2322 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH_tfs = {
2323    "DEVMODE_PAPERLENGTH is SET",
2324    "DEVMODE_PAPERLENGTH is NOT SET",
2325 };
2326 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH_tfs = {
2327    "DEVMODE_PAPERWIDTH is SET",
2328    "DEVMODE_PAPERWIDTH is NOT SET",
2329 };
2330 static const true_false_string spoolss_DeviceModeFields_DEVMODE_SCALE_tfs = {
2331    "DEVMODE_SCALE is SET",
2332    "DEVMODE_SCALE is NOT SET",
2333 };
2334 static const true_false_string spoolss_DeviceModeFields_DEVMODE_POSITION_tfs = {
2335    "DEVMODE_POSITION is SET",
2336    "DEVMODE_POSITION is NOT SET",
2337 };
2338 static const true_false_string spoolss_DeviceModeFields_DEVMODE_NUP_tfs = {
2339    "DEVMODE_NUP is SET",
2340    "DEVMODE_NUP is NOT SET",
2341 };
2342 static const true_false_string spoolss_DeviceModeFields_DEVMODE_COPIES_tfs = {
2343    "DEVMODE_COPIES is SET",
2344    "DEVMODE_COPIES is NOT SET",
2345 };
2346 static const true_false_string spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE_tfs = {
2347    "DEVMODE_DEFAULTSOURCE is SET",
2348    "DEVMODE_DEFAULTSOURCE is NOT SET",
2349 };
2350 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY_tfs = {
2351    "DEVMODE_PRINTQUALITY is SET",
2352    "DEVMODE_PRINTQUALITY is NOT SET",
2353 };
2354 static const true_false_string spoolss_DeviceModeFields_DEVMODE_COLOR_tfs = {
2355    "DEVMODE_COLOR is SET",
2356    "DEVMODE_COLOR is NOT SET",
2357 };
2358 static const true_false_string spoolss_DeviceModeFields_DEVMODE_DUPLEX_tfs = {
2359    "DEVMODE_DUPLEX is SET",
2360    "DEVMODE_DUPLEX is NOT SET",
2361 };
2362 static const true_false_string spoolss_DeviceModeFields_DEVMODE_YRESOLUTION_tfs = {
2363    "DEVMODE_YRESOLUTION is SET",
2364    "DEVMODE_YRESOLUTION is NOT SET",
2365 };
2366 static const true_false_string spoolss_DeviceModeFields_DEVMODE_TTOPTION_tfs = {
2367    "DEVMODE_TTOPTION is SET",
2368    "DEVMODE_TTOPTION is NOT SET",
2369 };
2370 static const true_false_string spoolss_DeviceModeFields_DEVMODE_COLLATE_tfs = {
2371    "DEVMODE_COLLATE is SET",
2372    "DEVMODE_COLLATE is NOT SET",
2373 };
2374 static const true_false_string spoolss_DeviceModeFields_DEVMODE_FORMNAME_tfs = {
2375    "DEVMODE_FORMNAME is SET",
2376    "DEVMODE_FORMNAME is NOT SET",
2377 };
2378 static const true_false_string spoolss_DeviceModeFields_DEVMODE_LOGPIXELS_tfs = {
2379    "DEVMODE_LOGPIXELS is SET",
2380    "DEVMODE_LOGPIXELS is NOT SET",
2381 };
2382 static const true_false_string spoolss_DeviceModeFields_DEVMODE_BITSPERPEL_tfs = {
2383    "DEVMODE_BITSPERPEL is SET",
2384    "DEVMODE_BITSPERPEL is NOT SET",
2385 };
2386 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PELSWIDTH_tfs = {
2387    "DEVMODE_PELSWIDTH is SET",
2388    "DEVMODE_PELSWIDTH is NOT SET",
2389 };
2390 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT_tfs = {
2391    "DEVMODE_PELSHEIGHT is SET",
2392    "DEVMODE_PELSHEIGHT is NOT SET",
2393 };
2394 static const true_false_string spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS_tfs = {
2395    "DEVMODE_DISPLAYFLAGS is SET",
2396    "DEVMODE_DISPLAYFLAGS is NOT SET",
2397 };
2398 static const true_false_string spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY_tfs = {
2399    "DEVMODE_DISPLAYFREQUENCY is SET",
2400    "DEVMODE_DISPLAYFREQUENCY is NOT SET",
2401 };
2402 static const true_false_string spoolss_DeviceModeFields_DEVMODE_ICMMETHOD_tfs = {
2403    "DEVMODE_ICMMETHOD is SET",
2404    "DEVMODE_ICMMETHOD is NOT SET",
2405 };
2406 static const true_false_string spoolss_DeviceModeFields_DEVMODE_ICMINTENT_tfs = {
2407    "DEVMODE_ICMINTENT is SET",
2408    "DEVMODE_ICMINTENT is NOT SET",
2409 };
2410 static const true_false_string spoolss_DeviceModeFields_DEVMODE_MEDIATYPE_tfs = {
2411    "DEVMODE_MEDIATYPE is SET",
2412    "DEVMODE_MEDIATYPE is NOT SET",
2413 };
2414 static const true_false_string spoolss_DeviceModeFields_DEVMODE_DITHERTYPE_tfs = {
2415    "DEVMODE_DITHERTYPE is SET",
2416    "DEVMODE_DITHERTYPE is NOT SET",
2417 };
2418 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH_tfs = {
2419    "DEVMODE_PANNINGWIDTH is SET",
2420    "DEVMODE_PANNINGWIDTH is NOT SET",
2421 };
2422 static const true_false_string spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT_tfs = {
2423    "DEVMODE_PANNINGHEIGHT is SET",
2424    "DEVMODE_PANNINGHEIGHT is NOT SET",
2425 };
2426 const value_string spoolss_spoolss_DeviceModeSpecVersion_vals[] = {
2427         { DMSPEC_NT3, "DMSPEC_NT3" },
2428         { DMSPEC_WIN95_98_ME, "DMSPEC_WIN95_98_ME" },
2429         { DMSPEC_NT4_AND_ABOVE, "DMSPEC_NT4_AND_ABOVE" },
2430 { 0, NULL }
2431 };
2432 const value_string spoolss_spoolss_DeviceModeOrientation_vals[] = {
2433         { DMORIENT_PORTRAIT, "DMORIENT_PORTRAIT" },
2434         { DMORIENT_LANDSCAPE, "DMORIENT_LANDSCAPE" },
2435 { 0, NULL }
2436 };
2437 const value_string spoolss_spoolss_DeviceModePaperSize_vals[] = {
2438         { DMPAPER_LETTER, "DMPAPER_LETTER" },
2439         { DMPAPER_LETTERSMALL, "DMPAPER_LETTERSMALL" },
2440         { DMPAPER_TABLOID, "DMPAPER_TABLOID" },
2441         { DMPAPER_LEDGER, "DMPAPER_LEDGER" },
2442         { DMPAPER_LEGAL, "DMPAPER_LEGAL" },
2443         { DMPAPER_STATEMENT, "DMPAPER_STATEMENT" },
2444         { DMPAPER_EXECUTIVE, "DMPAPER_EXECUTIVE" },
2445         { DMPAPER_A3, "DMPAPER_A3" },
2446         { DMPAPER_A4, "DMPAPER_A4" },
2447         { DMPAPER_A4SMALL, "DMPAPER_A4SMALL" },
2448         { DMPAPER_A5, "DMPAPER_A5" },
2449         { DMPAPER_B4, "DMPAPER_B4" },
2450         { DMPAPER_B5, "DMPAPER_B5" },
2451         { DMPAPER_FOLIO, "DMPAPER_FOLIO" },
2452         { DMPAPER_QUARTO, "DMPAPER_QUARTO" },
2453         { DMPAPER_10X14, "DMPAPER_10X14" },
2454         { DMPAPER_11X17, "DMPAPER_11X17" },
2455         { DMPAPER_NOTE, "DMPAPER_NOTE" },
2456         { DMPAPER_ENV_9, "DMPAPER_ENV_9" },
2457         { DMPAPER_ENV_10, "DMPAPER_ENV_10" },
2458         { DMPAPER_ENV_11, "DMPAPER_ENV_11" },
2459         { DMPAPER_ENV_12, "DMPAPER_ENV_12" },
2460         { DMPAPER_ENV_14, "DMPAPER_ENV_14" },
2461         { DMPAPER_CSHEET, "DMPAPER_CSHEET" },
2462         { DMPAPER_DSHEET, "DMPAPER_DSHEET" },
2463         { DMPAPER_ESHEET, "DMPAPER_ESHEET" },
2464         { DMPAPER_ENV_DL, "DMPAPER_ENV_DL" },
2465         { DMPAPER_ENV_C5, "DMPAPER_ENV_C5" },
2466         { DMPAPER_ENV_C3, "DMPAPER_ENV_C3" },
2467         { DMPAPER_ENV_C4, "DMPAPER_ENV_C4" },
2468         { DMPAPER_ENV_C6, "DMPAPER_ENV_C6" },
2469         { DMPAPER_ENV_C65, "DMPAPER_ENV_C65" },
2470         { DMPAPER_ENV_B4, "DMPAPER_ENV_B4" },
2471         { DMPAPER_ENV_B5, "DMPAPER_ENV_B5" },
2472         { DMPAPER_ENV_B6, "DMPAPER_ENV_B6" },
2473         { DMPAPER_ENV_ITALY, "DMPAPER_ENV_ITALY" },
2474         { DMPAPER_ENV_MONARCH, "DMPAPER_ENV_MONARCH" },
2475         { DMPAPER_ENV_PERSONAL, "DMPAPER_ENV_PERSONAL" },
2476         { DMPAPER_FANFOLD_US, "DMPAPER_FANFOLD_US" },
2477         { DMPAPER_FANFOLD_STD_GERMAN, "DMPAPER_FANFOLD_STD_GERMAN" },
2478         { DMPAPER_FANFOLD_LGL_GERMAN, "DMPAPER_FANFOLD_LGL_GERMAN" },
2479         { DMPAPER_DBL_JAPANESE_POSTCARD, "DMPAPER_DBL_JAPANESE_POSTCARD" },
2480         { DMPAPER_A6, "DMPAPER_A6" },
2481         { DMPAPER_JENV_KAKU2, "DMPAPER_JENV_KAKU2" },
2482         { DMPAPER_JENV_KAKU3, "DMPAPER_JENV_KAKU3" },
2483         { DMPAPER_JENV_CHOU3, "DMPAPER_JENV_CHOU3" },
2484         { DMPAPER_JENV_CHOU4, "DMPAPER_JENV_CHOU4" },
2485         { DMPAPER_LETTER_ROTATED, "DMPAPER_LETTER_ROTATED" },
2486         { DMPAPER_A3_ROTATED, "DMPAPER_A3_ROTATED" },
2487         { DMPAPER_A4_ROTATED, "DMPAPER_A4_ROTATED" },
2488         { DMPAPER_A5_ROTATED, "DMPAPER_A5_ROTATED" },
2489         { DMPAPER_B4_JIS_ROTATED, "DMPAPER_B4_JIS_ROTATED" },
2490         { DMPAPER_B5_JIS_ROTATED, "DMPAPER_B5_JIS_ROTATED" },
2491         { DMPAPER_JAPANESE_POSTCARD_ROTATED, "DMPAPER_JAPANESE_POSTCARD_ROTATED" },
2492         { DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED, "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED" },
2493         { DMPAPER_A6_ROTATED, "DMPAPER_A6_ROTATED" },
2494         { DMPAPER_JENV_KAKU2_ROTATED, "DMPAPER_JENV_KAKU2_ROTATED" },
2495         { DMPAPER_JENV_KAKU3_ROTATED, "DMPAPER_JENV_KAKU3_ROTATED" },
2496         { DMPAPER_JENV_CHOU3_ROTATED, "DMPAPER_JENV_CHOU3_ROTATED" },
2497         { DMPAPER_JENV_CHOU4_ROTATED, "DMPAPER_JENV_CHOU4_ROTATED" },
2498         { DMPAPER_B6_JIS, "DMPAPER_B6_JIS" },
2499         { DMPAPER_B6_JIS_ROTATED, "DMPAPER_B6_JIS_ROTATED" },
2500         { DMPAPER_12X11, "DMPAPER_12X11" },
2501         { DMPAPER_JENV_YOU4, "DMPAPER_JENV_YOU4" },
2502         { DMPAPER_JENV_YOU4_ROTATED, "DMPAPER_JENV_YOU4_ROTATED" },
2503         { DMPAPER_P16K, "DMPAPER_P16K" },
2504         { DMPAPER_P32K, "DMPAPER_P32K" },
2505         { DMPAPER_P32KBIG, "DMPAPER_P32KBIG" },
2506         { DMPAPER_PENV_1, "DMPAPER_PENV_1" },
2507         { DMPAPER_PENV_2, "DMPAPER_PENV_2" },
2508         { DMPAPER_PENV_3, "DMPAPER_PENV_3" },
2509         { DMPAPER_PENV_4, "DMPAPER_PENV_4" },
2510         { DMPAPER_PENV_5, "DMPAPER_PENV_5" },
2511         { DMPAPER_PENV_6, "DMPAPER_PENV_6" },
2512         { DMPAPER_PENV_7, "DMPAPER_PENV_7" },
2513         { DMPAPER_PENV_8, "DMPAPER_PENV_8" },
2514         { DMPAPER_PENV_9, "DMPAPER_PENV_9" },
2515         { DMPAPER_PENV_10, "DMPAPER_PENV_10" },
2516         { DMPAPER_P16K_ROTATED, "DMPAPER_P16K_ROTATED" },
2517         { DMPAPER_P32K_ROTATED, "DMPAPER_P32K_ROTATED" },
2518         { DMPAPER_P32KBIG_ROTATED, "DMPAPER_P32KBIG_ROTATED" },
2519         { DMPAPER_PENV_1_ROTATED, "DMPAPER_PENV_1_ROTATED" },
2520         { DMPAPER_PENV_2_ROTATED, "DMPAPER_PENV_2_ROTATED" },
2521         { DMPAPER_PENV_3_ROTATED, "DMPAPER_PENV_3_ROTATED" },
2522         { DMPAPER_PENV_4_ROTATED, "DMPAPER_PENV_4_ROTATED" },
2523         { DMPAPER_PENV_5_ROTATED, "DMPAPER_PENV_5_ROTATED" },
2524         { DMPAPER_PENV_6_ROTATED, "DMPAPER_PENV_6_ROTATED" },
2525         { DMPAPER_PENV_7_ROTATED, "DMPAPER_PENV_7_ROTATED" },
2526         { DMPAPER_PENV_8_ROTATED, "DMPAPER_PENV_8_ROTATED" },
2527         { DMPAPER_PENV_9_ROTATED, "DMPAPER_PENV_9_ROTATED" },
2528         { DMPAPER_PENV_10_ROTATED, "DMPAPER_PENV_10_ROTATED" },
2529 { 0, NULL }
2530 };
2531 const value_string spoolss_spoolss_DeviceModeDefaultSource_vals[] = {
2532         { DMBIN_UPPER, "DMBIN_UPPER" },
2533         { DMBIN_LOWER, "DMBIN_LOWER" },
2534         { DMBIN_MIDDLE, "DMBIN_MIDDLE" },
2535         { DMBIN_MANUAL, "DMBIN_MANUAL" },
2536         { DMBIN_ENVELOPE, "DMBIN_ENVELOPE" },
2537         { DMBIN_ENVMANUAL, "DMBIN_ENVMANUAL" },
2538         { DMBIN_AUTO, "DMBIN_AUTO" },
2539         { DMBIN_TRACTOR, "DMBIN_TRACTOR" },
2540         { DMBIN_SMALLFMT, "DMBIN_SMALLFMT" },
2541         { DMBIN_LARGEFMT, "DMBIN_LARGEFMT" },
2542         { DMBIN_LARGECAPACITY, "DMBIN_LARGECAPACITY" },
2543         { DMBIN_CASSETTE, "DMBIN_CASSETTE" },
2544         { DMBIN_FORMSOURCE, "DMBIN_FORMSOURCE" },
2545 { 0, NULL }
2546 };
2547 const value_string spoolss_spoolss_DeviceModePrintQuality_vals[] = {
2548         { DMRES_HIGH, "DMRES_HIGH" },
2549         { DMRES_MEDIUM, "DMRES_MEDIUM" },
2550         { DMRES_LOW, "DMRES_LOW" },
2551         { DMRES_DRAFT, "DMRES_DRAFT" },
2552 { 0, NULL }
2553 };
2554 const value_string spoolss_spoolss_DeviceModeColor_vals[] = {
2555         { DMRES_MONOCHROME, "DMRES_MONOCHROME" },
2556         { DMRES_COLOR, "DMRES_COLOR" },
2557 { 0, NULL }
2558 };
2559 const value_string spoolss_spoolss_DeviceModeDuplex_vals[] = {
2560         { DMDUP_SIMPLEX, "DMDUP_SIMPLEX" },
2561         { DMDUP_VERTICAL, "DMDUP_VERTICAL" },
2562         { DMDUP_HORIZONTAL, "DMDUP_HORIZONTAL" },
2563 { 0, NULL }
2564 };
2565 const value_string spoolss_spoolss_DeviceModeTTOption_vals[] = {
2566         { DMTT_BITMAP, "DMTT_BITMAP" },
2567         { DMTT_DOWNLOAD, "DMTT_DOWNLOAD" },
2568         { DMTT_SUBDEV, "DMTT_SUBDEV" },
2569         { DMTT_DOWNLOAD_OUTLINE, "DMTT_DOWNLOAD_OUTLINE" },
2570 { 0, NULL }
2571 };
2572 const value_string spoolss_spoolss_DeviceModeCollate_vals[] = {
2573         { DMCOLLATE_FALSE, "DMCOLLATE_FALSE" },
2574         { DMCOLLATE_TRUE, "DMCOLLATE_TRUE" },
2575 { 0, NULL }
2576 };
2577 const value_string spoolss_spoolss_DeviceModeNUp_vals[] = {
2578         { DMNUP_SYSTEM, "DMNUP_SYSTEM" },
2579         { DMNUP_ONEUP, "DMNUP_ONEUP" },
2580 { 0, NULL }
2581 };
2582 const value_string spoolss_spoolss_DeviceModeICMMethod_vals[] = {
2583         { DMICMMETHOD_NONE, "DMICMMETHOD_NONE" },
2584         { DMICMMETHOD_SYSTEM, "DMICMMETHOD_SYSTEM" },
2585         { DMICMMETHOD_DRIVER, "DMICMMETHOD_DRIVER" },
2586         { DMICMMETHOD_DEVICE, "DMICMMETHOD_DEVICE" },
2587 { 0, NULL }
2588 };
2589 const value_string spoolss_spoolss_DeviceModeICMIntent_vals[] = {
2590         { DMICM_SATURATE, "DMICM_SATURATE" },
2591         { DMICM_CONTRAST, "DMICM_CONTRAST" },
2592         { DMICM_COLORIMETRIC, "DMICM_COLORIMETRIC" },
2593         { DMICM_ABS_COLORIMETRIC, "DMICM_ABS_COLORIMETRIC" },
2594 { 0, NULL }
2595 };
2596 const value_string spoolss_spoolss_DeviceModeMediaType_vals[] = {
2597         { DMMEDIA_STANDARD, "DMMEDIA_STANDARD" },
2598         { DMMEDIA_TRANSPARENCY, "DMMEDIA_TRANSPARENCY" },
2599         { DMMEDIA_GLOSSY, "DMMEDIA_GLOSSY" },
2600 { 0, NULL }
2601 };
2602 const value_string spoolss_spoolss_DeviceModeDitherType_vals[] = {
2603         { DMDITHER_NONE, "DMDITHER_NONE" },
2604         { DMDITHER_COARSE, "DMDITHER_COARSE" },
2605         { DMDITHER_FINE, "DMDITHER_FINE" },
2606         { DMDITHER_LINEART, "DMDITHER_LINEART" },
2607         { DMDITHER_ERRORDIFFUSION, "DMDITHER_ERRORDIFFUSION" },
2608         { DMDITHER_RESERVED6, "DMDITHER_RESERVED6" },
2609         { DMDITHER_RESERVED7, "DMDITHER_RESERVED7" },
2610         { DMDITHER_RESERVED8, "DMDITHER_RESERVED8" },
2611         { DMDITHER_RESERVED9, "DMDITHER_RESERVED9" },
2612         { DMDITHER_GRAYSCALE, "DMDITHER_GRAYSCALE" },
2613 { 0, NULL }
2614 };
2615 static int spoolss_dissect_element_DeviceMode_devicename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2616 static int spoolss_dissect_element_DeviceMode_devicename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2617 static int spoolss_dissect_element_DeviceMode_specversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2618 static int spoolss_dissect_element_DeviceMode_driverversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2619 static int spoolss_dissect_element_DeviceMode_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2620 static int spoolss_dissect_element_DeviceMode___driverextra_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2621 static int spoolss_dissect_element_DeviceMode_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2622 static int spoolss_dissect_element_DeviceMode_orientation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2623 static int spoolss_dissect_element_DeviceMode_papersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2624 static int spoolss_dissect_element_DeviceMode_paperlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2625 static int spoolss_dissect_element_DeviceMode_paperwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2626 static int spoolss_dissect_element_DeviceMode_scale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2627 static int spoolss_dissect_element_DeviceMode_copies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2628 static int spoolss_dissect_element_DeviceMode_defaultsource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2629 static int spoolss_dissect_element_DeviceMode_printquality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2630 static int spoolss_dissect_element_DeviceMode_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2631 static int spoolss_dissect_element_DeviceMode_duplex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2632 static int spoolss_dissect_element_DeviceMode_yresolution(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2633 static int spoolss_dissect_element_DeviceMode_ttoption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2634 static int spoolss_dissect_element_DeviceMode_collate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2635 static int spoolss_dissect_element_DeviceMode_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2636 static int spoolss_dissect_element_DeviceMode_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2637 static int spoolss_dissect_element_DeviceMode_logpixels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2638 static int spoolss_dissect_element_DeviceMode_bitsperpel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2639 static int spoolss_dissect_element_DeviceMode_pelswidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2640 static int spoolss_dissect_element_DeviceMode_pelsheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2641 static int spoolss_dissect_element_DeviceMode_displayflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2642 static int spoolss_dissect_element_DeviceMode_displayfrequency(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2643 static int spoolss_dissect_element_DeviceMode_icmmethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2644 static int spoolss_dissect_element_DeviceMode_icmintent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2645 static int spoolss_dissect_element_DeviceMode_mediatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2646 static int spoolss_dissect_element_DeviceMode_dithertype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2647 static int spoolss_dissect_element_DeviceMode_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2648 static int spoolss_dissect_element_DeviceMode_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2649 static int spoolss_dissect_element_DeviceMode_panningwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2650 static int spoolss_dissect_element_DeviceMode_panningheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2651 static int spoolss_dissect_element_DeviceMode_driverextra_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2652 static int spoolss_dissect_element_DeviceMode_driverextra_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2653 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT_tfs = {
2654    "PRINTER_ENUM_DEFAULT is SET",
2655    "PRINTER_ENUM_DEFAULT is NOT SET",
2656 };
2657 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL_tfs = {
2658    "PRINTER_ENUM_LOCAL is SET",
2659    "PRINTER_ENUM_LOCAL is NOT SET",
2660 };
2661 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS_tfs = {
2662    "PRINTER_ENUM_CONNECTIONS is SET",
2663    "PRINTER_ENUM_CONNECTIONS is NOT SET",
2664 };
2665 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE_tfs = {
2666    "PRINTER_ENUM_FAVORITE is SET",
2667    "PRINTER_ENUM_FAVORITE is NOT SET",
2668 };
2669 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME_tfs = {
2670    "PRINTER_ENUM_NAME is SET",
2671    "PRINTER_ENUM_NAME is NOT SET",
2672 };
2673 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE_tfs = {
2674    "PRINTER_ENUM_REMOTE is SET",
2675    "PRINTER_ENUM_REMOTE is NOT SET",
2676 };
2677 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED_tfs = {
2678    "PRINTER_ENUM_SHARED is SET",
2679    "PRINTER_ENUM_SHARED is NOT SET",
2680 };
2681 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK_tfs = {
2682    "PRINTER_ENUM_NETWORK is SET",
2683    "PRINTER_ENUM_NETWORK is NOT SET",
2684 };
2685 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND_tfs = {
2686    "PRINTER_ENUM_EXPAND is SET",
2687    "PRINTER_ENUM_EXPAND is NOT SET",
2688 };
2689 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER_tfs = {
2690    "PRINTER_ENUM_CONTAINER is SET",
2691    "PRINTER_ENUM_CONTAINER is NOT SET",
2692 };
2693 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1_tfs = {
2694    "PRINTER_ENUM_ICON1 is SET",
2695    "PRINTER_ENUM_ICON1 is NOT SET",
2696 };
2697 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2_tfs = {
2698    "PRINTER_ENUM_ICON2 is SET",
2699    "PRINTER_ENUM_ICON2 is NOT SET",
2700 };
2701 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3_tfs = {
2702    "PRINTER_ENUM_ICON3 is SET",
2703    "PRINTER_ENUM_ICON3 is NOT SET",
2704 };
2705 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4_tfs = {
2706    "PRINTER_ENUM_ICON4 is SET",
2707    "PRINTER_ENUM_ICON4 is NOT SET",
2708 };
2709 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5_tfs = {
2710    "PRINTER_ENUM_ICON5 is SET",
2711    "PRINTER_ENUM_ICON5 is NOT SET",
2712 };
2713 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6_tfs = {
2714    "PRINTER_ENUM_ICON6 is SET",
2715    "PRINTER_ENUM_ICON6 is NOT SET",
2716 };
2717 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7_tfs = {
2718    "PRINTER_ENUM_ICON7 is SET",
2719    "PRINTER_ENUM_ICON7 is NOT SET",
2720 };
2721 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8_tfs = {
2722    "PRINTER_ENUM_ICON8 is SET",
2723    "PRINTER_ENUM_ICON8 is NOT SET",
2724 };
2725 static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE_tfs = {
2726    "PRINTER_ENUM_HIDE is SET",
2727    "PRINTER_ENUM_HIDE is NOT SET",
2728 };
2729 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED_tfs = {
2730    "PRINTER_ATTRIBUTE_QUEUED is SET",
2731    "PRINTER_ATTRIBUTE_QUEUED is NOT SET",
2732 };
2733 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT_tfs = {
2734    "PRINTER_ATTRIBUTE_DIRECT is SET",
2735    "PRINTER_ATTRIBUTE_DIRECT is NOT SET",
2736 };
2737 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT_tfs = {
2738    "PRINTER_ATTRIBUTE_DEFAULT is SET",
2739    "PRINTER_ATTRIBUTE_DEFAULT is NOT SET",
2740 };
2741 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED_tfs = {
2742    "PRINTER_ATTRIBUTE_SHARED is SET",
2743    "PRINTER_ATTRIBUTE_SHARED is NOT SET",
2744 };
2745 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK_tfs = {
2746    "PRINTER_ATTRIBUTE_NETWORK is SET",
2747    "PRINTER_ATTRIBUTE_NETWORK is NOT SET",
2748 };
2749 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN_tfs = {
2750    "PRINTER_ATTRIBUTE_HIDDEN is SET",
2751    "PRINTER_ATTRIBUTE_HIDDEN is NOT SET",
2752 };
2753 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL_tfs = {
2754    "PRINTER_ATTRIBUTE_LOCAL is SET",
2755    "PRINTER_ATTRIBUTE_LOCAL is NOT SET",
2756 };
2757 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ_tfs = {
2758    "PRINTER_ATTRIBUTE_ENABLE_DEVQ is SET",
2759    "PRINTER_ATTRIBUTE_ENABLE_DEVQ is NOT SET",
2760 };
2761 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS_tfs = {
2762    "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS is SET",
2763    "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS is NOT SET",
2764 };
2765 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST_tfs = {
2766    "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST is SET",
2767    "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST is NOT SET",
2768 };
2769 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE_tfs = {
2770    "PRINTER_ATTRIBUTE_WORK_OFFLINE is SET",
2771    "PRINTER_ATTRIBUTE_WORK_OFFLINE is NOT SET",
2772 };
2773 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI_tfs = {
2774    "PRINTER_ATTRIBUTE_ENABLE_BIDI is SET",
2775    "PRINTER_ATTRIBUTE_ENABLE_BIDI is NOT SET",
2776 };
2777 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY_tfs = {
2778    "PRINTER_ATTRIBUTE_RAW_ONLY is SET",
2779    "PRINTER_ATTRIBUTE_RAW_ONLY is NOT SET",
2780 };
2781 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED_tfs = {
2782    "PRINTER_ATTRIBUTE_PUBLISHED is SET",
2783    "PRINTER_ATTRIBUTE_PUBLISHED is NOT SET",
2784 };
2785 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX_tfs = {
2786    "PRINTER_ATTRIBUTE_FAX is SET",
2787    "PRINTER_ATTRIBUTE_FAX is NOT SET",
2788 };
2789 static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS_tfs = {
2790    "PRINTER_ATTRIBUTE_TS is SET",
2791    "PRINTER_ATTRIBUTE_TS is NOT SET",
2792 };
2793 static int spoolss_dissect_element_PrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2794 static int spoolss_dissect_element_PrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2795 static int spoolss_dissect_element_PrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2796 static int spoolss_dissect_element_PrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2797 static int spoolss_dissect_element_PrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2798 static int spoolss_dissect_element_PrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2799 static int spoolss_dissect_element_PrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2800 static int spoolss_dissect_element_PrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2801 static int spoolss_dissect_element_PrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2802 static int spoolss_dissect_element_PrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2803 static int spoolss_dissect_element_PrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2804 static int spoolss_dissect_element_PrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2805 static int spoolss_dissect_element_PrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2806 static int spoolss_dissect_element_PrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2807 static int spoolss_dissect_element_PrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2808 static int spoolss_dissect_element_PrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2809 static int spoolss_dissect_element_PrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2810 static int spoolss_dissect_element_PrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2811 static int spoolss_dissect_element_PrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2812 static int spoolss_dissect_element_PrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2813 static int spoolss_dissect_element_PrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2814 static int spoolss_dissect_element_PrinterInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2815 static int spoolss_dissect_element_PrinterInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2816 static int spoolss_dissect_element_PrinterInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2817 static int spoolss_dissect_element_PrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2818 static int spoolss_dissect_element_PrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2819 static int spoolss_dissect_element_PrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2820 static int spoolss_dissect_element_PrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2821 static int spoolss_dissect_element_PrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2822 static int spoolss_dissect_element_PrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2823 static int spoolss_dissect_element_PrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2824 static int spoolss_dissect_element_PrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2825 static int spoolss_dissect_element_PrinterInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2826 static int spoolss_dissect_element_PrinterInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2827 static int spoolss_dissect_element_PrinterInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2828 static int spoolss_dissect_element_PrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2829 static int spoolss_dissect_element_PrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2830 static int spoolss_dissect_element_PrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2831 static int spoolss_dissect_element_PrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2832 static int spoolss_dissect_element_PrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2833 static int spoolss_dissect_element_PrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2834 static int spoolss_dissect_element_PrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2835 static int spoolss_dissect_element_PrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2836 static int spoolss_dissect_element_PrinterInfo3_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2837 static int spoolss_dissect_element_PrinterInfo3_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2838 static int spoolss_dissect_element_PrinterInfo3_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2839 static int spoolss_dissect_element_PrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2840 static int spoolss_dissect_element_PrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2841 static int spoolss_dissect_element_PrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2842 static int spoolss_dissect_element_PrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2843 static int spoolss_dissect_element_PrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2844 static int spoolss_dissect_element_PrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2845 static int spoolss_dissect_element_PrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2846 static int spoolss_dissect_element_PrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2847 static int spoolss_dissect_element_PrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2848 static int spoolss_dissect_element_PrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2849 static int spoolss_dissect_element_PrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2850 static int spoolss_dissect_element_PrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2851 static int spoolss_dissect_element_PrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2852 static const true_false_string spoolss_DsPrintAction_DSPRINT_PUBLISH_tfs = {
2853    "DSPRINT_PUBLISH is SET",
2854    "DSPRINT_PUBLISH is NOT SET",
2855 };
2856 static const true_false_string spoolss_DsPrintAction_DSPRINT_UPDATE_tfs = {
2857    "DSPRINT_UPDATE is SET",
2858    "DSPRINT_UPDATE is NOT SET",
2859 };
2860 static const true_false_string spoolss_DsPrintAction_DSPRINT_UNPUBLISH_tfs = {
2861    "DSPRINT_UNPUBLISH is SET",
2862    "DSPRINT_UNPUBLISH is NOT SET",
2863 };
2864 static const true_false_string spoolss_DsPrintAction_DSPRINT_REPUBLISH_tfs = {
2865    "DSPRINT_REPUBLISH is SET",
2866    "DSPRINT_REPUBLISH is NOT SET",
2867 };
2868 static const true_false_string spoolss_DsPrintAction_DSPRINT_PENDING_tfs = {
2869    "DSPRINT_PENDING is SET",
2870    "DSPRINT_PENDING is NOT SET",
2871 };
2872 static int spoolss_dissect_element_PrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2873 static int spoolss_dissect_element_PrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2874 static int spoolss_dissect_element_PrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2875 static int spoolss_dissect_element_DeviceModeInfo_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2876 static int spoolss_dissect_element_DeviceModeInfo_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2877 static int spoolss_dissect_element_DeviceModeInfo_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2878 static int spoolss_dissect_element_PrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2879 static int spoolss_dissect_element_PrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2880 static int spoolss_dissect_element_PrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2881 static int spoolss_dissect_element_PrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2882 static int spoolss_dissect_element_PrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2883 static int spoolss_dissect_element_PrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2884 static int spoolss_dissect_element_PrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2885 static int spoolss_dissect_element_PrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2886 static int spoolss_dissect_element_PrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2887 static int spoolss_dissect_element_PrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2888 static int spoolss_dissect_element_DevmodeContainer__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2889 static int spoolss_dissect_element_DevmodeContainer_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2890 static int spoolss_dissect_element_DevmodeContainer_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2891 static int spoolss_dissect_element_DevmodeContainer_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2892 static int spoolss_dissect_element_JobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2893 static int spoolss_dissect_element_JobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2894 static int spoolss_dissect_element_JobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2895 static int spoolss_dissect_element_JobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2896 static int spoolss_dissect_element_JobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2897 static int spoolss_dissect_element_JobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2898 static int spoolss_dissect_element_JobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2899 static int spoolss_dissect_element_JobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2900 static int spoolss_dissect_element_JobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2901 static int spoolss_dissect_element_JobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2902 static int spoolss_dissect_element_JobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2903 static int spoolss_dissect_element_JobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2904 static int spoolss_dissect_element_JobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2905 static int spoolss_dissect_element_JobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2906 static int spoolss_dissect_element_JobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2907 static int spoolss_dissect_element_JobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2908 static int spoolss_dissect_element_JobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2909 static int spoolss_dissect_element_JobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2910 static int spoolss_dissect_element_JobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2911 static int spoolss_dissect_element_JobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2912 static int spoolss_dissect_element_JobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2913 static int spoolss_dissect_element_JobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2914 static int spoolss_dissect_element_JobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2915 static int spoolss_dissect_element_JobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2916 static int spoolss_dissect_element_JobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2917 static int spoolss_dissect_element_JobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2918 static int spoolss_dissect_element_JobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2919 static int spoolss_dissect_element_JobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2920 static int spoolss_dissect_element_JobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2921 static int spoolss_dissect_element_JobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2922 static int spoolss_dissect_element_JobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2923 static int spoolss_dissect_element_JobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2924 static int spoolss_dissect_element_JobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2925 static int spoolss_dissect_element_JobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2926 static int spoolss_dissect_element_JobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2927 static int spoolss_dissect_element_JobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2928 static int spoolss_dissect_element_JobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2929 static int spoolss_dissect_element_JobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2930 static int spoolss_dissect_element_JobInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2931 static int spoolss_dissect_element_JobInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2932 static int spoolss_dissect_element_JobInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2933 static int spoolss_dissect_element_JobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2934 static int spoolss_dissect_element_JobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2935 static int spoolss_dissect_element_JobInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2936 static int spoolss_dissect_element_JobInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2937 static int spoolss_dissect_element_JobInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2938 static int spoolss_dissect_element_JobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2939 static int spoolss_dissect_element_JobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2940 static int spoolss_dissect_element_JobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2941 static int spoolss_dissect_element_JobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2942 static int spoolss_dissect_element_JobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2943 static int spoolss_dissect_element_JobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2944 static int spoolss_dissect_element_JobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2945 static int spoolss_dissect_element_JobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2946 static int spoolss_dissect_element_JobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2947 static int spoolss_dissect_element_JobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2948 static int spoolss_dissect_element_JobInfo3_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2949 static int spoolss_dissect_element_JobInfo3_next_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2950 static int spoolss_dissect_element_JobInfo3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2951 static int spoolss_dissect_element_JobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2952 static int spoolss_dissect_element_JobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2953 static int spoolss_dissect_element_JobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2954 static int spoolss_dissect_element_JobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2955 static int spoolss_dissect_element_JobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2956 static int spoolss_dissect_element_JobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2957 static int spoolss_dissect_element_JobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2958 static int spoolss_dissect_element_JobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2959 static int spoolss_dissect_element_JobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2960 static int spoolss_dissect_element_JobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2961 static int spoolss_dissect_element_JobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2962 static int spoolss_dissect_element_JobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2963 static int spoolss_dissect_element_JobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2964 static int spoolss_dissect_element_JobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2965 static int spoolss_dissect_element_JobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2966 static int spoolss_dissect_element_JobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2967 static int spoolss_dissect_element_JobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2968 static int spoolss_dissect_element_JobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2969 static int spoolss_dissect_element_JobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2970 static int spoolss_dissect_element_JobInfo4_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2971 static int spoolss_dissect_element_JobInfo4_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2972 static int spoolss_dissect_element_JobInfo4_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2973 static int spoolss_dissect_element_JobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2974 static int spoolss_dissect_element_JobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2975 static int spoolss_dissect_element_JobInfo4_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2976 static int spoolss_dissect_element_JobInfo4_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2977 static int spoolss_dissect_element_JobInfo4_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2978 static int spoolss_dissect_element_JobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2979 static int spoolss_dissect_element_JobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2980 static int spoolss_dissect_element_JobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2981 static int spoolss_dissect_element_JobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2982 static int spoolss_dissect_element_JobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2983 static int spoolss_dissect_element_JobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2984 static int spoolss_dissect_element_JobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2985 static int spoolss_dissect_element_JobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2986 static int spoolss_dissect_element_JobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2987 static int spoolss_dissect_element_JobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2988 static int spoolss_dissect_element_JobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2989 static int spoolss_dissect_element_JobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2990 static int spoolss_dissect_element_JobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2991 static int spoolss_dissect_element_JobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2992 static int spoolss_dissect_element_JobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2993 static int spoolss_dissect_element_SetJobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2994 static int spoolss_dissect_element_SetJobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2995 static int spoolss_dissect_element_SetJobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2996 static int spoolss_dissect_element_SetJobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2997 static int spoolss_dissect_element_SetJobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2998 static int spoolss_dissect_element_SetJobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
2999 static int spoolss_dissect_element_SetJobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3000 static int spoolss_dissect_element_SetJobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3001 static int spoolss_dissect_element_SetJobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3002 static int spoolss_dissect_element_SetJobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3003 static int spoolss_dissect_element_SetJobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3004 static int spoolss_dissect_element_SetJobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3005 static int spoolss_dissect_element_SetJobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3006 static int spoolss_dissect_element_SetJobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3007 static int spoolss_dissect_element_SetJobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3008 static int spoolss_dissect_element_SetJobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3009 static int spoolss_dissect_element_SetJobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3010 static int spoolss_dissect_element_SetJobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3011 static int spoolss_dissect_element_SetJobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3012 static int spoolss_dissect_element_SetJobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3013 static int spoolss_dissect_element_SetJobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3014 static int spoolss_dissect_element_SetJobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3015 static int spoolss_dissect_element_SetJobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3016 static int spoolss_dissect_element_SetJobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3017 static int spoolss_dissect_element_SetJobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3018 static int spoolss_dissect_element_SetJobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3019 static int spoolss_dissect_element_SetJobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3020 static int spoolss_dissect_element_SetJobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3021 static int spoolss_dissect_element_SetJobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3022 static int spoolss_dissect_element_SetJobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3023 static int spoolss_dissect_element_SetJobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3024 static int spoolss_dissect_element_SetJobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3025 static int spoolss_dissect_element_SetJobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3026 static int spoolss_dissect_element_SetJobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3027 static int spoolss_dissect_element_SetJobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3028 static int spoolss_dissect_element_SetJobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3029 static int spoolss_dissect_element_SetJobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3030 static int spoolss_dissect_element_SetJobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3031 static int spoolss_dissect_element_SetJobInfo2__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3032 static int spoolss_dissect_element_SetJobInfo2__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3033 static int spoolss_dissect_element_SetJobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3034 static int spoolss_dissect_element_SetJobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3035 static int spoolss_dissect_element_SetJobInfo2__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3036 static int spoolss_dissect_element_SetJobInfo2__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3037 static int spoolss_dissect_element_SetJobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3038 static int spoolss_dissect_element_SetJobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3039 static int spoolss_dissect_element_SetJobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3040 static int spoolss_dissect_element_SetJobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3041 static int spoolss_dissect_element_SetJobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3042 static int spoolss_dissect_element_SetJobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3043 static int spoolss_dissect_element_SetJobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3044 static int spoolss_dissect_element_SetJobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3045 static int spoolss_dissect_element_SetJobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3046 static int spoolss_dissect_element_SetJobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3047 static int spoolss_dissect_element_SetJobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3048 static int spoolss_dissect_element_SetJobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3049 static int spoolss_dissect_element_SetJobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3050 static int spoolss_dissect_element_SetJobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3051 static int spoolss_dissect_element_SetJobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3052 static int spoolss_dissect_element_SetJobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3053 static int spoolss_dissect_element_SetJobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3054 static int spoolss_dissect_element_SetJobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3055 static int spoolss_dissect_element_SetJobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3056 static int spoolss_dissect_element_SetJobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3057 static int spoolss_dissect_element_SetJobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3058 static int spoolss_dissect_element_SetJobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3059 static int spoolss_dissect_element_SetJobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3060 static int spoolss_dissect_element_SetJobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3061 static int spoolss_dissect_element_SetJobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3062 static int spoolss_dissect_element_SetJobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3063 static int spoolss_dissect_element_SetJobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3064 static int spoolss_dissect_element_SetJobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3065 static int spoolss_dissect_element_SetJobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3066 static int spoolss_dissect_element_SetJobInfo4__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3067 static int spoolss_dissect_element_SetJobInfo4__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3068 static int spoolss_dissect_element_SetJobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3069 static int spoolss_dissect_element_SetJobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3070 static int spoolss_dissect_element_SetJobInfo4__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3071 static int spoolss_dissect_element_SetJobInfo4__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3072 static int spoolss_dissect_element_SetJobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3073 static int spoolss_dissect_element_SetJobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3074 static int spoolss_dissect_element_SetJobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3075 static int spoolss_dissect_element_SetJobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3076 static int spoolss_dissect_element_SetJobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3077 static int spoolss_dissect_element_SetJobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3078 static int spoolss_dissect_element_SetJobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3079 static int spoolss_dissect_element_SetJobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3080 static int spoolss_dissect_element_SetJobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3081 static int spoolss_dissect_element_SetJobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3082 static int spoolss_dissect_element_SetJobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3083 static int spoolss_dissect_element_SetJobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3084 static int spoolss_dissect_element_SetJobInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3085 static int spoolss_dissect_element_SetJobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3086 static int spoolss_dissect_element_SetJobInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3087 static int spoolss_dissect_element_SetJobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3088 static int spoolss_dissect_element_SetJobInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3089 static int spoolss_dissect_element_SetJobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3090 static int spoolss_dissect_element_SetJobInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3091 static int spoolss_dissect_element_JobInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3092 static int spoolss_dissect_element_JobInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3093 const value_string spoolss_spoolss_JobControl_vals[] = {
3094         { SPOOLSS_JOB_CONTROL_PAUSE, "SPOOLSS_JOB_CONTROL_PAUSE" },
3095         { SPOOLSS_JOB_CONTROL_RESUME, "SPOOLSS_JOB_CONTROL_RESUME" },
3096         { SPOOLSS_JOB_CONTROL_CANCEL, "SPOOLSS_JOB_CONTROL_CANCEL" },
3097         { SPOOLSS_JOB_CONTROL_RESTART, "SPOOLSS_JOB_CONTROL_RESTART" },
3098         { SPOOLSS_JOB_CONTROL_DELETE, "SPOOLSS_JOB_CONTROL_DELETE" },
3099         { SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER, "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER" },
3100         { SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED, "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED" },
3101         { SPOOLSS_JOB_CONTROL_RETAIN, "SPOOLSS_JOB_CONTROL_RETAIN" },
3102         { SPOOLSS_JOB_CONTROL_RELEASE, "SPOOLSS_JOB_CONTROL_RELEASE" },
3103 { 0, NULL }
3104 };
3105 const value_string spoolss_spoolss_PrinterControl_vals[] = {
3106         { SPOOLSS_PRINTER_CONTROL_UNPAUSE, "SPOOLSS_PRINTER_CONTROL_UNPAUSE" },
3107         { SPOOLSS_PRINTER_CONTROL_PAUSE, "SPOOLSS_PRINTER_CONTROL_PAUSE" },
3108         { SPOOLSS_PRINTER_CONTROL_RESUME, "SPOOLSS_PRINTER_CONTROL_RESUME" },
3109         { SPOOLSS_PRINTER_CONTROL_PURGE, "SPOOLSS_PRINTER_CONTROL_PURGE" },
3110         { SPOOLSS_PRINTER_CONTROL_SET_STATUS, "SPOOLSS_PRINTER_CONTROL_SET_STATUS" },
3111 { 0, NULL }
3112 };
3113 static int spoolss_dissect_element_SetPrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3114 static int spoolss_dissect_element_SetPrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3115 static int spoolss_dissect_element_SetPrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3116 static int spoolss_dissect_element_SetPrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3117 static int spoolss_dissect_element_SetPrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3118 static int spoolss_dissect_element_SetPrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3119 static int spoolss_dissect_element_SetPrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3120 static int spoolss_dissect_element_SetPrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3121 static int spoolss_dissect_element_SetPrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3122 static int spoolss_dissect_element_SetPrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3123 static int spoolss_dissect_element_SetPrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3124 static int spoolss_dissect_element_SetPrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3125 static int spoolss_dissect_element_SetPrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3126 static int spoolss_dissect_element_SetPrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3127 static int spoolss_dissect_element_SetPrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3128 static int spoolss_dissect_element_SetPrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3129 static int spoolss_dissect_element_SetPrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3130 static int spoolss_dissect_element_SetPrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3131 static int spoolss_dissect_element_SetPrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3132 static int spoolss_dissect_element_SetPrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3133 static int spoolss_dissect_element_SetPrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3134 static int spoolss_dissect_element_SetPrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3135 static int spoolss_dissect_element_SetPrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3136 static int spoolss_dissect_element_SetPrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3137 static int spoolss_dissect_element_SetPrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3138 static int spoolss_dissect_element_SetPrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3139 static int spoolss_dissect_element_SetPrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3140 static int spoolss_dissect_element_SetPrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3141 static int spoolss_dissect_element_SetPrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3142 static int spoolss_dissect_element_SetPrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3143 static int spoolss_dissect_element_SetPrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3144 static int spoolss_dissect_element_SetPrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3145 static int spoolss_dissect_element_SetPrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3146 static int spoolss_dissect_element_SetPrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3147 static int spoolss_dissect_element_SetPrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3148 static int spoolss_dissect_element_SetPrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3149 static int spoolss_dissect_element_SetPrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3150 static int spoolss_dissect_element_SetPrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3151 static int spoolss_dissect_element_SetPrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3152 static int spoolss_dissect_element_SetPrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3153 static int spoolss_dissect_element_SetPrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3154 static int spoolss_dissect_element_SetPrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3155 static int spoolss_dissect_element_SetPrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3156 static int spoolss_dissect_element_SetPrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3157 static int spoolss_dissect_element_SetPrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3158 static int spoolss_dissect_element_SetPrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3159 static int spoolss_dissect_element_SetPrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3160 static int spoolss_dissect_element_SetPrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3161 static int spoolss_dissect_element_SetPrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3162 static int spoolss_dissect_element_SetPrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3163 static int spoolss_dissect_element_SetPrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3164 static int spoolss_dissect_element_SetPrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3165 static int spoolss_dissect_element_SetPrinterInfo2_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3166 static int spoolss_dissect_element_SetPrinterInfo2_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3167 static int spoolss_dissect_element_SetPrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3168 static int spoolss_dissect_element_SetPrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3169 static int spoolss_dissect_element_SetPrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3170 static int spoolss_dissect_element_SetPrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3171 static int spoolss_dissect_element_SetPrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3172 static int spoolss_dissect_element_SetPrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3173 static int spoolss_dissect_element_SetPrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3174 static int spoolss_dissect_element_SetPrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3175 static int spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3176 static int spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3177 static int spoolss_dissect_element_SetPrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3178 static int spoolss_dissect_element_SetPrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3179 static int spoolss_dissect_element_SetPrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3180 static int spoolss_dissect_element_SetPrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3181 static int spoolss_dissect_element_SetPrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3182 static int spoolss_dissect_element_SetPrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3183 static int spoolss_dissect_element_SetPrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3184 static int spoolss_dissect_element_SetPrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3185 static int spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3186 static int spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3187 static int spoolss_dissect_element_SetPrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3188 static int spoolss_dissect_element_SetPrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3189 static int spoolss_dissect_element_SetPrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3190 static int spoolss_dissect_element_SetPrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3191 static int spoolss_dissect_element_SetPrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3192 static int spoolss_dissect_element_SetPrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3193 static int spoolss_dissect_element_SetPrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3194 static int spoolss_dissect_element_SetPrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3195 static int spoolss_dissect_element_SetPrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3196 static int spoolss_dissect_element_SetPrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3197 static int spoolss_dissect_element_SetPrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3198 static int spoolss_dissect_element_SetPrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3199 static int spoolss_dissect_element_SetPrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3200 static int spoolss_dissect_element_SetPrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3201 static int spoolss_dissect_element_SetPrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3202 static int spoolss_dissect_element_SetPrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3203 static int spoolss_dissect_element_SetPrinterInfo8_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3204 static int spoolss_dissect_element_SetPrinterInfo8_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3205 static int spoolss_dissect_element_SetPrinterInfo9_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3206 static int spoolss_dissect_element_SetPrinterInfo9_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3207 static int spoolss_dissect_element_SetPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3208 static int spoolss_dissect_element_SetPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3209 static int spoolss_dissect_element_SetPrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3210 static int spoolss_dissect_element_SetPrinterInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3211 static int spoolss_dissect_element_SetPrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3212 static int spoolss_dissect_element_SetPrinterInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3213 static int spoolss_dissect_element_SetPrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3214 static int spoolss_dissect_element_SetPrinterInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3215 static int spoolss_dissect_element_SetPrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3216 static int spoolss_dissect_element_SetPrinterInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3217 static int spoolss_dissect_element_SetPrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3218 static int spoolss_dissect_element_SetPrinterInfo_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3219 static int spoolss_dissect_element_SetPrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3220 static int spoolss_dissect_element_SetPrinterInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3221 static int spoolss_dissect_element_SetPrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3222 static int spoolss_dissect_element_SetPrinterInfo_info7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3223 static int spoolss_dissect_element_SetPrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3224 static int spoolss_dissect_element_SetPrinterInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3225 static int spoolss_dissect_element_SetPrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3226 static int spoolss_dissect_element_SetPrinterInfo_info9_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3227 static int spoolss_dissect_element_SetPrinterInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3228 static int spoolss_dissect_element_SetPrinterInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3229 static int spoolss_dissect_element_StringArray__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3230 static int spoolss_dissect_element_StringArray_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3231 static int spoolss_dissect_element_AddDriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3232 static int spoolss_dissect_element_AddDriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3233 const value_string spoolss_spoolss_DriverOSVersion_vals[] = {
3234         { SPOOLSS_DRIVER_VERSION_9X, "SPOOLSS_DRIVER_VERSION_9X" },
3235         { SPOOLSS_DRIVER_VERSION_NT35, "SPOOLSS_DRIVER_VERSION_NT35" },
3236         { SPOOLSS_DRIVER_VERSION_NT4, "SPOOLSS_DRIVER_VERSION_NT4" },
3237         { SPOOLSS_DRIVER_VERSION_200X, "SPOOLSS_DRIVER_VERSION_200X" },
3238         { SPOOLSS_DRIVER_VERSION_2012, "SPOOLSS_DRIVER_VERSION_2012" },
3239 { 0, NULL }
3240 };
3241 static int spoolss_dissect_element_AddDriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3242 static int spoolss_dissect_element_AddDriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3243 static int spoolss_dissect_element_AddDriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3244 static int spoolss_dissect_element_AddDriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3245 static int spoolss_dissect_element_AddDriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3246 static int spoolss_dissect_element_AddDriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3247 static int spoolss_dissect_element_AddDriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3248 static int spoolss_dissect_element_AddDriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3249 static int spoolss_dissect_element_AddDriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3250 static int spoolss_dissect_element_AddDriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3251 static int spoolss_dissect_element_AddDriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3252 static int spoolss_dissect_element_AddDriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3253 static int spoolss_dissect_element_AddDriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3254 static int spoolss_dissect_element_AddDriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3255 static int spoolss_dissect_element_AddDriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3256 static int spoolss_dissect_element_AddDriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3257 static int spoolss_dissect_element_AddDriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3258 static int spoolss_dissect_element_AddDriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3259 static int spoolss_dissect_element_AddDriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3260 static int spoolss_dissect_element_AddDriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3261 static int spoolss_dissect_element_AddDriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3262 static int spoolss_dissect_element_AddDriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3263 static int spoolss_dissect_element_AddDriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3264 static int spoolss_dissect_element_AddDriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3265 static int spoolss_dissect_element_AddDriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3266 static int spoolss_dissect_element_AddDriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3267 static int spoolss_dissect_element_AddDriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3268 static int spoolss_dissect_element_AddDriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3269 static int spoolss_dissect_element_AddDriverInfo3__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3270 static int spoolss_dissect_element_AddDriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3271 static int spoolss_dissect_element_AddDriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3272 static int spoolss_dissect_element_AddDriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3273 static int spoolss_dissect_element_AddDriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3274 static int spoolss_dissect_element_AddDriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3275 static int spoolss_dissect_element_AddDriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3276 static int spoolss_dissect_element_AddDriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3277 static int spoolss_dissect_element_AddDriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3278 static int spoolss_dissect_element_AddDriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3279 static int spoolss_dissect_element_AddDriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3280 static int spoolss_dissect_element_AddDriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3281 static int spoolss_dissect_element_AddDriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3282 static int spoolss_dissect_element_AddDriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3283 static int spoolss_dissect_element_AddDriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3284 static int spoolss_dissect_element_AddDriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3285 static int spoolss_dissect_element_AddDriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3286 static int spoolss_dissect_element_AddDriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3287 static int spoolss_dissect_element_AddDriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3288 static int spoolss_dissect_element_AddDriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3289 static int spoolss_dissect_element_AddDriverInfo4__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3290 static int spoolss_dissect_element_AddDriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3291 static int spoolss_dissect_element_AddDriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3292 static int spoolss_dissect_element_AddDriverInfo4__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3293 static int spoolss_dissect_element_AddDriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3294 static int spoolss_dissect_element_AddDriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3295 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE_tfs = {
3296    "PRINTER_DRIVER_PACKAGE_AWARE is SET",
3297    "PRINTER_DRIVER_PACKAGE_AWARE is NOT SET",
3298 };
3299 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_XPS_tfs = {
3300    "PRINTER_DRIVER_XPS is SET",
3301    "PRINTER_DRIVER_XPS is NOT SET",
3302 };
3303 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED_tfs = {
3304    "PRINTER_DRIVER_SANDBOX_ENABLED is SET",
3305    "PRINTER_DRIVER_SANDBOX_ENABLED is NOT SET",
3306 };
3307 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CLASS_tfs = {
3308    "PRINTER_DRIVER_CLASS is SET",
3309    "PRINTER_DRIVER_CLASS is NOT SET",
3310 };
3311 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED_tfs = {
3312    "PRINTER_DRIVER_DERIVED is SET",
3313    "PRINTER_DRIVER_DERIVED is NOT SET",
3314 };
3315 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE_tfs = {
3316    "PRINTER_DRIVER_NOT_SHAREABLE is SET",
3317    "PRINTER_DRIVER_NOT_SHAREABLE is NOT SET",
3318 };
3319 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX_tfs = {
3320    "PRINTER_DRIVER_CATEGORY_FAX is SET",
3321    "PRINTER_DRIVER_CATEGORY_FAX is NOT SET",
3322 };
3323 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE_tfs = {
3324    "PRINTER_DRIVER_CATEGORY_FILE is SET",
3325    "PRINTER_DRIVER_CATEGORY_FILE is NOT SET",
3326 };
3327 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL_tfs = {
3328    "PRINTER_DRIVER_CATEGORY_VIRTUAL is SET",
3329    "PRINTER_DRIVER_CATEGORY_VIRTUAL is NOT SET",
3330 };
3331 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE_tfs = {
3332    "PRINTER_DRIVER_CATEGORY_SERVICE is SET",
3333    "PRINTER_DRIVER_CATEGORY_SERVICE is NOT SET",
3334 };
3335 static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED_tfs = {
3336    "PRINTER_DRIVER_SOFT_RESET_REQUIRED is SET",
3337    "PRINTER_DRIVER_SOFT_RESET_REQUIRED is NOT SET",
3338 };
3339 static int spoolss_dissect_element_AddDriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3340 static int spoolss_dissect_element_AddDriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3341 static int spoolss_dissect_element_AddDriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3342 static int spoolss_dissect_element_AddDriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3343 static int spoolss_dissect_element_AddDriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3344 static int spoolss_dissect_element_AddDriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3345 static int spoolss_dissect_element_AddDriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3346 static int spoolss_dissect_element_AddDriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3347 static int spoolss_dissect_element_AddDriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3348 static int spoolss_dissect_element_AddDriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3349 static int spoolss_dissect_element_AddDriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3350 static int spoolss_dissect_element_AddDriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3351 static int spoolss_dissect_element_AddDriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3352 static int spoolss_dissect_element_AddDriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3353 static int spoolss_dissect_element_AddDriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3354 static int spoolss_dissect_element_AddDriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3355 static int spoolss_dissect_element_AddDriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3356 static int spoolss_dissect_element_AddDriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3357 static int spoolss_dissect_element_AddDriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3358 static int spoolss_dissect_element_AddDriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3359 static int spoolss_dissect_element_AddDriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3360 static int spoolss_dissect_element_AddDriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3361 static int spoolss_dissect_element_AddDriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3362 static int spoolss_dissect_element_AddDriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3363 static int spoolss_dissect_element_AddDriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3364 static int spoolss_dissect_element_AddDriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3365 static int spoolss_dissect_element_AddDriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3366 static int spoolss_dissect_element_AddDriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3367 static int spoolss_dissect_element_AddDriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3368 static int spoolss_dissect_element_AddDriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3369 static int spoolss_dissect_element_AddDriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3370 static int spoolss_dissect_element_AddDriverInfo6__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3371 static int spoolss_dissect_element_AddDriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3372 static int spoolss_dissect_element_AddDriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3373 static int spoolss_dissect_element_AddDriverInfo6__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3374 static int spoolss_dissect_element_AddDriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3375 static int spoolss_dissect_element_AddDriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3376 static int spoolss_dissect_element_AddDriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3377 static int spoolss_dissect_element_AddDriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3378 static int spoolss_dissect_element_AddDriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3379 static int spoolss_dissect_element_AddDriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3380 static int spoolss_dissect_element_AddDriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3381 static int spoolss_dissect_element_AddDriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3382 static int spoolss_dissect_element_AddDriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3383 static int spoolss_dissect_element_AddDriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3384 static int spoolss_dissect_element_AddDriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3385 static int spoolss_dissect_element_AddDriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3386 static int spoolss_dissect_element_AddDriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3387 static int spoolss_dissect_element_AddDriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3388 static int spoolss_dissect_element_AddDriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3389 static int spoolss_dissect_element_AddDriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3390 static int spoolss_dissect_element_AddDriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3391 static int spoolss_dissect_element_AddDriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3392 static int spoolss_dissect_element_AddDriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3393 static int spoolss_dissect_element_AddDriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3394 static int spoolss_dissect_element_AddDriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3395 static int spoolss_dissect_element_AddDriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3396 static int spoolss_dissect_element_AddDriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3397 static int spoolss_dissect_element_AddDriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3398 static int spoolss_dissect_element_AddDriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3399 static int spoolss_dissect_element_AddDriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3400 static int spoolss_dissect_element_AddDriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3401 static int spoolss_dissect_element_AddDriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3402 static int spoolss_dissect_element_AddDriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3403 static int spoolss_dissect_element_AddDriverInfo8__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3404 static int spoolss_dissect_element_AddDriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3405 static int spoolss_dissect_element_AddDriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3406 static int spoolss_dissect_element_AddDriverInfo8__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3407 static int spoolss_dissect_element_AddDriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3408 static int spoolss_dissect_element_AddDriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3409 static int spoolss_dissect_element_AddDriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3410 static int spoolss_dissect_element_AddDriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3411 static int spoolss_dissect_element_AddDriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3412 static int spoolss_dissect_element_AddDriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3413 static int spoolss_dissect_element_AddDriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3414 static int spoolss_dissect_element_AddDriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3415 static int spoolss_dissect_element_AddDriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3416 static int spoolss_dissect_element_AddDriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3417 static int spoolss_dissect_element_AddDriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3418 static int spoolss_dissect_element_AddDriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3419 static int spoolss_dissect_element_AddDriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3420 static int spoolss_dissect_element_AddDriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3421 static int spoolss_dissect_element_AddDriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3422 static int spoolss_dissect_element_AddDriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3423 static int spoolss_dissect_element_AddDriverInfo8__ndr_size_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3424 static int spoolss_dissect_element_AddDriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3425 static int spoolss_dissect_element_AddDriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3426 static int spoolss_dissect_element_AddDriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3427 static int spoolss_dissect_element_AddDriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3428 static int spoolss_dissect_element_AddDriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3429 static int spoolss_dissect_element_AddDriverInfo8__ndr_size_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3430 static int spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3431 static int spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3432 static int spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3433 static int spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3434 static int spoolss_dissect_element_AddDriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3435 static int spoolss_dissect_element_AddDriverInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3436 static int spoolss_dissect_element_AddDriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3437 static int spoolss_dissect_element_AddDriverInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3438 static int spoolss_dissect_element_AddDriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3439 static int spoolss_dissect_element_AddDriverInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3440 static int spoolss_dissect_element_AddDriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3441 static int spoolss_dissect_element_AddDriverInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3442 static int spoolss_dissect_element_AddDriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3443 static int spoolss_dissect_element_AddDriverInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3444 static int spoolss_dissect_element_AddDriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3445 static int spoolss_dissect_element_AddDriverInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3446 static int spoolss_dissect_element_AddDriverInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3447 static int spoolss_dissect_element_AddDriverInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3448 static int spoolss_dissect_element_DriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3449 static int spoolss_dissect_element_DriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3450 static int spoolss_dissect_element_DriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3451 static int spoolss_dissect_element_DriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3452 static int spoolss_dissect_element_DriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3453 static int spoolss_dissect_element_DriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3454 static int spoolss_dissect_element_DriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3455 static int spoolss_dissect_element_DriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3456 static int spoolss_dissect_element_DriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3457 static int spoolss_dissect_element_DriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3458 static int spoolss_dissect_element_DriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3459 static int spoolss_dissect_element_DriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3460 static int spoolss_dissect_element_DriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3461 static int spoolss_dissect_element_DriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3462 static int spoolss_dissect_element_DriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3463 static int spoolss_dissect_element_DriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3464 static int spoolss_dissect_element_DriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3465 static int spoolss_dissect_element_DriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3466 static int spoolss_dissect_element_DriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3467 static int spoolss_dissect_element_DriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3468 static int spoolss_dissect_element_DriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3469 static int spoolss_dissect_element_DriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3470 static int spoolss_dissect_element_DriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3471 static int spoolss_dissect_element_DriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3472 static int spoolss_dissect_element_DriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3473 static int spoolss_dissect_element_DriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3474 static int spoolss_dissect_element_DriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3475 static int spoolss_dissect_element_DriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3476 static int spoolss_dissect_element_DriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3477 static int spoolss_dissect_element_DriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3478 static int spoolss_dissect_element_DriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3479 static int spoolss_dissect_element_DriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3480 static int spoolss_dissect_element_DriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3481 static int spoolss_dissect_element_DriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3482 static int spoolss_dissect_element_DriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3483 static int spoolss_dissect_element_DriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3484 static int spoolss_dissect_element_DriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3485 static int spoolss_dissect_element_DriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3486 static int spoolss_dissect_element_DriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3487 static int spoolss_dissect_element_DriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3488 static int spoolss_dissect_element_DriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3489 static int spoolss_dissect_element_DriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3490 static int spoolss_dissect_element_DriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3491 static int spoolss_dissect_element_DriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3492 static int spoolss_dissect_element_DriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3493 static int spoolss_dissect_element_DriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3494 static int spoolss_dissect_element_DriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3495 static int spoolss_dissect_element_DriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3496 static int spoolss_dissect_element_DriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3497 static int spoolss_dissect_element_DriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3498 static int spoolss_dissect_element_DriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3499 static int spoolss_dissect_element_DriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3500 static int spoolss_dissect_element_DriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3501 static int spoolss_dissect_element_DriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3502 static int spoolss_dissect_element_DriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3503 static int spoolss_dissect_element_DriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3504 static int spoolss_dissect_element_DriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3505 static int spoolss_dissect_element_DriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3506 static int spoolss_dissect_element_DriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3507 static int spoolss_dissect_element_DriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3508 static int spoolss_dissect_element_DriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3509 static int spoolss_dissect_element_DriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3510 static int spoolss_dissect_element_DriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3511 static int spoolss_dissect_element_DriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3512 static int spoolss_dissect_element_DriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3513 static int spoolss_dissect_element_DriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3514 static int spoolss_dissect_element_DriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3515 static int spoolss_dissect_element_DriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3516 static int spoolss_dissect_element_DriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3517 static int spoolss_dissect_element_DriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3518 static int spoolss_dissect_element_DriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3519 static int spoolss_dissect_element_DriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3520 static int spoolss_dissect_element_DriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3521 static int spoolss_dissect_element_DriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3522 static int spoolss_dissect_element_DriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3523 static int spoolss_dissect_element_DriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3524 static int spoolss_dissect_element_DriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3525 static int spoolss_dissect_element_DriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3526 static int spoolss_dissect_element_DriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3527 static int spoolss_dissect_element_DriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3528 static int spoolss_dissect_element_DriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3529 static int spoolss_dissect_element_DriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3530 static int spoolss_dissect_element_DriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3531 static int spoolss_dissect_element_DriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3532 static int spoolss_dissect_element_DriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3533 static int spoolss_dissect_element_DriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3534 static int spoolss_dissect_element_DriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3535 static int spoolss_dissect_element_DriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3536 static int spoolss_dissect_element_DriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3537 static int spoolss_dissect_element_DriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3538 static int spoolss_dissect_element_DriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3539 static int spoolss_dissect_element_DriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3540 static int spoolss_dissect_element_DriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3541 static int spoolss_dissect_element_DriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3542 static int spoolss_dissect_element_DriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3543 static int spoolss_dissect_element_DriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3544 static int spoolss_dissect_element_DriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3545 static int spoolss_dissect_element_DriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3546 static int spoolss_dissect_element_DriverInfo7_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3547 static int spoolss_dissect_element_DriverInfo7_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3548 static int spoolss_dissect_element_DriverInfo7_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3549 static int spoolss_dissect_element_DriverInfo7_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3550 static int spoolss_dissect_element_DriverInfo7_inf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3551 static int spoolss_dissect_element_DriverInfo7_inf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3552 static int spoolss_dissect_element_DriverInfo7_install_source_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3553 static int spoolss_dissect_element_DriverInfo7_install_source_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3554 static int spoolss_dissect_element_DriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3555 static int spoolss_dissect_element_DriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3556 static int spoolss_dissect_element_DriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3557 static int spoolss_dissect_element_DriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3558 static int spoolss_dissect_element_DriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3559 static int spoolss_dissect_element_DriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3560 static int spoolss_dissect_element_DriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3561 static int spoolss_dissect_element_DriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3562 static int spoolss_dissect_element_DriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3563 static int spoolss_dissect_element_DriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3564 static int spoolss_dissect_element_DriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3565 static int spoolss_dissect_element_DriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3566 static int spoolss_dissect_element_DriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3567 static int spoolss_dissect_element_DriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3568 static int spoolss_dissect_element_DriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3569 static int spoolss_dissect_element_DriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3570 static int spoolss_dissect_element_DriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3571 static int spoolss_dissect_element_DriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3572 static int spoolss_dissect_element_DriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3573 static int spoolss_dissect_element_DriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3574 static int spoolss_dissect_element_DriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3575 static int spoolss_dissect_element_DriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3576 static int spoolss_dissect_element_DriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3577 static int spoolss_dissect_element_DriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3578 static int spoolss_dissect_element_DriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3579 static int spoolss_dissect_element_DriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3580 static int spoolss_dissect_element_DriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3581 static int spoolss_dissect_element_DriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3582 static int spoolss_dissect_element_DriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3583 static int spoolss_dissect_element_DriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3584 static int spoolss_dissect_element_DriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3585 static int spoolss_dissect_element_DriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3586 static int spoolss_dissect_element_DriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3587 static int spoolss_dissect_element_DriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3588 static int spoolss_dissect_element_DriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3589 static int spoolss_dissect_element_DriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3590 static int spoolss_dissect_element_DriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3591 static int spoolss_dissect_element_DriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3592 static int spoolss_dissect_element_DriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3593 static int spoolss_dissect_element_DriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3594 static int spoolss_dissect_element_DriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3595 static int spoolss_dissect_element_DriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3596 static int spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3597 static int spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3598 const value_string spoolss_spoolss_DriverFileType_vals[] = {
3599         { SPOOLSS_DRIVER_FILE_TYPE_RENDERING, "SPOOLSS_DRIVER_FILE_TYPE_RENDERING" },
3600         { SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION, "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION" },
3601         { SPOOLSS_DRIVER_FILE_TYPE_DATA, "SPOOLSS_DRIVER_FILE_TYPE_DATA" },
3602         { SPOOLSS_DRIVER_FILE_TYPE_HELP, "SPOOLSS_DRIVER_FILE_TYPE_HELP" },
3603         { SPOOLSS_DRIVER_FILE_TYPE_OTHER, "SPOOLSS_DRIVER_FILE_TYPE_OTHER" },
3604 { 0, NULL }
3605 };
3606 static int spoolss_dissect_element_DriverFileInfo_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3607 static int spoolss_dissect_element_DriverFileInfo_file_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3608 static int spoolss_dissect_element_DriverFileInfo_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3609 static int spoolss_dissect_element_DriverFileInfo_file_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3610 static int spoolss_dissect_element_DriverInfo101_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3611 static int spoolss_dissect_element_DriverInfo101_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3612 static int spoolss_dissect_element_DriverInfo101_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3613 static int spoolss_dissect_element_DriverInfo101_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3614 static int spoolss_dissect_element_DriverInfo101_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3615 static int spoolss_dissect_element_DriverInfo101_file_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3616 static int spoolss_dissect_element_DriverInfo101_file_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3617 static int spoolss_dissect_element_DriverInfo101_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3618 static int spoolss_dissect_element_DriverInfo101_file_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3619 static int spoolss_dissect_element_DriverInfo101_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3620 static int spoolss_dissect_element_DriverInfo101_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3621 static int spoolss_dissect_element_DriverInfo101_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3622 static int spoolss_dissect_element_DriverInfo101_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3623 static int spoolss_dissect_element_DriverInfo101_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3624 static int spoolss_dissect_element_DriverInfo101_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3625 static int spoolss_dissect_element_DriverInfo101_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3626 static int spoolss_dissect_element_DriverInfo101_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3627 static int spoolss_dissect_element_DriverInfo101_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3628 static int spoolss_dissect_element_DriverInfo101_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3629 static int spoolss_dissect_element_DriverInfo101_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3630 static int spoolss_dissect_element_DriverInfo101_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3631 static int spoolss_dissect_element_DriverInfo101_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3632 static int spoolss_dissect_element_DriverInfo101_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3633 static int spoolss_dissect_element_DriverInfo101_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3634 static int spoolss_dissect_element_DriverInfo101_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3635 static int spoolss_dissect_element_DriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3636 static int spoolss_dissect_element_DriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3637 static int spoolss_dissect_element_DriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3638 static int spoolss_dissect_element_DriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3639 static int spoolss_dissect_element_DriverInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3640 static int spoolss_dissect_element_DriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3641 static int spoolss_dissect_element_DriverInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3642 static int spoolss_dissect_element_DriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3643 static int spoolss_dissect_element_DriverInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3644 static int spoolss_dissect_element_DriverDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3645 static int spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3646 static int spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3647 static int spoolss_dissect_element_PrintProcessorInfo1_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3648 static int spoolss_dissect_element_PrintProcessorInfo1_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3649 static int spoolss_dissect_element_PrintProcessorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3650 static int spoolss_dissect_element_PrintProcessorDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3651 static int spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3652 static int spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3653 static int spoolss_dissect_element_DocumentInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3654 static int spoolss_dissect_element_DocumentInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3655 static int spoolss_dissect_element_DocumentInfo1_output_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3656 static int spoolss_dissect_element_DocumentInfo1_output_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3657 static int spoolss_dissect_element_DocumentInfo1_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3658 static int spoolss_dissect_element_DocumentInfo1_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3659 static int spoolss_dissect_element_DocumentInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3660 static int spoolss_dissect_element_DocumentInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3661 static int spoolss_dissect_element_DocumentInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3662 static int spoolss_dissect_element_DocumentInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3663 static int spoolss_dissect_element_OSVersion__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3664 static int spoolss_dissect_element_OSVersion_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3665 static int spoolss_dissect_element_OSVersion_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3666 static int spoolss_dissect_element_OSVersion_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3667 static int spoolss_dissect_element_OSVersion_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3668 static int spoolss_dissect_element_OSVersion_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3669 static int spoolss_dissect_element_OSVersion_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3670 static int spoolss_dissect_element_OSVersionEx__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3671 static int spoolss_dissect_element_OSVersionEx_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3672 static int spoolss_dissect_element_OSVersionEx_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3673 static int spoolss_dissect_element_OSVersionEx_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3674 static int spoolss_dissect_element_OSVersionEx_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3675 static int spoolss_dissect_element_OSVersionEx_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3676 static int spoolss_dissect_element_OSVersionEx_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3677 static int spoolss_dissect_element_OSVersionEx_service_pack_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3678 static int spoolss_dissect_element_OSVersionEx_service_pack_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3679 static int spoolss_dissect_element_OSVersionEx_suite_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3680 static int spoolss_dissect_element_OSVersionEx_product_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3681 static int spoolss_dissect_element_OSVersionEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3682 static int spoolss_dissect_element_PrinterData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3683 static int spoolss_dissect_element_PrinterData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3684 static int spoolss_dissect_element_PrinterData_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3685 static int spoolss_dissect_element_PrinterData_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3686 static int spoolss_dissect_element_PrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3687 const value_string spoolss_spoolss_FormFlags_vals[] = {
3688         { SPOOLSS_FORM_USER, "SPOOLSS_FORM_USER" },
3689         { SPOOLSS_FORM_BUILTIN, "SPOOLSS_FORM_BUILTIN" },
3690         { SPOOLSS_FORM_PRINTER, "SPOOLSS_FORM_PRINTER" },
3691 { 0, NULL }
3692 };
3693 static int spoolss_dissect_element_FormSize_width(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3694 static int spoolss_dissect_element_FormSize_height(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3695 static int spoolss_dissect_element_FormArea_left(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3696 static int spoolss_dissect_element_FormArea_top(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3697 static int spoolss_dissect_element_FormArea_right(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3698 static int spoolss_dissect_element_FormArea_bottom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3699 static int spoolss_dissect_element_FormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3700 static int spoolss_dissect_element_FormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3701 static int spoolss_dissect_element_FormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3702 static int spoolss_dissect_element_FormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3703 static int spoolss_dissect_element_FormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3704 static const true_false_string spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE_tfs = {
3705    "SPOOLSS_FORM_STRING_TYPE_NONE is SET",
3706    "SPOOLSS_FORM_STRING_TYPE_NONE is NOT SET",
3707 };
3708 static const true_false_string spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL_tfs = {
3709    "SPOOLSS_FORM_STRING_TYPE_MUI_DLL is SET",
3710    "SPOOLSS_FORM_STRING_TYPE_MUI_DLL is NOT SET",
3711 };
3712 static const true_false_string spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR_tfs = {
3713    "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR is SET",
3714    "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR is NOT SET",
3715 };
3716 static int spoolss_dissect_element_FormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3717 static int spoolss_dissect_element_FormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3718 static int spoolss_dissect_element_FormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3719 static int spoolss_dissect_element_FormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3720 static int spoolss_dissect_element_FormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3721 static int spoolss_dissect_element_FormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3722 static int spoolss_dissect_element_FormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3723 static int spoolss_dissect_element_FormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3724 static int spoolss_dissect_element_FormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3725 static int spoolss_dissect_element_FormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3726 static int spoolss_dissect_element_FormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3727 static int spoolss_dissect_element_FormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3728 static int spoolss_dissect_element_FormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3729 static int spoolss_dissect_element_FormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3730 static int spoolss_dissect_element_FormInfo2_unused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3731 static int spoolss_dissect_element_FormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3732 static int spoolss_dissect_element_FormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3733 static int spoolss_dissect_element_AddFormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3734 static int spoolss_dissect_element_AddFormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3735 static int spoolss_dissect_element_AddFormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3736 static int spoolss_dissect_element_AddFormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3737 static int spoolss_dissect_element_AddFormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3738 static int spoolss_dissect_element_AddFormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3739 static int spoolss_dissect_element_AddFormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3740 static int spoolss_dissect_element_AddFormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3741 static int spoolss_dissect_element_AddFormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3742 static int spoolss_dissect_element_AddFormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3743 static int spoolss_dissect_element_AddFormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3744 static int spoolss_dissect_element_AddFormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3745 static int spoolss_dissect_element_AddFormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3746 static int spoolss_dissect_element_AddFormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3747 static int spoolss_dissect_element_AddFormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3748 static int spoolss_dissect_element_AddFormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3749 static int spoolss_dissect_element_AddFormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3750 static int spoolss_dissect_element_AddFormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3751 static int spoolss_dissect_element_AddFormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3752 static int spoolss_dissect_element_AddFormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3753 static int spoolss_dissect_element_AddFormInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3754 static int spoolss_dissect_element_AddFormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3755 static int spoolss_dissect_element_AddFormInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3756 static int spoolss_dissect_element_AddFormInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3757 static int spoolss_dissect_element_AddFormInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3758 static int spoolss_dissect_element_PortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3759 static int spoolss_dissect_element_PortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3760 static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE_tfs = {
3761    "SPOOLSS_PORT_TYPE_WRITE is SET",
3762    "SPOOLSS_PORT_TYPE_WRITE is NOT SET",
3763 };
3764 static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_READ_tfs = {
3765    "SPOOLSS_PORT_TYPE_READ is SET",
3766    "SPOOLSS_PORT_TYPE_READ is NOT SET",
3767 };
3768 static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED_tfs = {
3769    "SPOOLSS_PORT_TYPE_REDIRECTED is SET",
3770    "SPOOLSS_PORT_TYPE_REDIRECTED is NOT SET",
3771 };
3772 static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED_tfs = {
3773    "SPOOLSS_PORT_TYPE_NET_ATTACHED is SET",
3774    "SPOOLSS_PORT_TYPE_NET_ATTACHED is NOT SET",
3775 };
3776 static int spoolss_dissect_element_PortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3777 static int spoolss_dissect_element_PortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3778 static int spoolss_dissect_element_PortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3779 static int spoolss_dissect_element_PortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3780 static int spoolss_dissect_element_PortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3781 static int spoolss_dissect_element_PortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3782 static int spoolss_dissect_element_PortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3783 static int spoolss_dissect_element_PortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3784 const value_string spoolss_spoolss_PortStatus_vals[] = {
3785         { PORT_STATUS_CLEAR, "PORT_STATUS_CLEAR" },
3786         { PORT_STATUS_OFFLINE, "PORT_STATUS_OFFLINE" },
3787         { PORT_STATUS_PAPER_JAM, "PORT_STATUS_PAPER_JAM" },
3788         { PORT_STATUS_PAPER_OUT, "PORT_STATUS_PAPER_OUT" },
3789         { PORT_STATUS_OUTPUT_BIN_FULL, "PORT_STATUS_OUTPUT_BIN_FULL" },
3790         { PORT_STATUS_PAPER_PROBLEM, "PORT_STATUS_PAPER_PROBLEM" },
3791         { PORT_STATUS_NO_TONER, "PORT_STATUS_NO_TONER" },
3792         { PORT_STATUS_DOOR_OPEN, "PORT_STATUS_DOOR_OPEN" },
3793         { PORT_STATUS_USER_INTERVENTION, "PORT_STATUS_USER_INTERVENTION" },
3794         { PORT_STATUS_OUT_OF_MEMORY, "PORT_STATUS_OUT_OF_MEMORY" },
3795         { PORT_STATUS_TONER_LOW, "PORT_STATUS_TONER_LOW" },
3796         { PORT_STATUS_WARMING_UP, "PORT_STATUS_WARMING_UP" },
3797         { PORT_STATUS_POWER_SAVE, "PORT_STATUS_POWER_SAVE" },
3798 { 0, NULL }
3799 };
3800 const value_string spoolss_spoolss_PortSeverity_vals[] = {
3801         { PORT_STATUS_TYPE_ERROR, "PORT_STATUS_TYPE_ERROR" },
3802         { PORT_STATUS_TYPE_WARNING, "PORT_STATUS_TYPE_WARNING" },
3803         { PORT_STATUS_TYPE_INFO, "PORT_STATUS_TYPE_INFO" },
3804 { 0, NULL }
3805 };
3806 static int spoolss_dissect_element_PortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3807 static int spoolss_dissect_element_PortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3808 static int spoolss_dissect_element_PortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3809 static int spoolss_dissect_element_PortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3810 static int spoolss_dissect_element_PortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3811 static int spoolss_dissect_element_PortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3812 static int spoolss_dissect_element_PortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3813 static int spoolss_dissect_element_PortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3814 static int spoolss_dissect_element_PortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3815 static int spoolss_dissect_element_PortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3816 static int spoolss_dissect_element_PortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3817 static int spoolss_dissect_element_MonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3818 static int spoolss_dissect_element_MonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3819 static int spoolss_dissect_element_MonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3820 static int spoolss_dissect_element_MonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3821 static int spoolss_dissect_element_MonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3822 static int spoolss_dissect_element_MonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3823 static int spoolss_dissect_element_MonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3824 static int spoolss_dissect_element_MonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3825 static int spoolss_dissect_element_MonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3826 static int spoolss_dissect_element_MonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3827 static int spoolss_dissect_element_SetPortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3828 static int spoolss_dissect_element_SetPortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3829 static int spoolss_dissect_element_SetPortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3830 static int spoolss_dissect_element_SetPortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3831 static int spoolss_dissect_element_SetPortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3832 static int spoolss_dissect_element_SetPortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3833 static int spoolss_dissect_element_SetPortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3834 static int spoolss_dissect_element_SetPortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3835 static int spoolss_dissect_element_SetPortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3836 static int spoolss_dissect_element_SetPortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3837 static int spoolss_dissect_element_SetPortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3838 static int spoolss_dissect_element_SetPortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3839 static int spoolss_dissect_element_SetPortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3840 static int spoolss_dissect_element_SetPortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3841 static int spoolss_dissect_element_SetPortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3842 static int spoolss_dissect_element_SetPortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3843 static int spoolss_dissect_element_SetPortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3844 static int spoolss_dissect_element_SetPortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3845 static int spoolss_dissect_element_SetPortInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3846 static int spoolss_dissect_element_SetPortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3847 static int spoolss_dissect_element_SetPortInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3848 static int spoolss_dissect_element_SetPortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3849 static int spoolss_dissect_element_SetPortInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3850 static int spoolss_dissect_element_SetPortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3851 static int spoolss_dissect_element_SetPortInfo_infoFF_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3852 static int spoolss_dissect_element_SetPortInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3853 static int spoolss_dissect_element_SetPortInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3854 static int spoolss_dissect_element_UNIVERSAL_FONT_ID_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3855 static int spoolss_dissect_element_UNIVERSAL_FONT_ID_Index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3856 static int spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3857 static int spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3858 static int spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3859 static int spoolss_dissect_element_AddMonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3860 static int spoolss_dissect_element_AddMonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3861 static int spoolss_dissect_element_AddMonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3862 static int spoolss_dissect_element_AddMonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3863 static int spoolss_dissect_element_AddMonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3864 static int spoolss_dissect_element_AddMonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3865 static int spoolss_dissect_element_AddMonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3866 static int spoolss_dissect_element_AddMonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3867 static int spoolss_dissect_element_AddMonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3868 static int spoolss_dissect_element_AddMonitorInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3869 static int spoolss_dissect_element_AddMonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3870 static int spoolss_dissect_element_AddMonitorInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3871 static int spoolss_dissect_element_MonitorContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3872 static int spoolss_dissect_element_MonitorContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
3873 static int spoolss_dissect_element_PrintProcDataTypesInfo1_name_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3874 static int spoolss_dissect_element_PrintProcDataTypesInfo1_name_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3875 static int spoolss_dissect_element_PrintProcDataTypesInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3876 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_tfs = {
3877    "PRINTER_CHANGE_ADD_PRINTER is SET",
3878    "PRINTER_CHANGE_ADD_PRINTER is NOT SET",
3879 };
3880 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_tfs = {
3881    "PRINTER_CHANGE_SET_PRINTER is SET",
3882    "PRINTER_CHANGE_SET_PRINTER is NOT SET",
3883 };
3884 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_tfs = {
3885    "PRINTER_CHANGE_DELETE_PRINTER is SET",
3886    "PRINTER_CHANGE_DELETE_PRINTER is NOT SET",
3887 };
3888 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER_tfs = {
3889    "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER is SET",
3890    "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER is NOT SET",
3891 };
3892 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB_tfs = {
3893    "PRINTER_CHANGE_ADD_JOB is SET",
3894    "PRINTER_CHANGE_ADD_JOB is NOT SET",
3895 };
3896 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB_tfs = {
3897    "PRINTER_CHANGE_SET_JOB is SET",
3898    "PRINTER_CHANGE_SET_JOB is NOT SET",
3899 };
3900 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB_tfs = {
3901    "PRINTER_CHANGE_DELETE_JOB is SET",
3902    "PRINTER_CHANGE_DELETE_JOB is NOT SET",
3903 };
3904 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB_tfs = {
3905    "PRINTER_CHANGE_WRITE_JOB is SET",
3906    "PRINTER_CHANGE_WRITE_JOB is NOT SET",
3907 };
3908 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM_tfs = {
3909    "PRINTER_CHANGE_ADD_FORM is SET",
3910    "PRINTER_CHANGE_ADD_FORM is NOT SET",
3911 };
3912 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM_tfs = {
3913    "PRINTER_CHANGE_SET_FORM is SET",
3914    "PRINTER_CHANGE_SET_FORM is NOT SET",
3915 };
3916 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM_tfs = {
3917    "PRINTER_CHANGE_DELETE_FORM is SET",
3918    "PRINTER_CHANGE_DELETE_FORM is NOT SET",
3919 };
3920 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT_tfs = {
3921    "PRINTER_CHANGE_ADD_PORT is SET",
3922    "PRINTER_CHANGE_ADD_PORT is NOT SET",
3923 };
3924 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT_tfs = {
3925    "PRINTER_CHANGE_CONFIGURE_PORT is SET",
3926    "PRINTER_CHANGE_CONFIGURE_PORT is NOT SET",
3927 };
3928 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT_tfs = {
3929    "PRINTER_CHANGE_DELETE_PORT is SET",
3930    "PRINTER_CHANGE_DELETE_PORT is NOT SET",
3931 };
3932 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR_tfs = {
3933    "PRINTER_CHANGE_ADD_PRINT_PROCESSOR is SET",
3934    "PRINTER_CHANGE_ADD_PRINT_PROCESSOR is NOT SET",
3935 };
3936 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR_tfs = {
3937    "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR is SET",
3938    "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR is NOT SET",
3939 };
3940 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER_tfs = {
3941    "PRINTER_CHANGE_SERVER is SET",
3942    "PRINTER_CHANGE_SERVER is NOT SET",
3943 };
3944 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER_tfs = {
3945    "PRINTER_CHANGE_ADD_PRINTER_DRIVER is SET",
3946    "PRINTER_CHANGE_ADD_PRINTER_DRIVER is NOT SET",
3947 };
3948 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER_tfs = {
3949    "PRINTER_CHANGE_SET_PRINTER_DRIVER is SET",
3950    "PRINTER_CHANGE_SET_PRINTER_DRIVER is NOT SET",
3951 };
3952 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER_tfs = {
3953    "PRINTER_CHANGE_DELETE_PRINTER_DRIVER is SET",
3954    "PRINTER_CHANGE_DELETE_PRINTER_DRIVER is NOT SET",
3955 };
3956 static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT_tfs = {
3957    "PRINTER_CHANGE_TIMEOUT is SET",
3958    "PRINTER_CHANGE_TIMEOUT is NOT SET",
3959 };
3960 static int spoolss_dissect_element_PortVarContainer_monitor_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3961 static int spoolss_dissect_element_PortVarContainer_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3962 static int spoolss_dissect_element_PortVarContainer_monitor_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3963 static int spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
3964 const value_string spoolss_spoolss_JobNotifyField_vals[] = {
3965         { JOB_NOTIFY_FIELD_PRINTER_NAME, "JOB_NOTIFY_FIELD_PRINTER_NAME" },
3966         { JOB_NOTIFY_FIELD_MACHINE_NAME, "JOB_NOTIFY_FIELD_MACHINE_NAME" },
3967         { JOB_NOTIFY_FIELD_PORT_NAME, "JOB_NOTIFY_FIELD_PORT_NAME" },
3968         { JOB_NOTIFY_FIELD_USER_NAME, "JOB_NOTIFY_FIELD_USER_NAME" },
3969         { JOB_NOTIFY_FIELD_NOTIFY_NAME, "JOB_NOTIFY_FIELD_NOTIFY_NAME" },
3970         { JOB_NOTIFY_FIELD_DATATYPE, "JOB_NOTIFY_FIELD_DATATYPE" },
3971         { JOB_NOTIFY_FIELD_PRINT_PROCESSOR, "JOB_NOTIFY_FIELD_PRINT_PROCESSOR" },
3972         { JOB_NOTIFY_FIELD_PARAMETERS, "JOB_NOTIFY_FIELD_PARAMETERS" },
3973         { JOB_NOTIFY_FIELD_DRIVER_NAME, "JOB_NOTIFY_FIELD_DRIVER_NAME" },
3974         { JOB_NOTIFY_FIELD_DEVMODE, "JOB_NOTIFY_FIELD_DEVMODE" },
3975         { JOB_NOTIFY_FIELD_STATUS, "JOB_NOTIFY_FIELD_STATUS" },
3976         { JOB_NOTIFY_FIELD_STATUS_STRING, "JOB_NOTIFY_FIELD_STATUS_STRING" },
3977         { JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR, "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR" },
3978         { JOB_NOTIFY_FIELD_DOCUMENT, "JOB_NOTIFY_FIELD_DOCUMENT" },
3979         { JOB_NOTIFY_FIELD_PRIORITY, "JOB_NOTIFY_FIELD_PRIORITY" },
3980         { JOB_NOTIFY_FIELD_POSITION, "JOB_NOTIFY_FIELD_POSITION" },
3981         { JOB_NOTIFY_FIELD_SUBMITTED, "JOB_NOTIFY_FIELD_SUBMITTED" },
3982         { JOB_NOTIFY_FIELD_START_TIME, "JOB_NOTIFY_FIELD_START_TIME" },
3983         { JOB_NOTIFY_FIELD_UNTIL_TIME, "JOB_NOTIFY_FIELD_UNTIL_TIME" },
3984         { JOB_NOTIFY_FIELD_TIME, "JOB_NOTIFY_FIELD_TIME" },
3985         { JOB_NOTIFY_FIELD_TOTAL_PAGES, "JOB_NOTIFY_FIELD_TOTAL_PAGES" },
3986         { JOB_NOTIFY_FIELD_PAGES_PRINTED, "JOB_NOTIFY_FIELD_PAGES_PRINTED" },
3987         { JOB_NOTIFY_FIELD_TOTAL_BYTES, "JOB_NOTIFY_FIELD_TOTAL_BYTES" },
3988         { JOB_NOTIFY_FIELD_BYTES_PRINTED, "JOB_NOTIFY_FIELD_BYTES_PRINTED" },
3989 { 0, NULL }
3990 };
3991 const value_string spoolss_spoolss_PrintNotifyField_vals[] = {
3992         { PRINTER_NOTIFY_FIELD_SERVER_NAME, "PRINTER_NOTIFY_FIELD_SERVER_NAME" },
3993         { PRINTER_NOTIFY_FIELD_PRINTER_NAME, "PRINTER_NOTIFY_FIELD_PRINTER_NAME" },
3994         { PRINTER_NOTIFY_FIELD_SHARE_NAME, "PRINTER_NOTIFY_FIELD_SHARE_NAME" },
3995         { PRINTER_NOTIFY_FIELD_PORT_NAME, "PRINTER_NOTIFY_FIELD_PORT_NAME" },
3996         { PRINTER_NOTIFY_FIELD_DRIVER_NAME, "PRINTER_NOTIFY_FIELD_DRIVER_NAME" },
3997         { PRINTER_NOTIFY_FIELD_COMMENT, "PRINTER_NOTIFY_FIELD_COMMENT" },
3998         { PRINTER_NOTIFY_FIELD_LOCATION, "PRINTER_NOTIFY_FIELD_LOCATION" },
3999         { PRINTER_NOTIFY_FIELD_DEVMODE, "PRINTER_NOTIFY_FIELD_DEVMODE" },
4000         { PRINTER_NOTIFY_FIELD_SEPFILE, "PRINTER_NOTIFY_FIELD_SEPFILE" },
4001         { PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR, "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR" },
4002         { PRINTER_NOTIFY_FIELD_PARAMETERS, "PRINTER_NOTIFY_FIELD_PARAMETERS" },
4003         { PRINTER_NOTIFY_FIELD_DATATYPE, "PRINTER_NOTIFY_FIELD_DATATYPE" },
4004         { PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR, "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR" },
4005         { PRINTER_NOTIFY_FIELD_ATTRIBUTES, "PRINTER_NOTIFY_FIELD_ATTRIBUTES" },
4006         { PRINTER_NOTIFY_FIELD_PRIORITY, "PRINTER_NOTIFY_FIELD_PRIORITY" },
4007         { PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY, "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY" },
4008         { PRINTER_NOTIFY_FIELD_START_TIME, "PRINTER_NOTIFY_FIELD_START_TIME" },
4009         { PRINTER_NOTIFY_FIELD_UNTIL_TIME, "PRINTER_NOTIFY_FIELD_UNTIL_TIME" },
4010         { PRINTER_NOTIFY_FIELD_STATUS, "PRINTER_NOTIFY_FIELD_STATUS" },
4011         { PRINTER_NOTIFY_FIELD_STATUS_STRING, "PRINTER_NOTIFY_FIELD_STATUS_STRING" },
4012         { PRINTER_NOTIFY_FIELD_CJOBS, "PRINTER_NOTIFY_FIELD_CJOBS" },
4013         { PRINTER_NOTIFY_FIELD_AVERAGE_PPM, "PRINTER_NOTIFY_FIELD_AVERAGE_PPM" },
4014         { PRINTER_NOTIFY_FIELD_TOTAL_PAGES, "PRINTER_NOTIFY_FIELD_TOTAL_PAGES" },
4015         { PRINTER_NOTIFY_FIELD_PAGES_PRINTED, "PRINTER_NOTIFY_FIELD_PAGES_PRINTED" },
4016         { PRINTER_NOTIFY_FIELD_TOTAL_BYTES, "PRINTER_NOTIFY_FIELD_TOTAL_BYTES" },
4017         { PRINTER_NOTIFY_FIELD_BYTES_PRINTED, "PRINTER_NOTIFY_FIELD_BYTES_PRINTED" },
4018         { PRINTER_NOTIFY_FIELD_OBJECT_GUID, "PRINTER_NOTIFY_FIELD_OBJECT_GUID" },
4019         { PRINTER_NOTIFY_FIELD_FRIENDLY_NAME, "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME" },
4020 { 0, NULL }
4021 };
4022 const value_string spoolss_spoolss_NotifyType_vals[] = {
4023         { PRINTER_NOTIFY_TYPE, "PRINTER_NOTIFY_TYPE" },
4024         { JOB_NOTIFY_TYPE, "JOB_NOTIFY_TYPE" },
4025 { 0, NULL }
4026 };
4027 static int spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4028 static int spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4029 static int spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4030 static int spoolss_dissect_element_NotifyOptionType_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
4031 static int spoolss_dissect_element_NotifyOptionType_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4032 static int spoolss_dissect_element_NotifyOptionType_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4033 static int spoolss_dissect_element_NotifyOptionType_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4034 static int spoolss_dissect_element_NotifyOptionType_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4035 static int spoolss_dissect_element_NotifyOptionType_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
4036 static int spoolss_dissect_element_NotifyOptionType_fields_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
4037 static int spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
4038 static const true_false_string spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH_tfs = {
4039    "PRINTER_NOTIFY_OPTIONS_REFRESH is SET",
4040    "PRINTER_NOTIFY_OPTIONS_REFRESH is NOT SET",
4041 };
4042 static int spoolss_dissect_element_NotifyOption_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4043 static int spoolss_dissect_element_NotifyOption_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4044 static int spoolss_dissect_element_NotifyOption_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4045 static int spoolss_dissect_element_NotifyOption_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4046 static int spoolss_dissect_element_NotifyOption_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4047 static int spoolss_dissect_element_NotifyOption_types__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4048 static int spoolss_dissect_element_NotifyString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4049 static int spoolss_dissect_element_NotifyString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4050 static int spoolss_dissect_element_NotifyString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4051 static int spoolss_dissect_element_NotifyString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4052 const value_string spoolss_spoolss_NotifyTable_vals[] = {
4053         { NOTIFY_TABLE_DWORD, "NOTIFY_TABLE_DWORD" },
4054         { NOTIFY_TABLE_STRING, "NOTIFY_TABLE_STRING" },
4055         { NOTIFY_TABLE_DEVMODE, "NOTIFY_TABLE_DEVMODE" },
4056         { NOTIFY_TABLE_TIME, "NOTIFY_TABLE_TIME" },
4057         { NOTIFY_TABLE_SECURITYDESCRIPTOR, "NOTIFY_TABLE_SECURITYDESCRIPTOR" },
4058 { 0, NULL }
4059 };
4060 static int spoolss_dissect_element_NotifyData_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4061 static int spoolss_dissect_element_NotifyData_integer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4062 static int spoolss_dissect_element_NotifyData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4063 static int spoolss_dissect_element_NotifyData_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4064 static int spoolss_dissect_element_NotifyData_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4065 static int spoolss_dissect_element_NotifyData_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4066 static int spoolss_dissect_element_Notify_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4067 static int spoolss_dissect_element_Notify_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
4068 static int spoolss_dissect_element_Notify_variable_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type);
4069 static int spoolss_dissect_element_Notify_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4070 static int spoolss_dissect_element_Notify_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type);
4071 static int spoolss_dissect_element_NotifyInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4072 static int spoolss_dissect_element_NotifyInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4073 static int spoolss_dissect_element_NotifyInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4074 static int spoolss_dissect_element_NotifyInfo_notifies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4075 static int spoolss_dissect_element_NotifyInfo_notifies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4076 static int spoolss_dissect_element_ReplyPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4077 static int spoolss_dissect_element_ReplyPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4078 static const true_false_string spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED_tfs = {
4079    "PRINTER_NOTIFY_INFO_DISCARDED is SET",
4080    "PRINTER_NOTIFY_INFO_DISCARDED is NOT SET",
4081 };
4082 static const true_false_string spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED_tfs = {
4083    "PRINTER_NOTIFY_INFO_DISCARDNOTED is SET",
4084    "PRINTER_NOTIFY_INFO_DISCARDNOTED is NOT SET",
4085 };
4086 static const true_false_string spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH_tfs = {
4087    "PRINTER_NOTIFY_INFO_COLOR_MISMATCH is SET",
4088    "PRINTER_NOTIFY_INFO_COLOR_MISMATCH is NOT SET",
4089 };
4090 static int spoolss_dissect_element_UserLevel1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4091 static int spoolss_dissect_element_UserLevel1_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4092 static int spoolss_dissect_element_UserLevel1_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4093 static int spoolss_dissect_element_UserLevel1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4094 static int spoolss_dissect_element_UserLevel1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4095 static int spoolss_dissect_element_UserLevel1_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4096 static int spoolss_dissect_element_UserLevel1_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4097 static int spoolss_dissect_element_UserLevel1_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4098 static int spoolss_dissect_element_UserLevel1_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4099 static int spoolss_dissect_element_UserLevel2_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4100 static int spoolss_dissect_element_UserLevel3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4101 static int spoolss_dissect_element_UserLevel3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4102 static int spoolss_dissect_element_UserLevel3_size2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4103 static int spoolss_dissect_element_UserLevel3_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4104 static int spoolss_dissect_element_UserLevel3_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4105 static int spoolss_dissect_element_UserLevel3_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4106 static int spoolss_dissect_element_UserLevel3_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4107 static int spoolss_dissect_element_UserLevel3_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4108 static int spoolss_dissect_element_UserLevel3_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4109 static int spoolss_dissect_element_UserLevel3_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4110 static int spoolss_dissect_element_UserLevel3_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4111 static int spoolss_dissect_element_UserLevel3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4112 static int spoolss_dissect_element_UserLevel_level1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4113 static int spoolss_dissect_element_UserLevel_level1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4114 static int spoolss_dissect_element_UserLevel_level2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4115 static int spoolss_dissect_element_UserLevel_level2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4116 static int spoolss_dissect_element_UserLevel_level3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4117 static int spoolss_dissect_element_UserLevel_level3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4118 static int spoolss_dissect_element_UserLevelCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
4119 static int spoolss_dissect_element_UserLevelCtr_user_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
4120 static const true_false_string spoolss_AccessRights_SERVER_ACCESS_ADMINISTER_tfs = {
4121    "SERVER_ACCESS_ADMINISTER is SET",
4122    "SERVER_ACCESS_ADMINISTER is NOT SET",
4123 };
4124 static const true_false_string spoolss_AccessRights_SERVER_ACCESS_ENUMERATE_tfs = {
4125    "SERVER_ACCESS_ENUMERATE is SET",
4126    "SERVER_ACCESS_ENUMERATE is NOT SET",
4127 };
4128 static const true_false_string spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER_tfs = {
4129    "PRINTER_ACCESS_ADMINISTER is SET",
4130    "PRINTER_ACCESS_ADMINISTER is NOT SET",
4131 };
4132 static const true_false_string spoolss_AccessRights_PRINTER_ACCESS_USE_tfs = {
4133    "PRINTER_ACCESS_USE is SET",
4134    "PRINTER_ACCESS_USE is NOT SET",
4135 };
4136 static const true_false_string spoolss_AccessRights_JOB_ACCESS_ADMINISTER_tfs = {
4137    "JOB_ACCESS_ADMINISTER is SET",
4138    "JOB_ACCESS_ADMINISTER is NOT SET",
4139 };
4140 static const true_false_string spoolss_AccessRights_JOB_ACCESS_READ_tfs = {
4141    "JOB_ACCESS_READ is SET",
4142    "JOB_ACCESS_READ is NOT SET",
4143 };
4144 static int spoolss_dissect_element_PrinterEnumValues_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4145 static int spoolss_dissect_element_PrinterEnumValues_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4146 static int spoolss_dissect_element_PrinterEnumValues_value_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4147 static int spoolss_dissect_element_PrinterEnumValues_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4148 static int spoolss_dissect_element_PrinterEnumValues_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4149 static int spoolss_dissect_element_PrinterEnumValues_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4150 static int spoolss_dissect_element_PrinterEnumValues_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4151 static int spoolss_dissect_element_PrinterEnumValues_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4152 static int spoolss_dissect_element_KeyNames_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4153 static const true_false_string spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES_tfs = {
4154    "DPD_DELETE_UNUSED_FILES is SET",
4155    "DPD_DELETE_UNUSED_FILES is NOT SET",
4156 };
4157 static const true_false_string spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION_tfs = {
4158    "DPD_DELETE_SPECIFIC_VERSION is SET",
4159    "DPD_DELETE_SPECIFIC_VERSION is NOT SET",
4160 };
4161 static const true_false_string spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES_tfs = {
4162    "DPD_DELETE_ALL_FILES is SET",
4163    "DPD_DELETE_ALL_FILES is NOT SET",
4164 };
4165 const value_string spoolss_spoolss_PortProtocol_vals[] = {
4166         { PROTOCOL_RAWTCP_TYPE, "PROTOCOL_RAWTCP_TYPE" },
4167         { PROTOCOL_LPR_TYPE, "PROTOCOL_LPR_TYPE" },
4168 { 0, NULL }
4169 };
4170 static int spoolss_dissect_element_PortData1_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4171 static int spoolss_dissect_element_PortData1_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4172 static int spoolss_dissect_element_PortData1_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4173 static int spoolss_dissect_element_PortData1_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4174 static int spoolss_dissect_element_PortData1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4175 static int spoolss_dissect_element_PortData1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4176 static int spoolss_dissect_element_PortData1_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4177 static int spoolss_dissect_element_PortData1_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4178 static int spoolss_dissect_element_PortData1_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4179 static int spoolss_dissect_element_PortData1_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4180 static int spoolss_dissect_element_PortData1_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4181 static int spoolss_dissect_element_PortData1_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4182 static int spoolss_dissect_element_PortData1_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4183 static int spoolss_dissect_element_PortData1_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4184 static int spoolss_dissect_element_PortData1_ip_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4185 static int spoolss_dissect_element_PortData1_hardware_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4186 static int spoolss_dissect_element_PortData1_hardware_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4187 static int spoolss_dissect_element_PortData1_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4188 static int spoolss_dissect_element_PortData1_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4189 static int spoolss_dissect_element_PortData1_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4190 static int spoolss_dissect_element_PortData1_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4191 static int spoolss_dissect_element_PortData1_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4192 static int spoolss_dissect_element_PortData2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4193 static int spoolss_dissect_element_PortData2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4194 static int spoolss_dissect_element_PortData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4195 static int spoolss_dissect_element_PortData2_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4196 static int spoolss_dissect_element_PortData2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4197 static int spoolss_dissect_element_PortData2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4198 static int spoolss_dissect_element_PortData2_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4199 static int spoolss_dissect_element_PortData2_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4200 static int spoolss_dissect_element_PortData2_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4201 static int spoolss_dissect_element_PortData2_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4202 static int spoolss_dissect_element_PortData2_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4203 static int spoolss_dissect_element_PortData2_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4204 static int spoolss_dissect_element_PortData2_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4205 static int spoolss_dissect_element_PortData2_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4206 static int spoolss_dissect_element_PortData2_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4207 static int spoolss_dissect_element_PortData2_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4208 static int spoolss_dissect_element_PortData2_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4209 static int spoolss_dissect_element_PortData2_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4210 static int spoolss_dissect_element_PortData2_port_monitor_mib_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4211 static int spoolss_dissect_element_MonitorUi_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4212 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE_tfs = {
4213    "APD_STRICT_UPGRADE is SET",
4214    "APD_STRICT_UPGRADE is NOT SET",
4215 };
4216 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE_tfs = {
4217    "APD_STRICT_DOWNGRADE is SET",
4218    "APD_STRICT_DOWNGRADE is NOT SET",
4219 };
4220 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES_tfs = {
4221    "APD_COPY_ALL_FILES is SET",
4222    "APD_COPY_ALL_FILES is NOT SET",
4223 };
4224 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES_tfs = {
4225    "APD_COPY_NEW_FILES is SET",
4226    "APD_COPY_NEW_FILES is NOT SET",
4227 };
4228 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY_tfs = {
4229    "APD_COPY_FROM_DIRECTORY is SET",
4230    "APD_COPY_FROM_DIRECTORY is NOT SET",
4231 };
4232 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER_tfs = {
4233    "APD_DONT_COPY_FILES_TO_CLUSTER is SET",
4234    "APD_DONT_COPY_FILES_TO_CLUSTER is NOT SET",
4235 };
4236 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS_tfs = {
4237    "APD_COPY_TO_ALL_SPOOLERS is SET",
4238    "APD_COPY_TO_ALL_SPOOLERS is NOT SET",
4239 };
4240 static const true_false_string spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE_tfs = {
4241    "APD_RETURN_BLOCKING_STATUS_CODE is SET",
4242    "APD_RETURN_BLOCKING_STATUS_CODE is NOT SET",
4243 };
4244 const value_string spoolss_BIDI_TYPE_vals[] = {
4245         { BIDI_NULL, "BIDI_NULL" },
4246         { BIDI_INT, "BIDI_INT" },
4247         { BIDI_FLOAT, "BIDI_FLOAT" },
4248         { BIDI_BOOL, "BIDI_BOOL" },
4249         { BIDI_STRING, "BIDI_STRING" },
4250         { BIDI_TEXT, "BIDI_TEXT" },
4251         { BIDI_ENUM, "BIDI_ENUM" },
4252         { BIDI_BLOB, "BIDI_BLOB" },
4253 { 0, NULL }
4254 };
4255 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4256 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4257 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4258 static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4259 static int spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4260 static int spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4261 static int spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4262 static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4263 static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4264 static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4265 static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4266 static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4267 static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4268 static int spoolss_dissect_element_RPC_BIDI_DATA_u_biData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4269 static int spoolss_dissect_element_RPC_BIDI_DATA_dwBidiType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType);
4270 static int spoolss_dissect_element_RPC_BIDI_DATA_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType);
4271 static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4272 static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4273 static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4274 static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4275 static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4276 static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4277 static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4278 static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4279 static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4280 static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4281 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4282 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4283 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4284 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4285 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4286 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4287 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4288 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4289 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4290 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4291 static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4292 static int spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4293 static int spoolss_dissect_element_CorePrinterDriver_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4294 static int spoolss_dissect_element_CorePrinterDriver_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4295 static int spoolss_dissect_element_CorePrinterDriver_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4296 static int spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4297 const value_string spoolss_RPC_EPrintPropertyType_vals[] = {
4298         { kRpcPropertyTypeString, "kRpcPropertyTypeString" },
4299         { kRpcPropertyTypeInt32, "kRpcPropertyTypeInt32" },
4300         { kRpcPropertyTypeInt64, "kRpcPropertyTypeInt64" },
4301         { kRpcPropertyTypeByte, "kRpcPropertyTypeByte" },
4302         { kRpcPropertyTypeBuffer, "kRpcPropertyTypeBuffer" },
4303 { 0, NULL }
4304 };
4305 static int spoolss_dissect_element_propertyBlob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4306 static int spoolss_dissect_element_propertyBlob_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4307 static int spoolss_dissect_element_propertyBlob_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4308 static int spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4309 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4310 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4311 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4312 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4313 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyByte(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4314 static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4315 static int spoolss_dissect_element_RPC_PrintPropertyValue_ePropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType);
4316 static int spoolss_dissect_element_RPC_PrintPropertyValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType);
4317 static int spoolss_dissect_element_RPC_PrintNamedProperty_propertyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4318 static int spoolss_dissect_element_RPC_PrintNamedProperty_propertyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4319 static int spoolss_dissect_element_RPC_PrintNamedProperty_propertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4320 static int spoolss_dissect_element__spoolss_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4321 static int spoolss_dissect_element__spoolss_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4322 static int spoolss_dissect_element__spoolss_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4323 static int spoolss_dissect_element__spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4324 static int spoolss_dissect_element__spoolss_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4325 static int spoolss_dissect_element__spoolss_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4326 static int spoolss_dissect_element__spoolss_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4327 static int spoolss_dissect_element__spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4328 static int spoolss_dissect_element__spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4329 static int spoolss_dissect_element__spoolss_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4330 static int spoolss_dissect_element__spoolss_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4331 static int spoolss_dissect_element__spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4332 static int spoolss_dissect_element__spoolss_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4333 static int spoolss_dissect_element___spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4334 static int spoolss_dissect_element___spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4335 static int spoolss_dissect_element___spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4336 static int spoolss_dissect_element___spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4337 static int spoolss_dissect_element_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4338 static int spoolss_dissect_element_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4339 static int spoolss_dissect_element_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4340 static int spoolss_dissect_element_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4341 static int spoolss_dissect_element_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4342 static int spoolss_dissect_element_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4343 static int spoolss_dissect_element_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4344 static int spoolss_dissect_element_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4345 static int spoolss_dissect_element_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4346 static int spoolss_dissect_element_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4347 static int spoolss_dissect_element_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4348 static int spoolss_dissect_element_EnumPrinters_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4349 static int spoolss_dissect_element_EnumPrinters_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4350 static int spoolss_dissect_element_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4351 static int spoolss_dissect_element_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4352 static int spoolss_dissect_element_OpenPrinter_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4353 static int spoolss_dissect_element_OpenPrinter_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4354 static int spoolss_dissect_element_OpenPrinter_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4355 static int spoolss_dissect_element_OpenPrinter_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4356 static int spoolss_dissect_element_OpenPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4357 static int spoolss_dissect_element_OpenPrinter_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4358 static int spoolss_dissect_element_OpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4359 static int spoolss_dissect_element_OpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4360 static int spoolss_dissect_element_SetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4361 static int spoolss_dissect_element_SetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4362 static int spoolss_dissect_element_SetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4363 static int spoolss_dissect_element_SetJob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4364 static int spoolss_dissect_element_SetJob_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4365 static int spoolss_dissect_element_SetJob_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4366 static int spoolss_dissect_element_GetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4367 static int spoolss_dissect_element_GetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4368 static int spoolss_dissect_element_GetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4369 static int spoolss_dissect_element_GetJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4370 static int spoolss_dissect_element_GetJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4371 static int spoolss_dissect_element_GetJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4372 static int spoolss_dissect_element_GetJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4373 static int spoolss_dissect_element_GetJob_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4374 static int spoolss_dissect_element_GetJob_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4375 static int spoolss_dissect_element_GetJob_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4376 static int spoolss_dissect_element_GetJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4377 static int spoolss_dissect_element_GetJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4378 static int spoolss_dissect_element__spoolss_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4379 static int spoolss_dissect_element__spoolss_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4380 static int spoolss_dissect_element__spoolss_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4381 static int spoolss_dissect_element__spoolss_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4382 static int spoolss_dissect_element__spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4383 static int spoolss_dissect_element__spoolss_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4384 static int spoolss_dissect_element__spoolss_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4385 static int spoolss_dissect_element__spoolss_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4386 static int spoolss_dissect_element__spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4387 static int spoolss_dissect_element__spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4388 static int spoolss_dissect_element__spoolss_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4389 static int spoolss_dissect_element__spoolss_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4390 static int spoolss_dissect_element__spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4391 static int spoolss_dissect_element__spoolss_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4392 static int spoolss_dissect_element___spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4393 static int spoolss_dissect_element___spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4394 static int spoolss_dissect_element___spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4395 static int spoolss_dissect_element___spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4396 static int spoolss_dissect_element_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4397 static int spoolss_dissect_element_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4398 static int spoolss_dissect_element_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4399 static int spoolss_dissect_element_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4400 static int spoolss_dissect_element_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4401 static int spoolss_dissect_element_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4402 static int spoolss_dissect_element_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4403 static int spoolss_dissect_element_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4404 static int spoolss_dissect_element_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4405 static int spoolss_dissect_element_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4406 static int spoolss_dissect_element_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4407 static int spoolss_dissect_element_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4408 static int spoolss_dissect_element_EnumJobs_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4409 static int spoolss_dissect_element_EnumJobs_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4410 static int spoolss_dissect_element_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4411 static int spoolss_dissect_element_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4412 static int spoolss_dissect_element_AddPrinter_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4413 static int spoolss_dissect_element_AddPrinter_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4414 static int spoolss_dissect_element_AddPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4415 static int spoolss_dissect_element_AddPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4416 static int spoolss_dissect_element_AddPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4417 static int spoolss_dissect_element_AddPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4418 static int spoolss_dissect_element_AddPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4419 static int spoolss_dissect_element_AddPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4420 static int spoolss_dissect_element_AddPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4421 static int spoolss_dissect_element_AddPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4422 static int spoolss_dissect_element_DeletePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4423 static int spoolss_dissect_element_DeletePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4424 static int spoolss_dissect_element_SetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4425 static int spoolss_dissect_element_SetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4426 static int spoolss_dissect_element_SetPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4427 static int spoolss_dissect_element_SetPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4428 static int spoolss_dissect_element_SetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4429 static int spoolss_dissect_element_SetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4430 static int spoolss_dissect_element_SetPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4431 static int spoolss_dissect_element_SetPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4432 static int spoolss_dissect_element_SetPrinter_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4433 static int spoolss_dissect_element_GetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4434 static int spoolss_dissect_element_GetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4435 static int spoolss_dissect_element_GetPrinter_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4436 static int spoolss_dissect_element_GetPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4437 static int spoolss_dissect_element_GetPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4438 static int spoolss_dissect_element_GetPrinter_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4439 static int spoolss_dissect_element_GetPrinter_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4440 static int spoolss_dissect_element_GetPrinter_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4441 static int spoolss_dissect_element_GetPrinter_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4442 static int spoolss_dissect_element_GetPrinter_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4443 static int spoolss_dissect_element_GetPrinter_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4444 static int spoolss_dissect_element_AddPrinterDriver_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4445 static int spoolss_dissect_element_AddPrinterDriver_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4446 static int spoolss_dissect_element_AddPrinterDriver_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4447 static int spoolss_dissect_element_AddPrinterDriver_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4448 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4449 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4450 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4451 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4452 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4453 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4454 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4455 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4456 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4457 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4458 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4459 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4460 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4461 static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4462 static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4463 static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4464 static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4465 static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4466 static int spoolss_dissect_element_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4467 static int spoolss_dissect_element_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4468 static int spoolss_dissect_element_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4469 static int spoolss_dissect_element_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4470 static int spoolss_dissect_element_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4471 static int spoolss_dissect_element_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4472 static int spoolss_dissect_element_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4473 static int spoolss_dissect_element_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4474 static int spoolss_dissect_element_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4475 static int spoolss_dissect_element_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4476 static int spoolss_dissect_element_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4477 static int spoolss_dissect_element_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4478 static int spoolss_dissect_element_EnumPrinterDrivers_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4479 static int spoolss_dissect_element_EnumPrinterDrivers_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4480 static int spoolss_dissect_element_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4481 static int spoolss_dissect_element_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4482 static int spoolss_dissect_element_GetPrinterDriver_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4483 static int spoolss_dissect_element_GetPrinterDriver_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4484 static int spoolss_dissect_element_GetPrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4485 static int spoolss_dissect_element_GetPrinterDriver_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4486 static int spoolss_dissect_element_GetPrinterDriver_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4487 static int spoolss_dissect_element_GetPrinterDriver_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4488 static int spoolss_dissect_element_GetPrinterDriver_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4489 static int spoolss_dissect_element_GetPrinterDriver_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4490 static int spoolss_dissect_element_GetPrinterDriver_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4491 static int spoolss_dissect_element_GetPrinterDriver_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4492 static int spoolss_dissect_element_GetPrinterDriver_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4493 static int spoolss_dissect_element_GetPrinterDriver_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4494 static int spoolss_dissect_element_GetPrinterDriver_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4495 static int spoolss_dissect_element_GetPrinterDriverDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4496 static int spoolss_dissect_element_GetPrinterDriverDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4497 static int spoolss_dissect_element_GetPrinterDriverDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4498 static int spoolss_dissect_element_GetPrinterDriverDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4499 static int spoolss_dissect_element_GetPrinterDriverDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4500 static int spoolss_dissect_element_GetPrinterDriverDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4501 static int spoolss_dissect_element_GetPrinterDriverDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4502 static int spoolss_dissect_element_GetPrinterDriverDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4503 static int spoolss_dissect_element_GetPrinterDriverDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4504 static int spoolss_dissect_element_GetPrinterDriverDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4505 static int spoolss_dissect_element_GetPrinterDriverDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4506 static int spoolss_dissect_element_GetPrinterDriverDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4507 static int spoolss_dissect_element_GetPrinterDriverDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4508 static int spoolss_dissect_element_DeletePrinterDriver_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4509 static int spoolss_dissect_element_DeletePrinterDriver_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4510 static int spoolss_dissect_element_DeletePrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4511 static int spoolss_dissect_element_DeletePrinterDriver_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4512 static int spoolss_dissect_element_AddPrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4513 static int spoolss_dissect_element_AddPrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4514 static int spoolss_dissect_element_AddPrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4515 static int spoolss_dissect_element_AddPrintProcessor_path_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4516 static int spoolss_dissect_element_AddPrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4517 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4518 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4519 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4520 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4521 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4522 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4523 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4524 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4525 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4526 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4527 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4528 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4529 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4530 static int spoolss_dissect_element__spoolss_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4531 static int spoolss_dissect_element___spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4532 static int spoolss_dissect_element___spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4533 static int spoolss_dissect_element___spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4534 static int spoolss_dissect_element___spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4535 static int spoolss_dissect_element_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4536 static int spoolss_dissect_element_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4537 static int spoolss_dissect_element_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4538 static int spoolss_dissect_element_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4539 static int spoolss_dissect_element_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4540 static int spoolss_dissect_element_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4541 static int spoolss_dissect_element_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4542 static int spoolss_dissect_element_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4543 static int spoolss_dissect_element_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4544 static int spoolss_dissect_element_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4545 static int spoolss_dissect_element_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4546 static int spoolss_dissect_element_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4547 static int spoolss_dissect_element_EnumPrintProcessors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4548 static int spoolss_dissect_element_EnumPrintProcessors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4549 static int spoolss_dissect_element_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4550 static int spoolss_dissect_element_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4551 static int spoolss_dissect_element_GetPrintProcessorDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4552 static int spoolss_dissect_element_GetPrintProcessorDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4553 static int spoolss_dissect_element_GetPrintProcessorDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4554 static int spoolss_dissect_element_GetPrintProcessorDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4555 static int spoolss_dissect_element_GetPrintProcessorDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4556 static int spoolss_dissect_element_GetPrintProcessorDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4557 static int spoolss_dissect_element_GetPrintProcessorDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4558 static int spoolss_dissect_element_GetPrintProcessorDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4559 static int spoolss_dissect_element_GetPrintProcessorDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4560 static int spoolss_dissect_element_GetPrintProcessorDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4561 static int spoolss_dissect_element_GetPrintProcessorDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4562 static int spoolss_dissect_element_GetPrintProcessorDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4563 static int spoolss_dissect_element_GetPrintProcessorDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4564 static int spoolss_dissect_element_StartDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4565 static int spoolss_dissect_element_StartDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4566 static int spoolss_dissect_element_StartDocPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4567 static int spoolss_dissect_element_StartDocPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4568 static int spoolss_dissect_element_StartDocPrinter_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4569 static int spoolss_dissect_element_StartDocPrinter_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4570 static int spoolss_dissect_element_StartPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4571 static int spoolss_dissect_element_StartPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4572 static int spoolss_dissect_element_WritePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4573 static int spoolss_dissect_element_WritePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4574 static int spoolss_dissect_element_WritePrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4575 static int spoolss_dissect_element_WritePrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4576 static int spoolss_dissect_element_WritePrinter_num_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4577 static int spoolss_dissect_element_WritePrinter_num_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4578 static int spoolss_dissect_element_EndPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4579 static int spoolss_dissect_element_EndPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4580 static int spoolss_dissect_element_AbortPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4581 static int spoolss_dissect_element_AbortPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4582 static int spoolss_dissect_element_ReadPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4583 static int spoolss_dissect_element_ReadPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4584 static int spoolss_dissect_element_ReadPrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4585 static int spoolss_dissect_element_ReadPrinter_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4586 static int spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4587 static int spoolss_dissect_element_ReadPrinter_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4588 static int spoolss_dissect_element_ReadPrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4589 static int spoolss_dissect_element_ReadPrinter__data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4590 static int spoolss_dissect_element_EndDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4591 static int spoolss_dissect_element_EndDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4592 static int spoolss_dissect_element_AddJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4593 static int spoolss_dissect_element_AddJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4594 static int spoolss_dissect_element_AddJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4595 static int spoolss_dissect_element_AddJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4596 static int spoolss_dissect_element_AddJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4597 static int spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4598 static int spoolss_dissect_element_AddJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4599 static int spoolss_dissect_element_AddJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4600 static int spoolss_dissect_element_AddJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4601 static int spoolss_dissect_element_ScheduleJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4602 static int spoolss_dissect_element_ScheduleJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4603 static int spoolss_dissect_element_ScheduleJob_jobid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4604 static int spoolss_dissect_element_GetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4605 static int spoolss_dissect_element_GetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4606 static int spoolss_dissect_element_GetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4607 static int spoolss_dissect_element_GetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4608 static int spoolss_dissect_element_GetPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4609 static int spoolss_dissect_element_GetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4610 static int spoolss_dissect_element_GetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4611 static int spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4612 static int spoolss_dissect_element_GetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4613 static int spoolss_dissect_element_GetPrinterData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4614 static int spoolss_dissect_element_GetPrinterData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4615 static int spoolss_dissect_element_SetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4616 static int spoolss_dissect_element_SetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4617 static int spoolss_dissect_element_SetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4618 static int spoolss_dissect_element_SetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4619 static int spoolss_dissect_element_SetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4620 static int spoolss_dissect_element_SetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4621 static int spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4622 static int spoolss_dissect_element_SetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4623 static int spoolss_dissect_element_ClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4624 static int spoolss_dissect_element_ClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4625 static int spoolss_dissect_element_AddForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4626 static int spoolss_dissect_element_AddForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4627 static int spoolss_dissect_element_AddForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4628 static int spoolss_dissect_element_AddForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4629 static int spoolss_dissect_element_DeleteForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4630 static int spoolss_dissect_element_DeleteForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4631 static int spoolss_dissect_element_DeleteForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4632 static int spoolss_dissect_element_GetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4633 static int spoolss_dissect_element_GetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4634 static int spoolss_dissect_element_GetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4635 static int spoolss_dissect_element_GetForm_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4636 static int spoolss_dissect_element_GetForm_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4637 static int spoolss_dissect_element_GetForm_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4638 static int spoolss_dissect_element_GetForm_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4639 static int spoolss_dissect_element_GetForm_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4640 static int spoolss_dissect_element_GetForm_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4641 static int spoolss_dissect_element_GetForm_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4642 static int spoolss_dissect_element_GetForm_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4643 static int spoolss_dissect_element_GetForm_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4644 static int spoolss_dissect_element_SetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4645 static int spoolss_dissect_element_SetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4646 static int spoolss_dissect_element_SetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4647 static int spoolss_dissect_element_SetForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4648 static int spoolss_dissect_element_SetForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4649 static int spoolss_dissect_element__spoolss_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4650 static int spoolss_dissect_element__spoolss_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4651 static int spoolss_dissect_element__spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4652 static int spoolss_dissect_element__spoolss_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4653 static int spoolss_dissect_element__spoolss_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4654 static int spoolss_dissect_element__spoolss_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4655 static int spoolss_dissect_element__spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4656 static int spoolss_dissect_element__spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4657 static int spoolss_dissect_element__spoolss_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4658 static int spoolss_dissect_element__spoolss_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4659 static int spoolss_dissect_element__spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4660 static int spoolss_dissect_element__spoolss_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4661 static int spoolss_dissect_element___spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4662 static int spoolss_dissect_element___spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4663 static int spoolss_dissect_element___spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4664 static int spoolss_dissect_element___spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4665 static int spoolss_dissect_element_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4666 static int spoolss_dissect_element_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4667 static int spoolss_dissect_element_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4668 static int spoolss_dissect_element_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4669 static int spoolss_dissect_element_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4670 static int spoolss_dissect_element_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4671 static int spoolss_dissect_element_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4672 static int spoolss_dissect_element_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4673 static int spoolss_dissect_element_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4674 static int spoolss_dissect_element_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4675 static int spoolss_dissect_element_EnumForms_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4676 static int spoolss_dissect_element_EnumForms_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4677 static int spoolss_dissect_element_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4678 static int spoolss_dissect_element_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4679 static int spoolss_dissect_element__spoolss_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4680 static int spoolss_dissect_element__spoolss_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4681 static int spoolss_dissect_element__spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4682 static int spoolss_dissect_element__spoolss_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4683 static int spoolss_dissect_element__spoolss_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4684 static int spoolss_dissect_element__spoolss_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4685 static int spoolss_dissect_element__spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4686 static int spoolss_dissect_element__spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4687 static int spoolss_dissect_element__spoolss_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4688 static int spoolss_dissect_element__spoolss_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4689 static int spoolss_dissect_element__spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4690 static int spoolss_dissect_element__spoolss_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4691 static int spoolss_dissect_element___spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4692 static int spoolss_dissect_element___spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4693 static int spoolss_dissect_element___spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4694 static int spoolss_dissect_element___spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4695 static int spoolss_dissect_element_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4696 static int spoolss_dissect_element_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4697 static int spoolss_dissect_element_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4698 static int spoolss_dissect_element_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4699 static int spoolss_dissect_element_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4700 static int spoolss_dissect_element_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4701 static int spoolss_dissect_element_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4702 static int spoolss_dissect_element_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4703 static int spoolss_dissect_element_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4704 static int spoolss_dissect_element_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4705 static int spoolss_dissect_element_EnumPorts_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4706 static int spoolss_dissect_element_EnumPorts_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4707 static int spoolss_dissect_element_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4708 static int spoolss_dissect_element_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4709 static int spoolss_dissect_element__spoolss_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4710 static int spoolss_dissect_element__spoolss_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4711 static int spoolss_dissect_element__spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4712 static int spoolss_dissect_element__spoolss_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4713 static int spoolss_dissect_element__spoolss_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4714 static int spoolss_dissect_element__spoolss_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4715 static int spoolss_dissect_element__spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4716 static int spoolss_dissect_element__spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4717 static int spoolss_dissect_element__spoolss_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4718 static int spoolss_dissect_element__spoolss_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4719 static int spoolss_dissect_element__spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4720 static int spoolss_dissect_element__spoolss_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4721 static int spoolss_dissect_element___spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4722 static int spoolss_dissect_element___spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4723 static int spoolss_dissect_element___spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4724 static int spoolss_dissect_element___spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4725 static int spoolss_dissect_element_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4726 static int spoolss_dissect_element_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4727 static int spoolss_dissect_element_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4728 static int spoolss_dissect_element_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4729 static int spoolss_dissect_element_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4730 static int spoolss_dissect_element_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4731 static int spoolss_dissect_element_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4732 static int spoolss_dissect_element_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4733 static int spoolss_dissect_element_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4734 static int spoolss_dissect_element_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4735 static int spoolss_dissect_element_EnumMonitors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4736 static int spoolss_dissect_element_EnumMonitors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4737 static int spoolss_dissect_element_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4738 static int spoolss_dissect_element_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4739 static int spoolss_dissect_element_AddPort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4740 static int spoolss_dissect_element_AddPort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4741 static int spoolss_dissect_element_AddPort_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4742 static int spoolss_dissect_element_AddPort_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4743 static int spoolss_dissect_element_DeletePort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4744 static int spoolss_dissect_element_DeletePort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4745 static int spoolss_dissect_element_DeletePort_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4746 static int spoolss_dissect_element_DeletePort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4747 static int spoolss_dissect_element_DeletePort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4748 static int spoolss_dissect_element_CreatePrinterIC_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4749 static int spoolss_dissect_element_CreatePrinterIC_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4750 static int spoolss_dissect_element_CreatePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4751 static int spoolss_dissect_element_CreatePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4752 static int spoolss_dissect_element_CreatePrinterIC_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4753 static int spoolss_dissect_element_CreatePrinterIC_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4754 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4755 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4756 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4757 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4758 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4759 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4760 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4761 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4762 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4763 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4764 static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4765 static int spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4766 static int spoolss_dissect_element_DeletePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4767 static int spoolss_dissect_element_DeletePrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4768 static int spoolss_dissect_element_DeletePrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4769 static int spoolss_dissect_element_DeletePrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4770 static int spoolss_dissect_element_DeletePrintProcessor_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4771 static int spoolss_dissect_element_DeletePrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4772 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4773 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4774 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4775 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4776 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4777 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4778 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4779 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4780 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4781 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4782 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4783 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4784 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4785 static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4786 static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4787 static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4788 static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4789 static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4790 static int spoolss_dissect_element_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4791 static int spoolss_dissect_element_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4792 static int spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4793 static int spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4794 static int spoolss_dissect_element_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4795 static int spoolss_dissect_element_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4796 static int spoolss_dissect_element_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4797 static int spoolss_dissect_element_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4798 static int spoolss_dissect_element_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4799 static int spoolss_dissect_element_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4800 static int spoolss_dissect_element_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4801 static int spoolss_dissect_element_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4802 static int spoolss_dissect_element_EnumPrintProcDataTypes_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4803 static int spoolss_dissect_element_EnumPrintProcDataTypes_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4804 static int spoolss_dissect_element_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4805 static int spoolss_dissect_element_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4806 static int spoolss_dissect_element_ResetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4807 static int spoolss_dissect_element_ResetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4808 static int spoolss_dissect_element_ResetPrinter_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4809 static int spoolss_dissect_element_ResetPrinter_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4810 static int spoolss_dissect_element_ResetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4811 static int spoolss_dissect_element_ResetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4812 static int spoolss_dissect_element_GetPrinterDriver2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4813 static int spoolss_dissect_element_GetPrinterDriver2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4814 static int spoolss_dissect_element_GetPrinterDriver2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4815 static int spoolss_dissect_element_GetPrinterDriver2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4816 static int spoolss_dissect_element_GetPrinterDriver2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4817 static int spoolss_dissect_element_GetPrinterDriver2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4818 static int spoolss_dissect_element_GetPrinterDriver2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4819 static int spoolss_dissect_element_GetPrinterDriver2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4820 static int spoolss_dissect_element_GetPrinterDriver2_client_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4821 static int spoolss_dissect_element_GetPrinterDriver2_client_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4822 static int spoolss_dissect_element_GetPrinterDriver2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4823 static int spoolss_dissect_element_GetPrinterDriver2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4824 static int spoolss_dissect_element_GetPrinterDriver2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4825 static int spoolss_dissect_element_GetPrinterDriver2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4826 static int spoolss_dissect_element_GetPrinterDriver2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4827 static int spoolss_dissect_element_GetPrinterDriver2_server_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4828 static int spoolss_dissect_element_GetPrinterDriver2_server_major_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4829 static int spoolss_dissect_element_GetPrinterDriver2_server_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4830 static int spoolss_dissect_element_GetPrinterDriver2_server_minor_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4831 static int spoolss_dissect_element_FindClosePrinterNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4832 static int spoolss_dissect_element_FindClosePrinterNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4833 static int spoolss_dissect_element_ReplyOpenPrinter_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4834 static int spoolss_dissect_element_ReplyOpenPrinter_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4835 static int spoolss_dissect_element_ReplyOpenPrinter_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4836 static int spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4837 static int spoolss_dissect_element_ReplyOpenPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4838 static int spoolss_dissect_element_ReplyOpenPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4839 static int spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4840 static int spoolss_dissect_element_ReplyOpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4841 static int spoolss_dissect_element_ReplyOpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4842 static int spoolss_dissect_element_RouterReplyPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4843 static int spoolss_dissect_element_RouterReplyPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4844 static int spoolss_dissect_element_RouterReplyPrinter_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4845 static int spoolss_dissect_element_RouterReplyPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4846 static int spoolss_dissect_element_RouterReplyPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4847 static int spoolss_dissect_element_RouterReplyPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4848 static int spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4849 static int spoolss_dissect_element_ReplyClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4850 static int spoolss_dissect_element_ReplyClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4851 static int spoolss_dissect_element_AddPortEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4852 static int spoolss_dissect_element_AddPortEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4853 static int spoolss_dissect_element_AddPortEx_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4854 static int spoolss_dissect_element_AddPortEx_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4855 static int spoolss_dissect_element_AddPortEx_port_var_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4856 static int spoolss_dissect_element_AddPortEx_port_var_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4857 static int spoolss_dissect_element_AddPortEx_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4858 static int spoolss_dissect_element_AddPortEx_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4859 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4860 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4861 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4862 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4863 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4864 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4865 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4866 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4867 static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4868 static int spoolss_dissect_element_RouterReplyPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4869 static int spoolss_dissect_element_RouterReplyPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4870 static int spoolss_dissect_element_RouterReplyPrinterEx_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4871 static int spoolss_dissect_element_RouterReplyPrinterEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4872 static int spoolss_dissect_element_RouterReplyPrinterEx_reply_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4873 static int spoolss_dissect_element_RouterReplyPrinterEx_reply_result_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4874 static int spoolss_dissect_element_RouterReplyPrinterEx_reply_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4875 static int spoolss_dissect_element_RouterReplyPrinterEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4876 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4877 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4878 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_change_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4879 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4880 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4881 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4882 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4883 static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4884 static int spoolss_dissect_element_OpenPrinterEx_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4885 static int spoolss_dissect_element_OpenPrinterEx_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4886 static int spoolss_dissect_element_OpenPrinterEx_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4887 static int spoolss_dissect_element_OpenPrinterEx_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4888 static int spoolss_dissect_element_OpenPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4889 static int spoolss_dissect_element_OpenPrinterEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4890 static int spoolss_dissect_element_OpenPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4891 static int spoolss_dissect_element_OpenPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4892 static int spoolss_dissect_element_OpenPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4893 static int spoolss_dissect_element_AddPrinterEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4894 static int spoolss_dissect_element_AddPrinterEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4895 static int spoolss_dissect_element_AddPrinterEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4896 static int spoolss_dissect_element_AddPrinterEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4897 static int spoolss_dissect_element_AddPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4898 static int spoolss_dissect_element_AddPrinterEx_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4899 static int spoolss_dissect_element_AddPrinterEx_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4900 static int spoolss_dissect_element_AddPrinterEx_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4901 static int spoolss_dissect_element_AddPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4902 static int spoolss_dissect_element_AddPrinterEx_userlevel_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4903 static int spoolss_dissect_element_AddPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4904 static int spoolss_dissect_element_AddPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4905 static int spoolss_dissect_element_SetPort_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4906 static int spoolss_dissect_element_SetPort_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4907 static int spoolss_dissect_element_SetPort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4908 static int spoolss_dissect_element_SetPort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4909 static int spoolss_dissect_element_SetPort_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4910 static int spoolss_dissect_element_SetPort_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4911 static int spoolss_dissect_element_EnumPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4912 static int spoolss_dissect_element_EnumPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4913 static int spoolss_dissect_element_EnumPrinterData_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4914 static int spoolss_dissect_element_EnumPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4915 static int spoolss_dissect_element_EnumPrinterData_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4916 static int spoolss_dissect_element_EnumPrinterData_value_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4917 static int spoolss_dissect_element_EnumPrinterData_value_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4918 static int spoolss_dissect_element_EnumPrinterData_value_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4919 static int spoolss_dissect_element_EnumPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4920 static int spoolss_dissect_element_EnumPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4921 static int spoolss_dissect_element_EnumPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4922 static int spoolss_dissect_element_EnumPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4923 static int spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4924 static int spoolss_dissect_element_EnumPrinterData_data_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4925 static int spoolss_dissect_element_EnumPrinterData_data_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4926 static int spoolss_dissect_element_EnumPrinterData_data_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4927 static int spoolss_dissect_element_DeletePrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4928 static int spoolss_dissect_element_DeletePrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4929 static int spoolss_dissect_element_DeletePrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4930 static int spoolss_dissect_element_SetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4931 static int spoolss_dissect_element_SetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4932 static int spoolss_dissect_element_SetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4933 static int spoolss_dissect_element_SetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4934 static int spoolss_dissect_element_SetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4935 static int spoolss_dissect_element_SetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4936 static int spoolss_dissect_element_SetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4937 static int spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4938 static int spoolss_dissect_element_SetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4939 static int spoolss_dissect_element_GetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4940 static int spoolss_dissect_element_GetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4941 static int spoolss_dissect_element_GetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4942 static int spoolss_dissect_element_GetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4943 static int spoolss_dissect_element_GetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4944 static int spoolss_dissect_element_GetPrinterDataEx_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4945 static int spoolss_dissect_element_GetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4946 static int spoolss_dissect_element_GetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4947 static int spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4948 static int spoolss_dissect_element_GetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4949 static int spoolss_dissect_element_GetPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4950 static int spoolss_dissect_element_GetPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4951 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4952 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4953 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4954 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4955 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4956 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4957 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4958 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4959 static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4960 static int spoolss_dissect_element___spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4961 static int spoolss_dissect_element___spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4962 static int spoolss_dissect_element___spoolss_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4963 static int spoolss_dissect_element_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4964 static int spoolss_dissect_element_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4965 static int spoolss_dissect_element_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4966 static int spoolss_dissect_element_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4967 static int spoolss_dissect_element_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4968 static int spoolss_dissect_element_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4969 static int spoolss_dissect_element_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4970 static int spoolss_dissect_element_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4971 static int spoolss_dissect_element_EnumPrinterDataEx_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4972 static int spoolss_dissect_element_EnumPrinterDataEx_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4973 static int spoolss_dissect_element_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4974 static int spoolss_dissect_element_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4975 static int spoolss_dissect_element_EnumPrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4976 static int spoolss_dissect_element_EnumPrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4977 static int spoolss_dissect_element_EnumPrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4978 static int spoolss_dissect_element_EnumPrinterKey__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4979 static int spoolss_dissect_element_EnumPrinterKey__ndr_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4980 static int spoolss_dissect_element_EnumPrinterKey_key_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4981 static int spoolss_dissect_element_EnumPrinterKey_key_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4982 static int spoolss_dissect_element_EnumPrinterKey_key_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4983 static int spoolss_dissect_element_EnumPrinterKey_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4984 static int spoolss_dissect_element_EnumPrinterKey_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4985 static int spoolss_dissect_element_EnumPrinterKey_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4986 static int spoolss_dissect_element_DeletePrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4987 static int spoolss_dissect_element_DeletePrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4988 static int spoolss_dissect_element_DeletePrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4989 static int spoolss_dissect_element_DeletePrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4990 static int spoolss_dissect_element_DeletePrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4991 static int spoolss_dissect_element_DeletePrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4992 static int spoolss_dissect_element_DeletePrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4993 static int spoolss_dissect_element_DeletePrinterDriverEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4994 static int spoolss_dissect_element_DeletePrinterDriverEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4995 static int spoolss_dissect_element_DeletePrinterDriverEx_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4996 static int spoolss_dissect_element_DeletePrinterDriverEx_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4997 static int spoolss_dissect_element_DeletePrinterDriverEx_delete_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4998 static int spoolss_dissect_element_DeletePrinterDriverEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
4999 static int spoolss_dissect_element_AddPerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5000 static int spoolss_dissect_element_AddPerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5001 static int spoolss_dissect_element_AddPerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5002 static int spoolss_dissect_element_AddPerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5003 static int spoolss_dissect_element_AddPerMachineConnection_printserver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5004 static int spoolss_dissect_element_AddPerMachineConnection_printserver_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5005 static int spoolss_dissect_element_AddPerMachineConnection_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5006 static int spoolss_dissect_element_AddPerMachineConnection_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5007 static int spoolss_dissect_element_DeletePerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5008 static int spoolss_dissect_element_DeletePerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5009 static int spoolss_dissect_element_DeletePerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5010 static int spoolss_dissect_element_DeletePerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5011 static int spoolss_dissect_element_XcvData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5012 static int spoolss_dissect_element_XcvData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5013 static int spoolss_dissect_element_XcvData_function_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5014 static int spoolss_dissect_element_XcvData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5015 static int spoolss_dissect_element_XcvData__in_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5016 static int spoolss_dissect_element_XcvData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5017 static int spoolss_dissect_element_XcvData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5018 static int spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5019 static int spoolss_dissect_element_XcvData_out_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5020 static int spoolss_dissect_element_XcvData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5021 static int spoolss_dissect_element_XcvData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5022 static int spoolss_dissect_element_XcvData_status_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5023 static int spoolss_dissect_element_XcvData_status_code_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5024 static int spoolss_dissect_element_AddPrinterDriverEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5025 static int spoolss_dissect_element_AddPrinterDriverEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5026 static int spoolss_dissect_element_AddPrinterDriverEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5027 static int spoolss_dissect_element_AddPrinterDriverEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5028 static int spoolss_dissect_element_AddPrinterDriverEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5029 static int spoolss_dissect_element_RpcSendRecvBidiData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5030 static int spoolss_dissect_element_RpcSendRecvBidiData_pAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5031 static int spoolss_dissect_element_RpcSendRecvBidiData_pAction_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5032 static int spoolss_dissect_element_RpcSendRecvBidiData_pReqData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5033 static int spoolss_dissect_element_RpcSendRecvBidiData_pReqData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5034 static int spoolss_dissect_element_RpcSendRecvBidiData_ppRespData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5035 static int spoolss_dissect_element_RpcSendRecvBidiData_ppRespData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5036 static int spoolss_dissect_element_RpcSendRecvBidiData_ppRespData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5037 static int spoolss_dissect_element_GetCorePrinterDrivers_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5038 static int spoolss_dissect_element_GetCorePrinterDrivers_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5039 static int spoolss_dissect_element_GetCorePrinterDrivers_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5040 static int spoolss_dissect_element_GetCorePrinterDrivers_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5041 static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5042 static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5043 static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5044 static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5045 static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_driver_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5046 static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5047 static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5048 static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5049 static int spoolss_dissect_element_GetPrinterDriverPackagePath_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5050 static int spoolss_dissect_element_GetPrinterDriverPackagePath_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5051 static int spoolss_dissect_element_GetPrinterDriverPackagePath_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5052 static int spoolss_dissect_element_GetPrinterDriverPackagePath_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5053 static int spoolss_dissect_element_GetPrinterDriverPackagePath_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5054 static int spoolss_dissect_element_GetPrinterDriverPackagePath_language_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5055 static int spoolss_dissect_element_GetPrinterDriverPackagePath_package_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5056 static int spoolss_dissect_element_GetPrinterDriverPackagePath_package_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5057 static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5058 static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5059 static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5060 static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5061 static int spoolss_dissect_element_GetPrinterDriverPackagePath_required(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5062 static int spoolss_dissect_element_GetPrinterDriverPackagePath_required_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5063 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5064 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5065 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5066 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5067 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5068 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5069 static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5070 static int spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5071 static int spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5072 static int spoolss_dissect_element_RpcSetJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5073 static int spoolss_dissect_element_RpcSetJobNamedProperty_pProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5074 static int spoolss_dissect_element_RpcSetJobNamedProperty_pProperty_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5075 static int spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5076 static int spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5077 static int spoolss_dissect_element_RpcDeleteJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5078 static int spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5079 static int spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5080 static int spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5081 static int spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5082 static int spoolss_dissect_element_RpcEnumJobNamedProperties_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5083 static int spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5084 static int spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5085 static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5086 static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5087 static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5088 static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
5089
5090
5091 /* IDL: enum { */
5092 /* IDL: } */
5093
5094 int
5095 spoolss_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_)
5096 {
5097         guint32 parameter=0;
5098         if(param){
5099                 parameter=(guint32)*param;
5100         }
5101         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
5102         if(param){
5103                 *param=(guint32)parameter;
5104         }
5105         return offset;
5106 }
5107
5108
5109 /* IDL: struct { */
5110 /* IDL:         uint16 year; */
5111 /* IDL:         uint16 month; */
5112 /* IDL:         uint16 day_of_week; */
5113 /* IDL:         uint16 day; */
5114 /* IDL:         uint16 hour; */
5115 /* IDL:         uint16 minute; */
5116 /* IDL:         uint16 second; */
5117 /* IDL:         uint16 millisecond; */
5118 /* IDL: } */
5119
5120 static int
5121 spoolss_dissect_element_Time_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5122 {
5123         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_year, 0);
5124
5125         return offset;
5126 }
5127
5128 static int
5129 spoolss_dissect_element_Time_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5130 {
5131         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_month, 0);
5132
5133         return offset;
5134 }
5135
5136 static int
5137 spoolss_dissect_element_Time_day_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5138 {
5139         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_day_of_week, 0);
5140
5141         return offset;
5142 }
5143
5144 static int
5145 spoolss_dissect_element_Time_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5146 {
5147         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_day, 0);
5148
5149         return offset;
5150 }
5151
5152 static int
5153 spoolss_dissect_element_Time_hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5154 {
5155         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_hour, 0);
5156
5157         return offset;
5158 }
5159
5160 static int
5161 spoolss_dissect_element_Time_minute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5162 {
5163         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_minute, 0);
5164
5165         return offset;
5166 }
5167
5168 static int
5169 spoolss_dissect_element_Time_second(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5170 {
5171         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_second, 0);
5172
5173         return offset;
5174 }
5175
5176 static int
5177 spoolss_dissect_element_Time_millisecond(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5178 {
5179         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_millisecond, 0);
5180
5181         return offset;
5182 }
5183
5184 int
5185 spoolss_dissect_struct_Time(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_)
5186 {
5187         proto_item *item = NULL;
5188         proto_tree *tree = NULL;
5189         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5190         int old_offset;
5191
5192         ALIGN_TO_2_BYTES;
5193
5194         old_offset = offset;
5195
5196         if (parent_tree) {
5197                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5198                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_Time);
5199         }
5200         
5201         offset = spoolss_dissect_element_Time_year(tvb, offset, pinfo, tree, drep);
5202
5203         offset = spoolss_dissect_element_Time_month(tvb, offset, pinfo, tree, drep);
5204
5205         offset = spoolss_dissect_element_Time_day_of_week(tvb, offset, pinfo, tree, drep);
5206
5207         offset = spoolss_dissect_element_Time_day(tvb, offset, pinfo, tree, drep);
5208
5209         offset = spoolss_dissect_element_Time_hour(tvb, offset, pinfo, tree, drep);
5210
5211         offset = spoolss_dissect_element_Time_minute(tvb, offset, pinfo, tree, drep);
5212
5213         offset = spoolss_dissect_element_Time_second(tvb, offset, pinfo, tree, drep);
5214
5215         offset = spoolss_dissect_element_Time_millisecond(tvb, offset, pinfo, tree, drep);
5216
5217
5218         proto_item_set_len(item, offset-old_offset);
5219
5220
5221         if (di->call_data->flags & DCERPC_IS_NDR64) {
5222                 ALIGN_TO_2_BYTES;
5223         }
5224
5225         return offset;
5226 }
5227
5228
5229 /* IDL: struct { */
5230 /* IDL:         [value(ndr_size_spoolss_Time(time,ndr->flags))] uint32 size; */
5231 /* IDL:         [unique(1)] spoolss_Time *time; */
5232 /* IDL: } */
5233
5234 static int
5235 spoolss_dissect_element_TimeCtr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5236 {
5237         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_TimeCtr_size, 0);
5238
5239         return offset;
5240 }
5241
5242 static int
5243 spoolss_dissect_element_TimeCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5244 {
5245         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_TimeCtr_time_, NDR_POINTER_UNIQUE, "Pointer to Time (spoolss_Time)",hf_spoolss_spoolss_TimeCtr_time);
5246
5247         return offset;
5248 }
5249
5250 static int
5251 spoolss_dissect_element_TimeCtr_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5252 {
5253         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_TimeCtr_time,0);
5254
5255         return offset;
5256 }
5257
5258 int
5259 spoolss_dissect_struct_TimeCtr(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_)
5260 {
5261         proto_item *item = NULL;
5262         proto_tree *tree = NULL;
5263         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
5264         int old_offset;
5265
5266         ALIGN_TO_5_BYTES;
5267
5268         old_offset = offset;
5269
5270         if (parent_tree) {
5271                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5272                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_TimeCtr);
5273         }
5274         
5275         offset = spoolss_dissect_element_TimeCtr_size(tvb, offset, pinfo, tree, drep);
5276
5277         offset = spoolss_dissect_element_TimeCtr_time(tvb, offset, pinfo, tree, drep);
5278
5279
5280         proto_item_set_len(item, offset-old_offset);
5281
5282
5283         if (di->call_data->flags & DCERPC_IS_NDR64) {
5284                 ALIGN_TO_5_BYTES;
5285         }
5286
5287         return offset;
5288 }
5289
5290
5291 /* IDL: enum { */
5292 /* IDL:         PROCESSOR_ARCHITECTURE_INTEL=0x0000, */
5293 /* IDL:         PROCESSOR_ARCHITECTURE_ARM=0x0005, */
5294 /* IDL:         PROCESSOR_ARCHITECTURE_IA64=0x0006, */
5295 /* IDL:         PROCESSOR_ARCHITECTURE_AMD64=0x0009, */
5296 /* IDL: } */
5297
5298 int
5299 spoolss_dissect_enum_ProcessorArchitecture(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_)
5300 {
5301         guint1632 parameter=0;
5302         if(param){
5303                 parameter=(guint1632)*param;
5304         }
5305         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
5306         if(param){
5307                 *param=(guint32)parameter;
5308         }
5309         return offset;
5310 }
5311
5312
5313 /* IDL: enum { */
5314 /* IDL:         PROCESSOR_ARM=0x00000000, */
5315 /* IDL:         PROCESSOR_INTEL_386=0x00000182, */
5316 /* IDL:         PROCESSOR_INTEL_486=0x000001E6, */
5317 /* IDL:         PROCESSOR_INTEL_PENTIUM=0x0000024A, */
5318 /* IDL:         PROCESSOR_INTEL_IA64=0x00000898, */
5319 /* IDL:         PROCESSOR_AMD_X8664=0x000022A0, */
5320 /* IDL: } */
5321
5322 int
5323 spoolss_dissect_enum_ProcessorType(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_)
5324 {
5325         guint32 parameter=0;
5326         if(param){
5327                 parameter=(guint32)*param;
5328         }
5329         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
5330         if(param){
5331                 *param=(guint32)parameter;
5332         }
5333         return offset;
5334 }
5335
5336
5337 /* IDL: enum { */
5338 /* IDL:         SPOOLSS_MAJOR_VERSION_NT4_95_98_ME=0x00000004, */
5339 /* IDL:         SPOOLSS_MAJOR_VERSION_2000_2003_XP=0x00000005, */
5340 /* IDL:         SPOOLSS_MAJOR_VERSION_2008_VISTA=0x00000006, */
5341 /* IDL: } */
5342
5343 int
5344 spoolss_dissect_enum_MajorVersion(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_)
5345 {
5346         guint32 parameter=0;
5347         if(param){
5348                 parameter=(guint32)*param;
5349         }
5350         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
5351         if(param){
5352                 *param=(guint32)parameter;
5353         }
5354         return offset;
5355 }
5356
5357
5358 /* IDL: enum { */
5359 /* IDL:         SPOOLSS_MINOR_VERSION_0=0x00000000, */
5360 /* IDL:         SPOOLSS_MINOR_VERSION_XP=0x00000001, */
5361 /* IDL:         SPOOLSS_MINOR_VERSION_2003_XP64=0x00000002, */
5362 /* IDL:         SPOOLSS_MINOR_VERSION_98=0x0000000a, */
5363 /* IDL:         SPOOLSS_MINOR_VERSION_ME=0x0000005a, */
5364 /* IDL: } */
5365
5366 int
5367 spoolss_dissect_enum_MinorVersion(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_)
5368 {
5369         guint32 parameter=0;
5370         if(param){
5371                 parameter=(guint32)*param;
5372         }
5373         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
5374         if(param){
5375                 *param=(guint32)parameter;
5376         }
5377         return offset;
5378 }
5379
5380
5381 /* IDL: bitmap { */
5382 /* IDL:         PRINTER_STATUS_PAUSED =  0x00000001 , */
5383 /* IDL:         PRINTER_STATUS_ERROR =  0x00000002 , */
5384 /* IDL:         PRINTER_STATUS_PENDING_DELETION =  0x00000004 , */
5385 /* IDL:         PRINTER_STATUS_PAPER_JAM =  0x00000008 , */
5386 /* IDL:         PRINTER_STATUS_PAPER_OUT =  0x00000010 , */
5387 /* IDL:         PRINTER_STATUS_MANUAL_FEED =  0x00000020 , */
5388 /* IDL:         PRINTER_STATUS_PAPER_PROBLEM =  0x00000040 , */
5389 /* IDL:         PRINTER_STATUS_OFFLINE =  0x00000080 , */
5390 /* IDL:         PRINTER_STATUS_IO_ACTIVE =  0x00000100 , */
5391 /* IDL:         PRINTER_STATUS_BUSY =  0x00000200 , */
5392 /* IDL:         PRINTER_STATUS_PRINTING =  0x00000400 , */
5393 /* IDL:         PRINTER_STATUS_OUTPUT_BIN_FULL =  0x00000800 , */
5394 /* IDL:         PRINTER_STATUS_NOT_AVAILABLE =  0x00001000 , */
5395 /* IDL:         PRINTER_STATUS_WAITING =  0x00002000 , */
5396 /* IDL:         PRINTER_STATUS_PROCESSING =  0x00004000 , */
5397 /* IDL:         PRINTER_STATUS_INITIALIZING =  0x00008000 , */
5398 /* IDL:         PRINTER_STATUS_WARMING_UP =  0x00010000 , */
5399 /* IDL:         PRINTER_STATUS_TONER_LOW =  0x00020000 , */
5400 /* IDL:         PRINTER_STATUS_NO_TONER =  0x00040000 , */
5401 /* IDL:         PRINTER_STATUS_PAGE_PUNT =  0x00080000 , */
5402 /* IDL:         PRINTER_STATUS_USER_INTERVENTION =  0x00100000 , */
5403 /* IDL:         PRINTER_STATUS_OUT_OF_MEMORY =  0x00200000 , */
5404 /* IDL:         PRINTER_STATUS_DOOR_OPEN =  0x00400000 , */
5405 /* IDL:         PRINTER_STATUS_SERVER_UNKNOWN =  0x00800000 , */
5406 /* IDL:         PRINTER_STATUS_POWER_SAVE =  0x01000000 , */
5407 /* IDL: } */
5408
5409 int
5410 spoolss_dissect_bitmap_PrinterStatus(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_)
5411 {
5412         proto_item *item = NULL;
5413         proto_tree *tree = NULL;
5414
5415         guint32 flags;
5416         ALIGN_TO_4_BYTES;
5417
5418         if (parent_tree) {
5419                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
5420                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterStatus);
5421         }
5422
5423         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
5424         proto_item_append_text(item, ": ");
5425
5426         if (!flags)
5427                 proto_item_append_text(item, "(No values set)");
5428
5429         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAUSED, tvb, offset-4, 4, flags);
5430         if (flags&( 0x00000001 )){
5431                 proto_item_append_text(item, "PRINTER_STATUS_PAUSED");
5432                 if (flags & (~( 0x00000001 )))
5433                         proto_item_append_text(item, ", ");
5434         }
5435         flags&=(~( 0x00000001 ));
5436
5437         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_ERROR, tvb, offset-4, 4, flags);
5438         if (flags&( 0x00000002 )){
5439                 proto_item_append_text(item, "PRINTER_STATUS_ERROR");
5440                 if (flags & (~( 0x00000002 )))
5441                         proto_item_append_text(item, ", ");
5442         }
5443         flags&=(~( 0x00000002 ));
5444
5445         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION, tvb, offset-4, 4, flags);
5446         if (flags&( 0x00000004 )){
5447                 proto_item_append_text(item, "PRINTER_STATUS_PENDING_DELETION");
5448                 if (flags & (~( 0x00000004 )))
5449                         proto_item_append_text(item, ", ");
5450         }
5451         flags&=(~( 0x00000004 ));
5452
5453         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM, tvb, offset-4, 4, flags);
5454         if (flags&( 0x00000008 )){
5455                 proto_item_append_text(item, "PRINTER_STATUS_PAPER_JAM");
5456                 if (flags & (~( 0x00000008 )))
5457                         proto_item_append_text(item, ", ");
5458         }
5459         flags&=(~( 0x00000008 ));
5460
5461         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT, tvb, offset-4, 4, flags);
5462         if (flags&( 0x00000010 )){
5463                 proto_item_append_text(item, "PRINTER_STATUS_PAPER_OUT");
5464                 if (flags & (~( 0x00000010 )))
5465                         proto_item_append_text(item, ", ");
5466         }
5467         flags&=(~( 0x00000010 ));
5468
5469         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED, tvb, offset-4, 4, flags);
5470         if (flags&( 0x00000020 )){
5471                 proto_item_append_text(item, "PRINTER_STATUS_MANUAL_FEED");
5472                 if (flags & (~( 0x00000020 )))
5473                         proto_item_append_text(item, ", ");
5474         }
5475         flags&=(~( 0x00000020 ));
5476
5477         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM, tvb, offset-4, 4, flags);
5478         if (flags&( 0x00000040 )){
5479                 proto_item_append_text(item, "PRINTER_STATUS_PAPER_PROBLEM");
5480                 if (flags & (~( 0x00000040 )))
5481                         proto_item_append_text(item, ", ");
5482         }
5483         flags&=(~( 0x00000040 ));
5484
5485         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE, tvb, offset-4, 4, flags);
5486         if (flags&( 0x00000080 )){
5487                 proto_item_append_text(item, "PRINTER_STATUS_OFFLINE");
5488                 if (flags & (~( 0x00000080 )))
5489                         proto_item_append_text(item, ", ");
5490         }
5491         flags&=(~( 0x00000080 ));
5492
5493         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE, tvb, offset-4, 4, flags);
5494         if (flags&( 0x00000100 )){
5495                 proto_item_append_text(item, "PRINTER_STATUS_IO_ACTIVE");
5496                 if (flags & (~( 0x00000100 )))
5497                         proto_item_append_text(item, ", ");
5498         }
5499         flags&=(~( 0x00000100 ));
5500
5501         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_BUSY, tvb, offset-4, 4, flags);
5502         if (flags&( 0x00000200 )){
5503                 proto_item_append_text(item, "PRINTER_STATUS_BUSY");
5504                 if (flags & (~( 0x00000200 )))
5505                         proto_item_append_text(item, ", ");
5506         }
5507         flags&=(~( 0x00000200 ));
5508
5509         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PRINTING, tvb, offset-4, 4, flags);
5510         if (flags&( 0x00000400 )){
5511                 proto_item_append_text(item, "PRINTER_STATUS_PRINTING");
5512                 if (flags & (~( 0x00000400 )))
5513                         proto_item_append_text(item, ", ");
5514         }
5515         flags&=(~( 0x00000400 ));
5516
5517         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL, tvb, offset-4, 4, flags);
5518         if (flags&( 0x00000800 )){
5519                 proto_item_append_text(item, "PRINTER_STATUS_OUTPUT_BIN_FULL");
5520                 if (flags & (~( 0x00000800 )))
5521                         proto_item_append_text(item, ", ");
5522         }
5523         flags&=(~( 0x00000800 ));
5524
5525         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE, tvb, offset-4, 4, flags);
5526         if (flags&( 0x00001000 )){
5527                 proto_item_append_text(item, "PRINTER_STATUS_NOT_AVAILABLE");
5528                 if (flags & (~( 0x00001000 )))
5529                         proto_item_append_text(item, ", ");
5530         }
5531         flags&=(~( 0x00001000 ));
5532
5533         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WAITING, tvb, offset-4, 4, flags);
5534         if (flags&( 0x00002000 )){
5535                 proto_item_append_text(item, "PRINTER_STATUS_WAITING");
5536                 if (flags & (~( 0x00002000 )))
5537                         proto_item_append_text(item, ", ");
5538         }
5539         flags&=(~( 0x00002000 ));
5540
5541         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING, tvb, offset-4, 4, flags);
5542         if (flags&( 0x00004000 )){
5543                 proto_item_append_text(item, "PRINTER_STATUS_PROCESSING");
5544                 if (flags & (~( 0x00004000 )))
5545                         proto_item_append_text(item, ", ");
5546         }
5547         flags&=(~( 0x00004000 ));
5548
5549         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING, tvb, offset-4, 4, flags);
5550         if (flags&( 0x00008000 )){
5551                 proto_item_append_text(item, "PRINTER_STATUS_INITIALIZING");
5552                 if (flags & (~( 0x00008000 )))
5553                         proto_item_append_text(item, ", ");
5554         }
5555         flags&=(~( 0x00008000 ));
5556
5557         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP, tvb, offset-4, 4, flags);
5558         if (flags&( 0x00010000 )){
5559                 proto_item_append_text(item, "PRINTER_STATUS_WARMING_UP");
5560                 if (flags & (~( 0x00010000 )))
5561                         proto_item_append_text(item, ", ");
5562         }
5563         flags&=(~( 0x00010000 ));
5564
5565         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW, tvb, offset-4, 4, flags);
5566         if (flags&( 0x00020000 )){
5567                 proto_item_append_text(item, "PRINTER_STATUS_TONER_LOW");
5568                 if (flags & (~( 0x00020000 )))
5569                         proto_item_append_text(item, ", ");
5570         }
5571         flags&=(~( 0x00020000 ));
5572
5573         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER, tvb, offset-4, 4, flags);
5574         if (flags&( 0x00040000 )){
5575                 proto_item_append_text(item, "PRINTER_STATUS_NO_TONER");
5576                 if (flags & (~( 0x00040000 )))
5577                         proto_item_append_text(item, ", ");
5578         }
5579         flags&=(~( 0x00040000 ));
5580
5581         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT, tvb, offset-4, 4, flags);
5582         if (flags&( 0x00080000 )){
5583                 proto_item_append_text(item, "PRINTER_STATUS_PAGE_PUNT");
5584                 if (flags & (~( 0x00080000 )))
5585                         proto_item_append_text(item, ", ");
5586         }
5587         flags&=(~( 0x00080000 ));
5588
5589         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION, tvb, offset-4, 4, flags);
5590         if (flags&( 0x00100000 )){
5591                 proto_item_append_text(item, "PRINTER_STATUS_USER_INTERVENTION");
5592                 if (flags & (~( 0x00100000 )))
5593                         proto_item_append_text(item, ", ");
5594         }
5595         flags&=(~( 0x00100000 ));
5596
5597         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY, tvb, offset-4, 4, flags);
5598         if (flags&( 0x00200000 )){
5599                 proto_item_append_text(item, "PRINTER_STATUS_OUT_OF_MEMORY");
5600                 if (flags & (~( 0x00200000 )))
5601                         proto_item_append_text(item, ", ");
5602         }
5603         flags&=(~( 0x00200000 ));
5604
5605         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN, tvb, offset-4, 4, flags);
5606         if (flags&( 0x00400000 )){
5607                 proto_item_append_text(item, "PRINTER_STATUS_DOOR_OPEN");
5608                 if (flags & (~( 0x00400000 )))
5609                         proto_item_append_text(item, ", ");
5610         }
5611         flags&=(~( 0x00400000 ));
5612
5613         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN, tvb, offset-4, 4, flags);
5614         if (flags&( 0x00800000 )){
5615                 proto_item_append_text(item, "PRINTER_STATUS_SERVER_UNKNOWN");
5616                 if (flags & (~( 0x00800000 )))
5617                         proto_item_append_text(item, ", ");
5618         }
5619         flags&=(~( 0x00800000 ));
5620
5621         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE, tvb, offset-4, 4, flags);
5622         if (flags&( 0x01000000 )){
5623                 proto_item_append_text(item, "PRINTER_STATUS_POWER_SAVE");
5624                 if (flags & (~( 0x01000000 )))
5625                         proto_item_append_text(item, ", ");
5626         }
5627         flags&=(~( 0x01000000 ));
5628
5629         if (flags) {
5630                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
5631         }
5632
5633         return offset;
5634 }
5635
5636
5637 /* IDL: bitmap { */
5638 /* IDL:         JOB_STATUS_PAUSED =  0x00000001 , */
5639 /* IDL:         JOB_STATUS_ERROR =  0x00000002 , */
5640 /* IDL:         JOB_STATUS_DELETING =  0x00000004 , */
5641 /* IDL:         JOB_STATUS_SPOOLING =  0x00000008 , */
5642 /* IDL:         JOB_STATUS_PRINTING =  0x00000010 , */
5643 /* IDL:         JOB_STATUS_OFFLINE =  0x00000020 , */
5644 /* IDL:         JOB_STATUS_PAPEROUT =  0x00000040 , */
5645 /* IDL:         JOB_STATUS_PRINTED =  0x00000080 , */
5646 /* IDL:         JOB_STATUS_DELETED =  0x00000100 , */
5647 /* IDL:         JOB_STATUS_BLOCKED_DEVQ =  0x00000200 , */
5648 /* IDL:         JOB_STATUS_USER_INTERVENTION =  0x00000400 , */
5649 /* IDL:         JOB_STATUS_RESTART =  0x00000800 , */
5650 /* IDL:         JOB_STATUS_COMPLETE =  0x00001000 , */
5651 /* IDL: } */
5652
5653 int
5654 spoolss_dissect_bitmap_JobStatus(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_)
5655 {
5656         proto_item *item = NULL;
5657         proto_tree *tree = NULL;
5658
5659         guint32 flags;
5660         ALIGN_TO_4_BYTES;
5661
5662         if (parent_tree) {
5663                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
5664                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_JobStatus);
5665         }
5666
5667         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
5668         proto_item_append_text(item, ": ");
5669
5670         if (!flags)
5671                 proto_item_append_text(item, "(No values set)");
5672
5673         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAUSED, tvb, offset-4, 4, flags);
5674         if (flags&( 0x00000001 )){
5675                 proto_item_append_text(item, "JOB_STATUS_PAUSED");
5676                 if (flags & (~( 0x00000001 )))
5677                         proto_item_append_text(item, ", ");
5678         }
5679         flags&=(~( 0x00000001 ));
5680
5681         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_ERROR, tvb, offset-4, 4, flags);
5682         if (flags&( 0x00000002 )){
5683                 proto_item_append_text(item, "JOB_STATUS_ERROR");
5684                 if (flags & (~( 0x00000002 )))
5685                         proto_item_append_text(item, ", ");
5686         }
5687         flags&=(~( 0x00000002 ));
5688
5689         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETING, tvb, offset-4, 4, flags);
5690         if (flags&( 0x00000004 )){
5691                 proto_item_append_text(item, "JOB_STATUS_DELETING");
5692                 if (flags & (~( 0x00000004 )))
5693                         proto_item_append_text(item, ", ");
5694         }
5695         flags&=(~( 0x00000004 ));
5696
5697         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_SPOOLING, tvb, offset-4, 4, flags);
5698         if (flags&( 0x00000008 )){
5699                 proto_item_append_text(item, "JOB_STATUS_SPOOLING");
5700                 if (flags & (~( 0x00000008 )))
5701                         proto_item_append_text(item, ", ");
5702         }
5703         flags&=(~( 0x00000008 ));
5704
5705         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTING, tvb, offset-4, 4, flags);
5706         if (flags&( 0x00000010 )){
5707                 proto_item_append_text(item, "JOB_STATUS_PRINTING");
5708                 if (flags & (~( 0x00000010 )))
5709                         proto_item_append_text(item, ", ");
5710         }
5711         flags&=(~( 0x00000010 ));
5712
5713         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_OFFLINE, tvb, offset-4, 4, flags);
5714         if (flags&( 0x00000020 )){
5715                 proto_item_append_text(item, "JOB_STATUS_OFFLINE");
5716                 if (flags & (~( 0x00000020 )))
5717                         proto_item_append_text(item, ", ");
5718         }
5719         flags&=(~( 0x00000020 ));
5720
5721         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAPEROUT, tvb, offset-4, 4, flags);
5722         if (flags&( 0x00000040 )){
5723                 proto_item_append_text(item, "JOB_STATUS_PAPEROUT");
5724                 if (flags & (~( 0x00000040 )))
5725                         proto_item_append_text(item, ", ");
5726         }
5727         flags&=(~( 0x00000040 ));
5728
5729         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTED, tvb, offset-4, 4, flags);
5730         if (flags&( 0x00000080 )){
5731                 proto_item_append_text(item, "JOB_STATUS_PRINTED");
5732                 if (flags & (~( 0x00000080 )))
5733                         proto_item_append_text(item, ", ");
5734         }
5735         flags&=(~( 0x00000080 ));
5736
5737         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETED, tvb, offset-4, 4, flags);
5738         if (flags&( 0x00000100 )){
5739                 proto_item_append_text(item, "JOB_STATUS_DELETED");
5740                 if (flags & (~( 0x00000100 )))
5741                         proto_item_append_text(item, ", ");
5742         }
5743         flags&=(~( 0x00000100 ));
5744
5745         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ, tvb, offset-4, 4, flags);
5746         if (flags&( 0x00000200 )){
5747                 proto_item_append_text(item, "JOB_STATUS_BLOCKED_DEVQ");
5748                 if (flags & (~( 0x00000200 )))
5749                         proto_item_append_text(item, ", ");
5750         }
5751         flags&=(~( 0x00000200 ));
5752
5753         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION, tvb, offset-4, 4, flags);
5754         if (flags&( 0x00000400 )){
5755                 proto_item_append_text(item, "JOB_STATUS_USER_INTERVENTION");
5756                 if (flags & (~( 0x00000400 )))
5757                         proto_item_append_text(item, ", ");
5758         }
5759         flags&=(~( 0x00000400 ));
5760
5761         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_RESTART, tvb, offset-4, 4, flags);
5762         if (flags&( 0x00000800 )){
5763                 proto_item_append_text(item, "JOB_STATUS_RESTART");
5764                 if (flags & (~( 0x00000800 )))
5765                         proto_item_append_text(item, ", ");
5766         }
5767         flags&=(~( 0x00000800 ));
5768
5769         proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE, tvb, offset-4, 4, flags);
5770         if (flags&( 0x00001000 )){
5771                 proto_item_append_text(item, "JOB_STATUS_COMPLETE");
5772                 if (flags & (~( 0x00001000 )))
5773                         proto_item_append_text(item, ", ");
5774         }
5775         flags&=(~( 0x00001000 ));
5776
5777         if (flags) {
5778                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
5779         }
5780
5781         return offset;
5782 }
5783
5784
5785 /* IDL: enum { */
5786 /* IDL:         SPOOLSS_DEBUGGING_BUILD=0x00000000, */
5787 /* IDL:         SPOOLSS_RELEASE_BUILD=0x00000001, */
5788 /* IDL: } */
5789
5790 int
5791 spoolss_dissect_enum_Build(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_)
5792 {
5793         guint32 parameter=0;
5794         if(param){
5795                 parameter=(guint32)*param;
5796         }
5797         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
5798         if(param){
5799                 *param=(guint32)parameter;
5800         }
5801         return offset;
5802 }
5803
5804
5805 /* IDL: struct { */
5806 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
5807 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *servername; */
5808 /* IDL:         uint32 cjobs; */
5809 /* IDL:         uint32 total_jobs; */
5810 /* IDL:         uint32 total_bytes; */
5811 /* IDL:         spoolss_Time time; */
5812 /* IDL:         uint32 global_counter; */
5813 /* IDL:         uint32 total_pages; */
5814 /* IDL:         uint32 version; */
5815 /* IDL:         spoolss_Build free_build; */
5816 /* IDL:         uint32 spooling; */
5817 /* IDL:         uint32 max_spooling; */
5818 /* IDL:         uint32 session_counter; */
5819 /* IDL:         uint32 num_error_out_of_paper; */
5820 /* IDL:         uint32 num_error_not_ready; */
5821 /* IDL:         spoolss_JobStatus job_error; */
5822 /* IDL:         uint32 number_of_processors; */
5823 /* IDL:         spoolss_ProcessorType processor_type; */
5824 /* IDL:         uint32 high_part_total_bytes; */
5825 /* IDL:         uint32 change_id; */
5826 /* IDL:         WERROR last_error; */
5827 /* IDL:         spoolss_PrinterStatus status; */
5828 /* IDL:         uint32 enumerate_network_printers; */
5829 /* IDL:         uint32 c_setprinter; */
5830 /* IDL:         spoolss_ProcessorArchitecture processor_architecture; */
5831 /* IDL:         uint16 processor_level; */
5832 /* IDL:         uint32 ref_ic; */
5833 /* IDL:         uint32 reserved2; */
5834 /* IDL:         uint32 reserved3; */
5835 /* IDL: } */
5836
5837 static int
5838 spoolss_dissect_element_PrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5839 {
5840         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo0_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo0_printername);
5841
5842         return offset;
5843 }
5844
5845 static int
5846 spoolss_dissect_element_PrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5847 {
5848         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_printername , 0);
5849
5850         return offset;
5851 }
5852
5853 static int
5854 spoolss_dissect_element_PrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5855 {
5856         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo0_servername_, , "Pointer to Servername (string)",hf_spoolss_spoolss_PrinterInfo0_servername);
5857
5858         return offset;
5859 }
5860
5861 static int
5862 spoolss_dissect_element_PrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5863 {
5864         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_servername , 0);
5865
5866         return offset;
5867 }
5868
5869 static int
5870 spoolss_dissect_element_PrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5871 {
5872         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_cjobs, 0);
5873
5874         return offset;
5875 }
5876
5877 static int
5878 spoolss_dissect_element_PrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5879 {
5880         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_total_jobs, 0);
5881
5882         return offset;
5883 }
5884
5885 static int
5886 spoolss_dissect_element_PrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5887 {
5888         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_total_bytes, 0);
5889
5890         return offset;
5891 }
5892
5893 static int
5894 spoolss_dissect_element_PrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5895 {
5896         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo0_time,0);
5897
5898         return offset;
5899 }
5900
5901 static int
5902 spoolss_dissect_element_PrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5903 {
5904         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_global_counter, 0);
5905
5906         return offset;
5907 }
5908
5909 static int
5910 spoolss_dissect_element_PrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5911 {
5912         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_total_pages, 0);
5913
5914         return offset;
5915 }
5916
5917 static int
5918 spoolss_dissect_element_PrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5919 {
5920         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_version, 0);
5921
5922         return offset;
5923 }
5924
5925 static int
5926 spoolss_dissect_element_PrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5927 {
5928         offset = spoolss_dissect_enum_Build(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_free_build, 0);
5929
5930         return offset;
5931 }
5932
5933 static int
5934 spoolss_dissect_element_PrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5935 {
5936         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_spooling, 0);
5937
5938         return offset;
5939 }
5940
5941 static int
5942 spoolss_dissect_element_PrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5943 {
5944         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_max_spooling, 0);
5945
5946         return offset;
5947 }
5948
5949 static int
5950 spoolss_dissect_element_PrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5951 {
5952         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_session_counter, 0);
5953
5954         return offset;
5955 }
5956
5957 static int
5958 spoolss_dissect_element_PrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5959 {
5960         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_num_error_out_of_paper, 0);
5961
5962         return offset;
5963 }
5964
5965 static int
5966 spoolss_dissect_element_PrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5967 {
5968         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_num_error_not_ready, 0);
5969
5970         return offset;
5971 }
5972
5973 static int
5974 spoolss_dissect_element_PrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5975 {
5976         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_job_error, 0);
5977
5978         return offset;
5979 }
5980
5981 static int
5982 spoolss_dissect_element_PrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5983 {
5984         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_number_of_processors, 0);
5985
5986         return offset;
5987 }
5988
5989 static int
5990 spoolss_dissect_element_PrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5991 {
5992         offset = spoolss_dissect_enum_ProcessorType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_processor_type, 0);
5993
5994         return offset;
5995 }
5996
5997 static int
5998 spoolss_dissect_element_PrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
5999 {
6000         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_high_part_total_bytes, 0);
6001
6002         return offset;
6003 }
6004
6005 static int
6006 spoolss_dissect_element_PrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6007 {
6008         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_change_id, 0);
6009
6010         return offset;
6011 }
6012
6013 static int
6014 spoolss_dissect_element_PrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6015 {
6016         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_last_error, 0);
6017
6018         return offset;
6019 }
6020
6021 static int
6022 spoolss_dissect_element_PrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6023 {
6024         offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_status, 0);
6025
6026         return offset;
6027 }
6028
6029 static int
6030 spoolss_dissect_element_PrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6031 {
6032         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_enumerate_network_printers, 0);
6033
6034         return offset;
6035 }
6036
6037 static int
6038 spoolss_dissect_element_PrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6039 {
6040         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_c_setprinter, 0);
6041
6042         return offset;
6043 }
6044
6045 static int
6046 spoolss_dissect_element_PrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6047 {
6048         offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_processor_architecture, 0);
6049
6050         return offset;
6051 }
6052
6053 static int
6054 spoolss_dissect_element_PrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6055 {
6056         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_processor_level, 0);
6057
6058         return offset;
6059 }
6060
6061 static int
6062 spoolss_dissect_element_PrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6063 {
6064         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_ref_ic, 0);
6065
6066         return offset;
6067 }
6068
6069 static int
6070 spoolss_dissect_element_PrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6071 {
6072         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_reserved2, 0);
6073
6074         return offset;
6075 }
6076
6077 static int
6078 spoolss_dissect_element_PrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6079 {
6080         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_reserved3, 0);
6081
6082         return offset;
6083 }
6084
6085 int
6086 spoolss_dissect_struct_PrinterInfo0(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_)
6087 {
6088         proto_item *item = NULL;
6089         proto_tree *tree = NULL;
6090         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6091         int old_offset;
6092
6093         ALIGN_TO_5_BYTES;
6094
6095         old_offset = offset;
6096
6097         if (parent_tree) {
6098                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6099                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo0);
6100         }
6101         
6102         offset = spoolss_dissect_element_PrinterInfo0_printername(tvb, offset, pinfo, tree, drep);
6103
6104         offset = spoolss_dissect_element_PrinterInfo0_servername(tvb, offset, pinfo, tree, drep);
6105
6106         offset = spoolss_dissect_element_PrinterInfo0_cjobs(tvb, offset, pinfo, tree, drep);
6107
6108         offset = spoolss_dissect_element_PrinterInfo0_total_jobs(tvb, offset, pinfo, tree, drep);
6109
6110         offset = spoolss_dissect_element_PrinterInfo0_total_bytes(tvb, offset, pinfo, tree, drep);
6111
6112         offset = spoolss_dissect_element_PrinterInfo0_time(tvb, offset, pinfo, tree, drep);
6113
6114         offset = spoolss_dissect_element_PrinterInfo0_global_counter(tvb, offset, pinfo, tree, drep);
6115
6116         offset = spoolss_dissect_element_PrinterInfo0_total_pages(tvb, offset, pinfo, tree, drep);
6117
6118         offset = spoolss_dissect_element_PrinterInfo0_version(tvb, offset, pinfo, tree, drep);
6119
6120         offset = spoolss_dissect_element_PrinterInfo0_free_build(tvb, offset, pinfo, tree, drep);
6121
6122         offset = spoolss_dissect_element_PrinterInfo0_spooling(tvb, offset, pinfo, tree, drep);
6123
6124         offset = spoolss_dissect_element_PrinterInfo0_max_spooling(tvb, offset, pinfo, tree, drep);
6125
6126         offset = spoolss_dissect_element_PrinterInfo0_session_counter(tvb, offset, pinfo, tree, drep);
6127
6128         offset = spoolss_dissect_element_PrinterInfo0_num_error_out_of_paper(tvb, offset, pinfo, tree, drep);
6129
6130         offset = spoolss_dissect_element_PrinterInfo0_num_error_not_ready(tvb, offset, pinfo, tree, drep);
6131
6132         offset = spoolss_dissect_element_PrinterInfo0_job_error(tvb, offset, pinfo, tree, drep);
6133
6134         offset = spoolss_dissect_element_PrinterInfo0_number_of_processors(tvb, offset, pinfo, tree, drep);
6135
6136         offset = spoolss_dissect_element_PrinterInfo0_processor_type(tvb, offset, pinfo, tree, drep);
6137
6138         offset = spoolss_dissect_element_PrinterInfo0_high_part_total_bytes(tvb, offset, pinfo, tree, drep);
6139
6140         offset = spoolss_dissect_element_PrinterInfo0_change_id(tvb, offset, pinfo, tree, drep);
6141
6142         offset = spoolss_dissect_element_PrinterInfo0_last_error(tvb, offset, pinfo, tree, drep);
6143
6144         offset = spoolss_dissect_element_PrinterInfo0_status(tvb, offset, pinfo, tree, drep);
6145
6146         offset = spoolss_dissect_element_PrinterInfo0_enumerate_network_printers(tvb, offset, pinfo, tree, drep);
6147
6148         offset = spoolss_dissect_element_PrinterInfo0_c_setprinter(tvb, offset, pinfo, tree, drep);
6149
6150         offset = spoolss_dissect_element_PrinterInfo0_processor_architecture(tvb, offset, pinfo, tree, drep);
6151
6152         offset = spoolss_dissect_element_PrinterInfo0_processor_level(tvb, offset, pinfo, tree, drep);
6153
6154         offset = spoolss_dissect_element_PrinterInfo0_ref_ic(tvb, offset, pinfo, tree, drep);
6155
6156         offset = spoolss_dissect_element_PrinterInfo0_reserved2(tvb, offset, pinfo, tree, drep);
6157
6158         offset = spoolss_dissect_element_PrinterInfo0_reserved3(tvb, offset, pinfo, tree, drep);
6159
6160
6161         proto_item_set_len(item, offset-old_offset);
6162
6163
6164         if (di->call_data->flags & DCERPC_IS_NDR64) {
6165                 ALIGN_TO_5_BYTES;
6166         }
6167
6168         return offset;
6169 }
6170
6171
6172 /* IDL: enum { */
6173 /* IDL:         SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA=0x554e4944, */
6174 /* IDL:         SPOOLSS_DM_SIGNATURE_JTEXP=0x4a544d53, */
6175 /* IDL:         SPOOLSS_DM_SIGNATURE_PSEXTRA=0x50524956, */
6176 /* IDL: } */
6177
6178 int
6179 spoolss_dissect_enum_DM_Signature(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_)
6180 {
6181         guint32 parameter=0;
6182         if(param){
6183                 parameter=(guint32)*param;
6184         }
6185         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6186         if(param){
6187                 *param=(guint32)parameter;
6188         }
6189         return offset;
6190 }
6191
6192
6193 /* IDL: enum { */
6194 /* IDL:         SPOOLSS_DM_LAYOUT_NUP_DISABLED=0x00000000, */
6195 /* IDL:         SPOOLSS_DM_LAYOUT_NUP_2=0x00000001, */
6196 /* IDL:         SPOOLSS_DM_LAYOUT_NUP_4=0x00000002, */
6197 /* IDL:         SPOOLSS_DM_LAYOUT_NUP_6=0x00000003, */
6198 /* IDL:         SPOOLSS_DM_LAYOUT_NUP_9=0x00000004, */
6199 /* IDL:         SPOOLSS_DM_LAYOUT_NUP_16=0x00000005, */
6200 /* IDL:         SPOOLSS_DM_LAYOUT_BOOKLET=0x00000006, */
6201 /* IDL: } */
6202
6203 int
6204 spoolss_dissect_enum_DM_Layout(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_)
6205 {
6206         guint32 parameter=0;
6207         if(param){
6208                 parameter=(guint32)*param;
6209         }
6210         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6211         if(param){
6212                 *param=(guint32)parameter;
6213         }
6214         return offset;
6215 }
6216
6217
6218 /* IDL: enum { */
6219 /* IDL:         SPOOLSS_DM_NUP_DIRECTION_L2R_T2B=0x00000001, */
6220 /* IDL:         SPOOLSS_DM_NUP_DIRECTION_T2B_L2R=0x00000002, */
6221 /* IDL:         SPOOLSS_DM_NUP_DIRECTION_R2L_T2B=0x00000004, */
6222 /* IDL:         SPOOLSS_DM_NUP_DIRECTION_T2B_R2L=0x00000008, */
6223 /* IDL: } */
6224
6225 int
6226 spoolss_dissect_enum_DM_NupDirection(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_)
6227 {
6228         guint32 parameter=0;
6229         if(param){
6230                 parameter=(guint32)*param;
6231         }
6232         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6233         if(param){
6234                 *param=(guint32)parameter;
6235         }
6236         return offset;
6237 }
6238
6239
6240 /* IDL: enum { */
6241 /* IDL:         SPOOLSS_DM_NUP_BORDER_PRINT=0x00000000, */
6242 /* IDL:         SPOOLSS_DM_NUP_BORDER_NONE=0x00000001, */
6243 /* IDL: } */
6244
6245 int
6246 spoolss_dissect_enum_DM_NupBorderFlags(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_)
6247 {
6248         guint32 parameter=0;
6249         if(param){
6250                 parameter=(guint32)*param;
6251         }
6252         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6253         if(param){
6254                 *param=(guint32)parameter;
6255         }
6256         return offset;
6257 }
6258
6259
6260 /* IDL: enum { */
6261 /* IDL:         SPOOLSS_DM_BOOKLET_LEFT_FLIP=0x00000000, */
6262 /* IDL:         SPOOLSS_DM_BOOKLET_RIGHT_FLIP=0x00000001, */
6263 /* IDL: } */
6264
6265 int
6266 spoolss_dissect_enum_DM_BookletFlags(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_)
6267 {
6268         guint32 parameter=0;
6269         if(param){
6270                 parameter=(guint32)*param;
6271         }
6272         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6273         if(param){
6274                 *param=(guint32)parameter;
6275         }
6276         return offset;
6277 }
6278
6279
6280 /* IDL: bitmap { */
6281 /* IDL:         SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER =  0x00000002 , */
6282 /* IDL:         SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR =  0x00000004 , */
6283 /* IDL:         SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE =  0x00000010 , */
6284 /* IDL:         SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP =  0x00000040 , */
6285 /* IDL:         SPOOLSS_DM_PS_FLAGS_ROTATE_180 =  0x00000200 , */
6286 /* IDL:         SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL =  0x00002000 , */
6287 /* IDL: } */
6288
6289 int
6290 spoolss_dissect_bitmap_DMPS_Flags(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_)
6291 {
6292         proto_item *item = NULL;
6293         proto_tree *tree = NULL;
6294
6295         guint32 flags;
6296         ALIGN_TO_4_BYTES;
6297
6298         if (parent_tree) {
6299                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
6300                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DMPS_Flags);
6301         }
6302
6303         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
6304         proto_item_append_text(item, ": ");
6305
6306         if (!flags)
6307                 proto_item_append_text(item, "(No values set)");
6308
6309         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER, tvb, offset-4, 4, flags);
6310         if (flags&( 0x00000002 )){
6311                 proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER");
6312                 if (flags & (~( 0x00000002 )))
6313                         proto_item_append_text(item, ", ");
6314         }
6315         flags&=(~( 0x00000002 ));
6316
6317         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR, tvb, offset-4, 4, flags);
6318         if (flags&( 0x00000004 )){
6319                 proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR");
6320                 if (flags & (~( 0x00000004 )))
6321                         proto_item_append_text(item, ", ");
6322         }
6323         flags&=(~( 0x00000004 ));
6324
6325         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE, tvb, offset-4, 4, flags);
6326         if (flags&( 0x00000010 )){
6327                 proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE");
6328                 if (flags & (~( 0x00000010 )))
6329                         proto_item_append_text(item, ", ");
6330         }
6331         flags&=(~( 0x00000010 ));
6332
6333         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP, tvb, offset-4, 4, flags);
6334         if (flags&( 0x00000040 )){
6335                 proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP");
6336                 if (flags & (~( 0x00000040 )))
6337                         proto_item_append_text(item, ", ");
6338         }
6339         flags&=(~( 0x00000040 ));
6340
6341         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180, tvb, offset-4, 4, flags);
6342         if (flags&( 0x00000200 )){
6343                 proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_ROTATE_180");
6344                 if (flags & (~( 0x00000200 )))
6345                         proto_item_append_text(item, ", ");
6346         }
6347         flags&=(~( 0x00000200 ));
6348
6349         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL, tvb, offset-4, 4, flags);
6350         if (flags&( 0x00002000 )){
6351                 proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL");
6352                 if (flags & (~( 0x00002000 )))
6353                         proto_item_append_text(item, ", ");
6354         }
6355         flags&=(~( 0x00002000 ));
6356
6357         if (flags) {
6358                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
6359         }
6360
6361         return offset;
6362 }
6363
6364
6365 /* IDL: struct { */
6366 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
6367 /* IDL:         spoolss_DMPS_Flags dwFlags; */
6368 /* IDL:         uint32 wchEPSFile[12]; */
6369 /* IDL:         [value(24)] uint16 caSize; */
6370 /* IDL:         uint16 caFlags; */
6371 /* IDL:         uint16 caIlluminantIndex; */
6372 /* IDL:         uint16 caRedGamma; */
6373 /* IDL:         uint16 caGreenGamma; */
6374 /* IDL:         uint16 caBlueGamma; */
6375 /* IDL:         uint16 caReferenceBlack; */
6376 /* IDL:         uint16 caReferenceWhite; */
6377 /* IDL:         uint16 caContrast; */
6378 /* IDL:         uint16 caBrightness; */
6379 /* IDL:         uint16 caColorfulness; */
6380 /* IDL:         uint16 caRedGreenTint; */
6381 /* IDL: } */
6382
6383 static int
6384 spoolss_dissect_element_PSDRVEXTRA351_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6385 {
6386         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_dwSignature, 0);
6387
6388         return offset;
6389 }
6390
6391 static int
6392 spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6393 {
6394         offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_dwFlags, 0);
6395
6396         return offset;
6397 }
6398
6399 static int
6400 spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6401 {
6402         int i;
6403         for (i = 0; i < 12; i++)
6404                 offset = spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvb, offset, pinfo, tree, drep);
6405
6406         return offset;
6407 }
6408
6409 static int
6410 spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6411 {
6412         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_wchEPSFile, 0);
6413
6414         return offset;
6415 }
6416
6417 static int
6418 spoolss_dissect_element_PSDRVEXTRA351_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6419 {
6420         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caSize, 0);
6421
6422         return offset;
6423 }
6424
6425 static int
6426 spoolss_dissect_element_PSDRVEXTRA351_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6427 {
6428         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caFlags, 0);
6429
6430         return offset;
6431 }
6432
6433 static int
6434 spoolss_dissect_element_PSDRVEXTRA351_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6435 {
6436         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caIlluminantIndex, 0);
6437
6438         return offset;
6439 }
6440
6441 static int
6442 spoolss_dissect_element_PSDRVEXTRA351_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6443 {
6444         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caRedGamma, 0);
6445
6446         return offset;
6447 }
6448
6449 static int
6450 spoolss_dissect_element_PSDRVEXTRA351_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6451 {
6452         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caGreenGamma, 0);
6453
6454         return offset;
6455 }
6456
6457 static int
6458 spoolss_dissect_element_PSDRVEXTRA351_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6459 {
6460         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caBlueGamma, 0);
6461
6462         return offset;
6463 }
6464
6465 static int
6466 spoolss_dissect_element_PSDRVEXTRA351_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6467 {
6468         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceBlack, 0);
6469
6470         return offset;
6471 }
6472
6473 static int
6474 spoolss_dissect_element_PSDRVEXTRA351_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6475 {
6476         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceWhite, 0);
6477
6478         return offset;
6479 }
6480
6481 static int
6482 spoolss_dissect_element_PSDRVEXTRA351_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6483 {
6484         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caContrast, 0);
6485
6486         return offset;
6487 }
6488
6489 static int
6490 spoolss_dissect_element_PSDRVEXTRA351_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6491 {
6492         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caBrightness, 0);
6493
6494         return offset;
6495 }
6496
6497 static int
6498 spoolss_dissect_element_PSDRVEXTRA351_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6499 {
6500         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caColorfulness, 0);
6501
6502         return offset;
6503 }
6504
6505 static int
6506 spoolss_dissect_element_PSDRVEXTRA351_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6507 {
6508         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caRedGreenTint, 0);
6509
6510         return offset;
6511 }
6512
6513 int
6514 spoolss_dissect_struct_PSDRVEXTRA351(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_)
6515 {
6516         proto_item *item = NULL;
6517         proto_tree *tree = NULL;
6518         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6519         int old_offset;
6520
6521         ALIGN_TO_4_BYTES;
6522
6523         old_offset = offset;
6524
6525         if (parent_tree) {
6526                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6527                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA351);
6528         }
6529         
6530         offset = spoolss_dissect_element_PSDRVEXTRA351_dwSignature(tvb, offset, pinfo, tree, drep);
6531
6532         offset = spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvb, offset, pinfo, tree, drep);
6533
6534         offset = spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvb, offset, pinfo, tree, drep);
6535
6536         offset = spoolss_dissect_element_PSDRVEXTRA351_caSize(tvb, offset, pinfo, tree, drep);
6537
6538         offset = spoolss_dissect_element_PSDRVEXTRA351_caFlags(tvb, offset, pinfo, tree, drep);
6539
6540         offset = spoolss_dissect_element_PSDRVEXTRA351_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
6541
6542         offset = spoolss_dissect_element_PSDRVEXTRA351_caRedGamma(tvb, offset, pinfo, tree, drep);
6543
6544         offset = spoolss_dissect_element_PSDRVEXTRA351_caGreenGamma(tvb, offset, pinfo, tree, drep);
6545
6546         offset = spoolss_dissect_element_PSDRVEXTRA351_caBlueGamma(tvb, offset, pinfo, tree, drep);
6547
6548         offset = spoolss_dissect_element_PSDRVEXTRA351_caReferenceBlack(tvb, offset, pinfo, tree, drep);
6549
6550         offset = spoolss_dissect_element_PSDRVEXTRA351_caReferenceWhite(tvb, offset, pinfo, tree, drep);
6551
6552         offset = spoolss_dissect_element_PSDRVEXTRA351_caContrast(tvb, offset, pinfo, tree, drep);
6553
6554         offset = spoolss_dissect_element_PSDRVEXTRA351_caBrightness(tvb, offset, pinfo, tree, drep);
6555
6556         offset = spoolss_dissect_element_PSDRVEXTRA351_caColorfulness(tvb, offset, pinfo, tree, drep);
6557
6558         offset = spoolss_dissect_element_PSDRVEXTRA351_caRedGreenTint(tvb, offset, pinfo, tree, drep);
6559
6560
6561         proto_item_set_len(item, offset-old_offset);
6562
6563
6564         if (di->call_data->flags & DCERPC_IS_NDR64) {
6565                 ALIGN_TO_4_BYTES;
6566         }
6567
6568         return offset;
6569 }
6570
6571
6572 /* IDL: struct { */
6573 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
6574 /* IDL:         spoolss_DMPS_Flags dwFlags; */
6575 /* IDL:         uint32 wchEPSFile[12]; */
6576 /* IDL:         [value(24)] uint16 caSize; */
6577 /* IDL:         uint16 caFlags; */
6578 /* IDL:         uint16 caIlluminantIndex; */
6579 /* IDL:         uint16 caRedGamma; */
6580 /* IDL:         uint16 caGreenGamma; */
6581 /* IDL:         uint16 caBlueGamma; */
6582 /* IDL:         uint16 caReferenceBlack; */
6583 /* IDL:         uint16 caReferenceWhite; */
6584 /* IDL:         uint16 caContrast; */
6585 /* IDL:         uint16 caBrightness; */
6586 /* IDL:         uint16 caColorfulness; */
6587 /* IDL:         uint16 caRedGreenTint; */
6588 /* IDL:         uint16 wChecksum; */
6589 /* IDL:         uint16 wOptions; */
6590 /* IDL:         uint32 aubOptions[8]; */
6591 /* IDL: } */
6592
6593 static int
6594 spoolss_dissect_element_PSDRVEXTRA400_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6595 {
6596         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_dwSignature, 0);
6597
6598         return offset;
6599 }
6600
6601 static int
6602 spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6603 {
6604         offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_dwFlags, 0);
6605
6606         return offset;
6607 }
6608
6609 static int
6610 spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6611 {
6612         int i;
6613         for (i = 0; i < 12; i++)
6614                 offset = spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvb, offset, pinfo, tree, drep);
6615
6616         return offset;
6617 }
6618
6619 static int
6620 spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6621 {
6622         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_wchEPSFile, 0);
6623
6624         return offset;
6625 }
6626
6627 static int
6628 spoolss_dissect_element_PSDRVEXTRA400_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6629 {
6630         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caSize, 0);
6631
6632         return offset;
6633 }
6634
6635 static int
6636 spoolss_dissect_element_PSDRVEXTRA400_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6637 {
6638         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caFlags, 0);
6639
6640         return offset;
6641 }
6642
6643 static int
6644 spoolss_dissect_element_PSDRVEXTRA400_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6645 {
6646         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caIlluminantIndex, 0);
6647
6648         return offset;
6649 }
6650
6651 static int
6652 spoolss_dissect_element_PSDRVEXTRA400_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6653 {
6654         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caRedGamma, 0);
6655
6656         return offset;
6657 }
6658
6659 static int
6660 spoolss_dissect_element_PSDRVEXTRA400_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6661 {
6662         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caGreenGamma, 0);
6663
6664         return offset;
6665 }
6666
6667 static int
6668 spoolss_dissect_element_PSDRVEXTRA400_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6669 {
6670         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caBlueGamma, 0);
6671
6672         return offset;
6673 }
6674
6675 static int
6676 spoolss_dissect_element_PSDRVEXTRA400_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6677 {
6678         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceBlack, 0);
6679
6680         return offset;
6681 }
6682
6683 static int
6684 spoolss_dissect_element_PSDRVEXTRA400_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6685 {
6686         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceWhite, 0);
6687
6688         return offset;
6689 }
6690
6691 static int
6692 spoolss_dissect_element_PSDRVEXTRA400_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6693 {
6694         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caContrast, 0);
6695
6696         return offset;
6697 }
6698
6699 static int
6700 spoolss_dissect_element_PSDRVEXTRA400_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6701 {
6702         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caBrightness, 0);
6703
6704         return offset;
6705 }
6706
6707 static int
6708 spoolss_dissect_element_PSDRVEXTRA400_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6709 {
6710         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caColorfulness, 0);
6711
6712         return offset;
6713 }
6714
6715 static int
6716 spoolss_dissect_element_PSDRVEXTRA400_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6717 {
6718         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caRedGreenTint, 0);
6719
6720         return offset;
6721 }
6722
6723 static int
6724 spoolss_dissect_element_PSDRVEXTRA400_wChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6725 {
6726         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_wChecksum, 0);
6727
6728         return offset;
6729 }
6730
6731 static int
6732 spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6733 {
6734         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_wOptions, 0);
6735
6736         return offset;
6737 }
6738
6739 static int
6740 spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6741 {
6742         int i;
6743         for (i = 0; i < 8; i++)
6744                 offset = spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvb, offset, pinfo, tree, drep);
6745
6746         return offset;
6747 }
6748
6749 static int
6750 spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6751 {
6752         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_aubOptions, 0);
6753
6754         return offset;
6755 }
6756
6757 int
6758 spoolss_dissect_struct_PSDRVEXTRA400(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_)
6759 {
6760         proto_item *item = NULL;
6761         proto_tree *tree = NULL;
6762         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
6763         int old_offset;
6764
6765         ALIGN_TO_4_BYTES;
6766
6767         old_offset = offset;
6768
6769         if (parent_tree) {
6770                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
6771                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA400);
6772         }
6773         
6774         offset = spoolss_dissect_element_PSDRVEXTRA400_dwSignature(tvb, offset, pinfo, tree, drep);
6775
6776         offset = spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvb, offset, pinfo, tree, drep);
6777
6778         offset = spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvb, offset, pinfo, tree, drep);
6779
6780         offset = spoolss_dissect_element_PSDRVEXTRA400_caSize(tvb, offset, pinfo, tree, drep);
6781
6782         offset = spoolss_dissect_element_PSDRVEXTRA400_caFlags(tvb, offset, pinfo, tree, drep);
6783
6784         offset = spoolss_dissect_element_PSDRVEXTRA400_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
6785
6786         offset = spoolss_dissect_element_PSDRVEXTRA400_caRedGamma(tvb, offset, pinfo, tree, drep);
6787
6788         offset = spoolss_dissect_element_PSDRVEXTRA400_caGreenGamma(tvb, offset, pinfo, tree, drep);
6789
6790         offset = spoolss_dissect_element_PSDRVEXTRA400_caBlueGamma(tvb, offset, pinfo, tree, drep);
6791
6792         offset = spoolss_dissect_element_PSDRVEXTRA400_caReferenceBlack(tvb, offset, pinfo, tree, drep);
6793
6794         offset = spoolss_dissect_element_PSDRVEXTRA400_caReferenceWhite(tvb, offset, pinfo, tree, drep);
6795
6796         offset = spoolss_dissect_element_PSDRVEXTRA400_caContrast(tvb, offset, pinfo, tree, drep);
6797
6798         offset = spoolss_dissect_element_PSDRVEXTRA400_caBrightness(tvb, offset, pinfo, tree, drep);
6799
6800         offset = spoolss_dissect_element_PSDRVEXTRA400_caColorfulness(tvb, offset, pinfo, tree, drep);
6801
6802         offset = spoolss_dissect_element_PSDRVEXTRA400_caRedGreenTint(tvb, offset, pinfo, tree, drep);
6803
6804         offset = spoolss_dissect_element_PSDRVEXTRA400_wChecksum(tvb, offset, pinfo, tree, drep);
6805
6806         offset = spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvb, offset, pinfo, tree, drep);
6807
6808         offset = spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvb, offset, pinfo, tree, drep);
6809
6810
6811         proto_item_set_len(item, offset-old_offset);
6812
6813
6814         if (di->call_data->flags & DCERPC_IS_NDR64) {
6815                 ALIGN_TO_4_BYTES;
6816         }
6817
6818         return offset;
6819 }
6820
6821
6822 /* IDL: enum { */
6823 /* IDL:         SPOOLSS_DM_PS_OPTIMIZE_SPEED=0x00000000, */
6824 /* IDL:         SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY=0x00000001, */
6825 /* IDL:         SPOOLSS_DM_PS_OPTIMIZE_EPS=0x00000002, */
6826 /* IDL:         SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL=0x00000003, */
6827 /* IDL: } */
6828
6829 int
6830 spoolss_dissect_enum_DMPS_Dialect(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_)
6831 {
6832         guint32 parameter=0;
6833         if(param){
6834                 parameter=(guint32)*param;
6835         }
6836         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6837         if(param){
6838                 *param=(guint32)parameter;
6839         }
6840         return offset;
6841 }
6842
6843
6844 /* IDL: enum { */
6845 /* IDL:         SPOOLSS_DM_PS_TTDLFMT_DEFAULT=0x00000000, */
6846 /* IDL:         SPOOLSS_DM_PS_TTDLFMT_TYPE_1=0x00000001, */
6847 /* IDL:         SPOOLSS_DM_PS_TTDLFMT_TYPE_3=0x00000002, */
6848 /* IDL:         SPOOLSS_DM_PS_TTDLFMT_TYPE_42=0x00000003, */
6849 /* IDL: } */
6850
6851 int
6852 spoolss_dissect_enum_DMPS_TTDLFmt(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_)
6853 {
6854         guint32 parameter=0;
6855         if(param){
6856                 parameter=(guint32)*param;
6857         }
6858         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6859         if(param){
6860                 *param=(guint32)parameter;
6861         }
6862         return offset;
6863 }
6864
6865
6866 /* IDL: enum { */
6867 /* IDL:         SPOOLSS_DM_PS_PSLEVEL_1=0x00000001, */
6868 /* IDL:         SPOOLSS_DM_PS_PSLEVEL_2=0x00000002, */
6869 /* IDL:         SPOOLSS_DM_PS_PSLEVEL_3=0x00000003, */
6870 /* IDL: } */
6871
6872 int
6873 spoolss_dissect_enum_DMPS_PSLevel(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_)
6874 {
6875         guint32 parameter=0;
6876         if(param){
6877                 parameter=(guint32)*param;
6878         }
6879         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6880         if(param){
6881                 *param=(guint32)parameter;
6882         }
6883         return offset;
6884 }
6885
6886
6887 /* IDL: enum { */
6888 /* IDL:         SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST=0x0000, */
6889 /* IDL:         SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST=0x0001, */
6890 /* IDL:         SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN=0x0002, */
6891 /* IDL:         SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN=0x0003, */
6892 /* IDL: } */
6893
6894 int
6895 spoolss_dissect_enum_DMPS_FeedDirection(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_)
6896 {
6897         guint1632 parameter=0;
6898         if(param){
6899                 parameter=(guint1632)*param;
6900         }
6901         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
6902         if(param){
6903                 *param=(guint32)parameter;
6904         }
6905         return offset;
6906 }
6907
6908
6909 /* IDL: struct { */
6910 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
6911 /* IDL:         spoolss_DMPS_Flags dwFlags; */
6912 /* IDL:         uint32 wchEPSFile[12]; */
6913 /* IDL:         [value(24)] uint16 caSize; */
6914 /* IDL:         uint16 caFlags; */
6915 /* IDL:         uint16 caIlluminantIndex; */
6916 /* IDL:         uint16 caRedGamma; */
6917 /* IDL:         uint16 caGreenGamma; */
6918 /* IDL:         uint16 caBlueGamma; */
6919 /* IDL:         uint16 caReferenceBlack; */
6920 /* IDL:         uint16 caReferenceWhite; */
6921 /* IDL:         uint16 caContrast; */
6922 /* IDL:         uint16 caBrightness; */
6923 /* IDL:         uint16 caColorfulness; */
6924 /* IDL:         uint16 caRedGreenTint; */
6925 /* IDL:         uint16 wReserved1; */
6926 /* IDL:         uint16 wSize; */
6927 /* IDL:         uint32 fxScrFreq; */
6928 /* IDL:         uint32 fxScrAngle; */
6929 /* IDL:         spoolss_DMPS_Dialect iDialect; */
6930 /* IDL:         spoolss_DMPS_TTDLFmt iTTDLFmt; */
6931 /* IDL:         uint32 bReversePrint; */
6932 /* IDL:         spoolss_DM_Layout iLayout; */
6933 /* IDL:         spoolss_DMPS_PSLevel iPSLevel; */
6934 /* IDL:         uint32 dwReserved2; */
6935 /* IDL:         uint16 wOEMExtra; */
6936 /* IDL:         [value(0x0010)] uint16 wVer; */
6937 /* IDL:         uint32 dwX; */
6938 /* IDL:         uint32 dwY; */
6939 /* IDL:         uint32 dwWidthOffset; */
6940 /* IDL:         uint32 dwHeightOffset; */
6941 /* IDL:         spoolss_DMPS_FeedDirection wFeedDirection; */
6942 /* IDL:         uint16 wCutSheet; */
6943 /* IDL:         uint32 dwReserved3[4]; */
6944 /* IDL:         uint32 dwChecksum32; */
6945 /* IDL:         uint32 dwOptions; */
6946 /* IDL:         uint32 aOptions[128]; */
6947 /* IDL: } */
6948
6949 static int
6950 spoolss_dissect_element_PSDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6951 {
6952         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwSignature, 0);
6953
6954         return offset;
6955 }
6956
6957 static int
6958 spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6959 {
6960         offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwFlags, 0);
6961
6962         return offset;
6963 }
6964
6965 static int
6966 spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6967 {
6968         int i;
6969         for (i = 0; i < 12; i++)
6970                 offset = spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvb, offset, pinfo, tree, drep);
6971
6972         return offset;
6973 }
6974
6975 static int
6976 spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6977 {
6978         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wchEPSFile, 0);
6979
6980         return offset;
6981 }
6982
6983 static int
6984 spoolss_dissect_element_PSDRVEXTRA500_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6985 {
6986         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caSize, 0);
6987
6988         return offset;
6989 }
6990
6991 static int
6992 spoolss_dissect_element_PSDRVEXTRA500_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
6993 {
6994         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caFlags, 0);
6995
6996         return offset;
6997 }
6998
6999 static int
7000 spoolss_dissect_element_PSDRVEXTRA500_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7001 {
7002         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caIlluminantIndex, 0);
7003
7004         return offset;
7005 }
7006
7007 static int
7008 spoolss_dissect_element_PSDRVEXTRA500_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7009 {
7010         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caRedGamma, 0);
7011
7012         return offset;
7013 }
7014
7015 static int
7016 spoolss_dissect_element_PSDRVEXTRA500_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7017 {
7018         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caGreenGamma, 0);
7019
7020         return offset;
7021 }
7022
7023 static int
7024 spoolss_dissect_element_PSDRVEXTRA500_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7025 {
7026         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caBlueGamma, 0);
7027
7028         return offset;
7029 }
7030
7031 static int
7032 spoolss_dissect_element_PSDRVEXTRA500_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7033 {
7034         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceBlack, 0);
7035
7036         return offset;
7037 }
7038
7039 static int
7040 spoolss_dissect_element_PSDRVEXTRA500_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7041 {
7042         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceWhite, 0);
7043
7044         return offset;
7045 }
7046
7047 static int
7048 spoolss_dissect_element_PSDRVEXTRA500_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7049 {
7050         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caContrast, 0);
7051
7052         return offset;
7053 }
7054
7055 static int
7056 spoolss_dissect_element_PSDRVEXTRA500_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7057 {
7058         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caBrightness, 0);
7059
7060         return offset;
7061 }
7062
7063 static int
7064 spoolss_dissect_element_PSDRVEXTRA500_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7065 {
7066         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caColorfulness, 0);
7067
7068         return offset;
7069 }
7070
7071 static int
7072 spoolss_dissect_element_PSDRVEXTRA500_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7073 {
7074         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caRedGreenTint, 0);
7075
7076         return offset;
7077 }
7078
7079 static int
7080 spoolss_dissect_element_PSDRVEXTRA500_wReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7081 {
7082         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wReserved1, 0);
7083
7084         return offset;
7085 }
7086
7087 static int
7088 spoolss_dissect_element_PSDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7089 {
7090         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wSize, 0);
7091
7092         return offset;
7093 }
7094
7095 static int
7096 spoolss_dissect_element_PSDRVEXTRA500_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7097 {
7098         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq, 0);
7099
7100         return offset;
7101 }
7102
7103 static int
7104 spoolss_dissect_element_PSDRVEXTRA500_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7105 {
7106         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_fxScrAngle, 0);
7107
7108         return offset;
7109 }
7110
7111 static int
7112 spoolss_dissect_element_PSDRVEXTRA500_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7113 {
7114         offset = spoolss_dissect_enum_DMPS_Dialect(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iDialect, 0);
7115
7116         return offset;
7117 }
7118
7119 static int
7120 spoolss_dissect_element_PSDRVEXTRA500_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7121 {
7122         offset = spoolss_dissect_enum_DMPS_TTDLFmt(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iTTDLFmt, 0);
7123
7124         return offset;
7125 }
7126
7127 static int
7128 spoolss_dissect_element_PSDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7129 {
7130         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_bReversePrint, 0);
7131
7132         return offset;
7133 }
7134
7135 static int
7136 spoolss_dissect_element_PSDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7137 {
7138         offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iLayout, 0);
7139
7140         return offset;
7141 }
7142
7143 static int
7144 spoolss_dissect_element_PSDRVEXTRA500_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7145 {
7146         offset = spoolss_dissect_enum_DMPS_PSLevel(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iPSLevel, 0);
7147
7148         return offset;
7149 }
7150
7151 static int
7152 spoolss_dissect_element_PSDRVEXTRA500_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7153 {
7154         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved2, 0);
7155
7156         return offset;
7157 }
7158
7159 static int
7160 spoolss_dissect_element_PSDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7161 {
7162         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wOEMExtra, 0);
7163
7164         return offset;
7165 }
7166
7167 static int
7168 spoolss_dissect_element_PSDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7169 {
7170         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wVer, 0);
7171
7172         return offset;
7173 }
7174
7175 static int
7176 spoolss_dissect_element_PSDRVEXTRA500_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7177 {
7178         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwX, 0);
7179
7180         return offset;
7181 }
7182
7183 static int
7184 spoolss_dissect_element_PSDRVEXTRA500_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7185 {
7186         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwY, 0);
7187
7188         return offset;
7189 }
7190
7191 static int
7192 spoolss_dissect_element_PSDRVEXTRA500_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7193 {
7194         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwWidthOffset, 0);
7195
7196         return offset;
7197 }
7198
7199 static int
7200 spoolss_dissect_element_PSDRVEXTRA500_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7201 {
7202         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwHeightOffset, 0);
7203
7204         return offset;
7205 }
7206
7207 static int
7208 spoolss_dissect_element_PSDRVEXTRA500_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7209 {
7210         offset = spoolss_dissect_enum_DMPS_FeedDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wFeedDirection, 0);
7211
7212         return offset;
7213 }
7214
7215 static int
7216 spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7217 {
7218         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wCutSheet, 0);
7219
7220         return offset;
7221 }
7222
7223 static int
7224 spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7225 {
7226         int i;
7227         for (i = 0; i < 4; i++)
7228                 offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvb, offset, pinfo, tree, drep);
7229
7230         return offset;
7231 }
7232
7233 static int
7234 spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7235 {
7236         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved3, 0);
7237
7238         return offset;
7239 }
7240
7241 static int
7242 spoolss_dissect_element_PSDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7243 {
7244         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwChecksum32, 0);
7245
7246         return offset;
7247 }
7248
7249 static int
7250 spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7251 {
7252         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwOptions, 0);
7253
7254         return offset;
7255 }
7256
7257 static int
7258 spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7259 {
7260         int i;
7261         for (i = 0; i < 128; i++)
7262                 offset = spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvb, offset, pinfo, tree, drep);
7263
7264         return offset;
7265 }
7266
7267 static int
7268 spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7269 {
7270         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_aOptions, 0);
7271
7272         return offset;
7273 }
7274
7275 int
7276 spoolss_dissect_struct_PSDRVEXTRA500(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_)
7277 {
7278         proto_item *item = NULL;
7279         proto_tree *tree = NULL;
7280         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7281         int old_offset;
7282
7283         ALIGN_TO_4_BYTES;
7284
7285         old_offset = offset;
7286
7287         if (parent_tree) {
7288                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7289                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA500);
7290         }
7291         
7292         offset = spoolss_dissect_element_PSDRVEXTRA500_dwSignature(tvb, offset, pinfo, tree, drep);
7293
7294         offset = spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvb, offset, pinfo, tree, drep);
7295
7296         offset = spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvb, offset, pinfo, tree, drep);
7297
7298         offset = spoolss_dissect_element_PSDRVEXTRA500_caSize(tvb, offset, pinfo, tree, drep);
7299
7300         offset = spoolss_dissect_element_PSDRVEXTRA500_caFlags(tvb, offset, pinfo, tree, drep);
7301
7302         offset = spoolss_dissect_element_PSDRVEXTRA500_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
7303
7304         offset = spoolss_dissect_element_PSDRVEXTRA500_caRedGamma(tvb, offset, pinfo, tree, drep);
7305
7306         offset = spoolss_dissect_element_PSDRVEXTRA500_caGreenGamma(tvb, offset, pinfo, tree, drep);
7307
7308         offset = spoolss_dissect_element_PSDRVEXTRA500_caBlueGamma(tvb, offset, pinfo, tree, drep);
7309
7310         offset = spoolss_dissect_element_PSDRVEXTRA500_caReferenceBlack(tvb, offset, pinfo, tree, drep);
7311
7312         offset = spoolss_dissect_element_PSDRVEXTRA500_caReferenceWhite(tvb, offset, pinfo, tree, drep);
7313
7314         offset = spoolss_dissect_element_PSDRVEXTRA500_caContrast(tvb, offset, pinfo, tree, drep);
7315
7316         offset = spoolss_dissect_element_PSDRVEXTRA500_caBrightness(tvb, offset, pinfo, tree, drep);
7317
7318         offset = spoolss_dissect_element_PSDRVEXTRA500_caColorfulness(tvb, offset, pinfo, tree, drep);
7319
7320         offset = spoolss_dissect_element_PSDRVEXTRA500_caRedGreenTint(tvb, offset, pinfo, tree, drep);
7321
7322         offset = spoolss_dissect_element_PSDRVEXTRA500_wReserved1(tvb, offset, pinfo, tree, drep);
7323
7324         offset = spoolss_dissect_element_PSDRVEXTRA500_wSize(tvb, offset, pinfo, tree, drep);
7325
7326         offset = spoolss_dissect_element_PSDRVEXTRA500_fxScrFreq(tvb, offset, pinfo, tree, drep);
7327
7328         offset = spoolss_dissect_element_PSDRVEXTRA500_fxScrAngle(tvb, offset, pinfo, tree, drep);
7329
7330         offset = spoolss_dissect_element_PSDRVEXTRA500_iDialect(tvb, offset, pinfo, tree, drep);
7331
7332         offset = spoolss_dissect_element_PSDRVEXTRA500_iTTDLFmt(tvb, offset, pinfo, tree, drep);
7333
7334         offset = spoolss_dissect_element_PSDRVEXTRA500_bReversePrint(tvb, offset, pinfo, tree, drep);
7335
7336         offset = spoolss_dissect_element_PSDRVEXTRA500_iLayout(tvb, offset, pinfo, tree, drep);
7337
7338         offset = spoolss_dissect_element_PSDRVEXTRA500_iPSLevel(tvb, offset, pinfo, tree, drep);
7339
7340         offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved2(tvb, offset, pinfo, tree, drep);
7341
7342         offset = spoolss_dissect_element_PSDRVEXTRA500_wOEMExtra(tvb, offset, pinfo, tree, drep);
7343
7344         offset = spoolss_dissect_element_PSDRVEXTRA500_wVer(tvb, offset, pinfo, tree, drep);
7345
7346         offset = spoolss_dissect_element_PSDRVEXTRA500_dwX(tvb, offset, pinfo, tree, drep);
7347
7348         offset = spoolss_dissect_element_PSDRVEXTRA500_dwY(tvb, offset, pinfo, tree, drep);
7349
7350         offset = spoolss_dissect_element_PSDRVEXTRA500_dwWidthOffset(tvb, offset, pinfo, tree, drep);
7351
7352         offset = spoolss_dissect_element_PSDRVEXTRA500_dwHeightOffset(tvb, offset, pinfo, tree, drep);
7353
7354         offset = spoolss_dissect_element_PSDRVEXTRA500_wFeedDirection(tvb, offset, pinfo, tree, drep);
7355
7356         offset = spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvb, offset, pinfo, tree, drep);
7357
7358         offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvb, offset, pinfo, tree, drep);
7359
7360         offset = spoolss_dissect_element_PSDRVEXTRA500_dwChecksum32(tvb, offset, pinfo, tree, drep);
7361
7362         offset = spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvb, offset, pinfo, tree, drep);
7363
7364         offset = spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvb, offset, pinfo, tree, drep);
7365
7366
7367         proto_item_set_len(item, offset-old_offset);
7368
7369
7370         if (di->call_data->flags & DCERPC_IS_NDR64) {
7371                 ALIGN_TO_4_BYTES;
7372         }
7373
7374         return offset;
7375 }
7376
7377
7378 /* IDL: struct { */
7379 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
7380 /* IDL:         spoolss_DMPS_Flags dwFlags; */
7381 /* IDL:         uint32 wchEPSFile[12]; */
7382 /* IDL:         [value(24)] uint16 caSize; */
7383 /* IDL:         uint16 caFlags; */
7384 /* IDL:         uint16 caIlluminantIndex; */
7385 /* IDL:         uint16 caRedGamma; */
7386 /* IDL:         uint16 caGreenGamma; */
7387 /* IDL:         uint16 caBlueGamma; */
7388 /* IDL:         uint16 caReferenceBlack; */
7389 /* IDL:         uint16 caReferenceWhite; */
7390 /* IDL:         uint16 caContrast; */
7391 /* IDL:         uint16 caBrightness; */
7392 /* IDL:         uint16 caColorfulness; */
7393 /* IDL:         uint16 caRedGreenTint; */
7394 /* IDL:         uint16 wCoreJTExpSize; */
7395 /* IDL:         [value(ndr_size_spoolss_PSDRVEXTRA(r,ndr->flags)+wCoreJTExpSize)] uint16 wCoreFullSize; */
7396 /* IDL:         uint32 fxScrFreq; */
7397 /* IDL:         uint32 fxScrAngle; */
7398 /* IDL:         spoolss_DMPS_Dialect iDialect; */
7399 /* IDL:         spoolss_DMPS_TTDLFmt iTTDLFmt; */
7400 /* IDL:         uint32 bReversePrint; */
7401 /* IDL:         spoolss_DM_Layout iLayout; */
7402 /* IDL:         spoolss_DMPS_PSLevel iPSLevel; */
7403 /* IDL:         uint32 dwReserved2; */
7404 /* IDL:         uint16 wOEMExtra; */
7405 /* IDL:         [value(0x0010)] uint16 wVer; */
7406 /* IDL:         uint32 dwX; */
7407 /* IDL:         uint32 dwY; */
7408 /* IDL:         uint32 dwWidthOffset; */
7409 /* IDL:         uint32 dwHeightOffset; */
7410 /* IDL:         spoolss_DMPS_FeedDirection wFeedDirection; */
7411 /* IDL:         uint16 wCutSheet; */
7412 /* IDL:         uint32 dwReserved3[4]; */
7413 /* IDL:         uint32 dwChecksum32; */
7414 /* IDL:         uint32 dwOptions; */
7415 /* IDL:         uint32 aOptions[128]; */
7416 /* IDL:         spoolss_DM_NupDirection dwNupDirection; */
7417 /* IDL:         spoolss_DM_NupBorderFlags dwNupBorderFlags; */
7418 /* IDL:         spoolss_DM_BookletFlags dwBookletFlags; */
7419 /* IDL:         uint32 dwPadding; */
7420 /* IDL: } */
7421
7422 static int
7423 spoolss_dissect_element_PSDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7424 {
7425         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwSignature, 0);
7426
7427         return offset;
7428 }
7429
7430 static int
7431 spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7432 {
7433         offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwFlags, 0);
7434
7435         return offset;
7436 }
7437
7438 static int
7439 spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7440 {
7441         int i;
7442         for (i = 0; i < 12; i++)
7443                 offset = spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvb, offset, pinfo, tree, drep);
7444
7445         return offset;
7446 }
7447
7448 static int
7449 spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7450 {
7451         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wchEPSFile, 0);
7452
7453         return offset;
7454 }
7455
7456 static int
7457 spoolss_dissect_element_PSDRVEXTRA_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7458 {
7459         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caSize, 0);
7460
7461         return offset;
7462 }
7463
7464 static int
7465 spoolss_dissect_element_PSDRVEXTRA_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7466 {
7467         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caFlags, 0);
7468
7469         return offset;
7470 }
7471
7472 static int
7473 spoolss_dissect_element_PSDRVEXTRA_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7474 {
7475         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caIlluminantIndex, 0);
7476
7477         return offset;
7478 }
7479
7480 static int
7481 spoolss_dissect_element_PSDRVEXTRA_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7482 {
7483         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caRedGamma, 0);
7484
7485         return offset;
7486 }
7487
7488 static int
7489 spoolss_dissect_element_PSDRVEXTRA_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7490 {
7491         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caGreenGamma, 0);
7492
7493         return offset;
7494 }
7495
7496 static int
7497 spoolss_dissect_element_PSDRVEXTRA_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7498 {
7499         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caBlueGamma, 0);
7500
7501         return offset;
7502 }
7503
7504 static int
7505 spoolss_dissect_element_PSDRVEXTRA_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7506 {
7507         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caReferenceBlack, 0);
7508
7509         return offset;
7510 }
7511
7512 static int
7513 spoolss_dissect_element_PSDRVEXTRA_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7514 {
7515         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caReferenceWhite, 0);
7516
7517         return offset;
7518 }
7519
7520 static int
7521 spoolss_dissect_element_PSDRVEXTRA_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7522 {
7523         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caContrast, 0);
7524
7525         return offset;
7526 }
7527
7528 static int
7529 spoolss_dissect_element_PSDRVEXTRA_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7530 {
7531         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caBrightness, 0);
7532
7533         return offset;
7534 }
7535
7536 static int
7537 spoolss_dissect_element_PSDRVEXTRA_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7538 {
7539         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caColorfulness, 0);
7540
7541         return offset;
7542 }
7543
7544 static int
7545 spoolss_dissect_element_PSDRVEXTRA_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7546 {
7547         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caRedGreenTint, 0);
7548
7549         return offset;
7550 }
7551
7552 static int
7553 spoolss_dissect_element_PSDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7554 {
7555         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wCoreJTExpSize, 0);
7556
7557         return offset;
7558 }
7559
7560 static int
7561 spoolss_dissect_element_PSDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7562 {
7563         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wCoreFullSize, 0);
7564
7565         return offset;
7566 }
7567
7568 static int
7569 spoolss_dissect_element_PSDRVEXTRA_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7570 {
7571         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_fxScrFreq, 0);
7572
7573         return offset;
7574 }
7575
7576 static int
7577 spoolss_dissect_element_PSDRVEXTRA_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7578 {
7579         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_fxScrAngle, 0);
7580
7581         return offset;
7582 }
7583
7584 static int
7585 spoolss_dissect_element_PSDRVEXTRA_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7586 {
7587         offset = spoolss_dissect_enum_DMPS_Dialect(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iDialect, 0);
7588
7589         return offset;
7590 }
7591
7592 static int
7593 spoolss_dissect_element_PSDRVEXTRA_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7594 {
7595         offset = spoolss_dissect_enum_DMPS_TTDLFmt(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iTTDLFmt, 0);
7596
7597         return offset;
7598 }
7599
7600 static int
7601 spoolss_dissect_element_PSDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7602 {
7603         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_bReversePrint, 0);
7604
7605         return offset;
7606 }
7607
7608 static int
7609 spoolss_dissect_element_PSDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7610 {
7611         offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iLayout, 0);
7612
7613         return offset;
7614 }
7615
7616 static int
7617 spoolss_dissect_element_PSDRVEXTRA_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7618 {
7619         offset = spoolss_dissect_enum_DMPS_PSLevel(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel, 0);
7620
7621         return offset;
7622 }
7623
7624 static int
7625 spoolss_dissect_element_PSDRVEXTRA_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7626 {
7627         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwReserved2, 0);
7628
7629         return offset;
7630 }
7631
7632 static int
7633 spoolss_dissect_element_PSDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7634 {
7635         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wOEMExtra, 0);
7636
7637         return offset;
7638 }
7639
7640 static int
7641 spoolss_dissect_element_PSDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7642 {
7643         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wVer, 0);
7644
7645         return offset;
7646 }
7647
7648 static int
7649 spoolss_dissect_element_PSDRVEXTRA_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7650 {
7651         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwX, 0);
7652
7653         return offset;
7654 }
7655
7656 static int
7657 spoolss_dissect_element_PSDRVEXTRA_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7658 {
7659         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwY, 0);
7660
7661         return offset;
7662 }
7663
7664 static int
7665 spoolss_dissect_element_PSDRVEXTRA_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7666 {
7667         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwWidthOffset, 0);
7668
7669         return offset;
7670 }
7671
7672 static int
7673 spoolss_dissect_element_PSDRVEXTRA_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7674 {
7675         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwHeightOffset, 0);
7676
7677         return offset;
7678 }
7679
7680 static int
7681 spoolss_dissect_element_PSDRVEXTRA_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7682 {
7683         offset = spoolss_dissect_enum_DMPS_FeedDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wFeedDirection, 0);
7684
7685         return offset;
7686 }
7687
7688 static int
7689 spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7690 {
7691         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wCutSheet, 0);
7692
7693         return offset;
7694 }
7695
7696 static int
7697 spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7698 {
7699         int i;
7700         for (i = 0; i < 4; i++)
7701                 offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvb, offset, pinfo, tree, drep);
7702
7703         return offset;
7704 }
7705
7706 static int
7707 spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7708 {
7709         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwReserved3, 0);
7710
7711         return offset;
7712 }
7713
7714 static int
7715 spoolss_dissect_element_PSDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7716 {
7717         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwChecksum32, 0);
7718
7719         return offset;
7720 }
7721
7722 static int
7723 spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7724 {
7725         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwOptions, 0);
7726
7727         return offset;
7728 }
7729
7730 static int
7731 spoolss_dissect_element_PSDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7732 {
7733         int i;
7734         for (i = 0; i < 128; i++)
7735                 offset = spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvb, offset, pinfo, tree, drep);
7736
7737         return offset;
7738 }
7739
7740 static int
7741 spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7742 {
7743         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_aOptions, 0);
7744
7745         return offset;
7746 }
7747
7748 static int
7749 spoolss_dissect_element_PSDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7750 {
7751         offset = spoolss_dissect_enum_DM_NupDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwNupDirection, 0);
7752
7753         return offset;
7754 }
7755
7756 static int
7757 spoolss_dissect_element_PSDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7758 {
7759         offset = spoolss_dissect_enum_DM_NupBorderFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwNupBorderFlags, 0);
7760
7761         return offset;
7762 }
7763
7764 static int
7765 spoolss_dissect_element_PSDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7766 {
7767         offset = spoolss_dissect_enum_DM_BookletFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwBookletFlags, 0);
7768
7769         return offset;
7770 }
7771
7772 static int
7773 spoolss_dissect_element_PSDRVEXTRA_dwPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7774 {
7775         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwPadding, 0);
7776
7777         return offset;
7778 }
7779
7780 int
7781 spoolss_dissect_struct_PSDRVEXTRA(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_)
7782 {
7783         proto_item *item = NULL;
7784         proto_tree *tree = NULL;
7785         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7786         int old_offset;
7787
7788         ALIGN_TO_4_BYTES;
7789
7790         old_offset = offset;
7791
7792         if (parent_tree) {
7793                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7794                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA);
7795         }
7796         
7797         offset = spoolss_dissect_element_PSDRVEXTRA_dwSignature(tvb, offset, pinfo, tree, drep);
7798
7799         offset = spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvb, offset, pinfo, tree, drep);
7800
7801         offset = spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvb, offset, pinfo, tree, drep);
7802
7803         offset = spoolss_dissect_element_PSDRVEXTRA_caSize(tvb, offset, pinfo, tree, drep);
7804
7805         offset = spoolss_dissect_element_PSDRVEXTRA_caFlags(tvb, offset, pinfo, tree, drep);
7806
7807         offset = spoolss_dissect_element_PSDRVEXTRA_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
7808
7809         offset = spoolss_dissect_element_PSDRVEXTRA_caRedGamma(tvb, offset, pinfo, tree, drep);
7810
7811         offset = spoolss_dissect_element_PSDRVEXTRA_caGreenGamma(tvb, offset, pinfo, tree, drep);
7812
7813         offset = spoolss_dissect_element_PSDRVEXTRA_caBlueGamma(tvb, offset, pinfo, tree, drep);
7814
7815         offset = spoolss_dissect_element_PSDRVEXTRA_caReferenceBlack(tvb, offset, pinfo, tree, drep);
7816
7817         offset = spoolss_dissect_element_PSDRVEXTRA_caReferenceWhite(tvb, offset, pinfo, tree, drep);
7818
7819         offset = spoolss_dissect_element_PSDRVEXTRA_caContrast(tvb, offset, pinfo, tree, drep);
7820
7821         offset = spoolss_dissect_element_PSDRVEXTRA_caBrightness(tvb, offset, pinfo, tree, drep);
7822
7823         offset = spoolss_dissect_element_PSDRVEXTRA_caColorfulness(tvb, offset, pinfo, tree, drep);
7824
7825         offset = spoolss_dissect_element_PSDRVEXTRA_caRedGreenTint(tvb, offset, pinfo, tree, drep);
7826
7827         offset = spoolss_dissect_element_PSDRVEXTRA_wCoreJTExpSize(tvb, offset, pinfo, tree, drep);
7828
7829         offset = spoolss_dissect_element_PSDRVEXTRA_wCoreFullSize(tvb, offset, pinfo, tree, drep);
7830
7831         offset = spoolss_dissect_element_PSDRVEXTRA_fxScrFreq(tvb, offset, pinfo, tree, drep);
7832
7833         offset = spoolss_dissect_element_PSDRVEXTRA_fxScrAngle(tvb, offset, pinfo, tree, drep);
7834
7835         offset = spoolss_dissect_element_PSDRVEXTRA_iDialect(tvb, offset, pinfo, tree, drep);
7836
7837         offset = spoolss_dissect_element_PSDRVEXTRA_iTTDLFmt(tvb, offset, pinfo, tree, drep);
7838
7839         offset = spoolss_dissect_element_PSDRVEXTRA_bReversePrint(tvb, offset, pinfo, tree, drep);
7840
7841         offset = spoolss_dissect_element_PSDRVEXTRA_iLayout(tvb, offset, pinfo, tree, drep);
7842
7843         offset = spoolss_dissect_element_PSDRVEXTRA_iPSLevel(tvb, offset, pinfo, tree, drep);
7844
7845         offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved2(tvb, offset, pinfo, tree, drep);
7846
7847         offset = spoolss_dissect_element_PSDRVEXTRA_wOEMExtra(tvb, offset, pinfo, tree, drep);
7848
7849         offset = spoolss_dissect_element_PSDRVEXTRA_wVer(tvb, offset, pinfo, tree, drep);
7850
7851         offset = spoolss_dissect_element_PSDRVEXTRA_dwX(tvb, offset, pinfo, tree, drep);
7852
7853         offset = spoolss_dissect_element_PSDRVEXTRA_dwY(tvb, offset, pinfo, tree, drep);
7854
7855         offset = spoolss_dissect_element_PSDRVEXTRA_dwWidthOffset(tvb, offset, pinfo, tree, drep);
7856
7857         offset = spoolss_dissect_element_PSDRVEXTRA_dwHeightOffset(tvb, offset, pinfo, tree, drep);
7858
7859         offset = spoolss_dissect_element_PSDRVEXTRA_wFeedDirection(tvb, offset, pinfo, tree, drep);
7860
7861         offset = spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvb, offset, pinfo, tree, drep);
7862
7863         offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvb, offset, pinfo, tree, drep);
7864
7865         offset = spoolss_dissect_element_PSDRVEXTRA_dwChecksum32(tvb, offset, pinfo, tree, drep);
7866
7867         offset = spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvb, offset, pinfo, tree, drep);
7868
7869         offset = spoolss_dissect_element_PSDRVEXTRA_aOptions(tvb, offset, pinfo, tree, drep);
7870
7871         offset = spoolss_dissect_element_PSDRVEXTRA_dwNupDirection(tvb, offset, pinfo, tree, drep);
7872
7873         offset = spoolss_dissect_element_PSDRVEXTRA_dwNupBorderFlags(tvb, offset, pinfo, tree, drep);
7874
7875         offset = spoolss_dissect_element_PSDRVEXTRA_dwBookletFlags(tvb, offset, pinfo, tree, drep);
7876
7877         offset = spoolss_dissect_element_PSDRVEXTRA_dwPadding(tvb, offset, pinfo, tree, drep);
7878
7879
7880         proto_item_set_len(item, offset-old_offset);
7881
7882
7883         if (di->call_data->flags & DCERPC_IS_NDR64) {
7884                 ALIGN_TO_4_BYTES;
7885         }
7886
7887         return offset;
7888 }
7889
7890
7891 /* IDL: struct { */
7892 /* IDL:         uint16 wReserved[56]; */
7893 /* IDL: } */
7894
7895 static int
7896 spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7897 {
7898         int i;
7899         for (i = 0; i < 56; i++)
7900                 offset = spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvb, offset, pinfo, tree, drep);
7901
7902         return offset;
7903 }
7904
7905 static int
7906 spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
7907 {
7908         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA3_4_wReserved, 0);
7909
7910         return offset;
7911 }
7912
7913 int
7914 spoolss_dissect_struct_UNIDRVEXTRA3_4(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_)
7915 {
7916         proto_item *item = NULL;
7917         proto_tree *tree = NULL;
7918         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
7919         int old_offset;
7920
7921         ALIGN_TO_2_BYTES;
7922
7923         old_offset = offset;
7924
7925         if (parent_tree) {
7926                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
7927                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UNIDRVEXTRA3_4);
7928         }
7929         
7930         offset = spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvb, offset, pinfo, tree, drep);
7931
7932
7933         proto_item_set_len(item, offset-old_offset);
7934
7935
7936         if (di->call_data->flags & DCERPC_IS_NDR64) {
7937                 ALIGN_TO_2_BYTES;
7938         }
7939
7940         return offset;
7941 }
7942
7943
7944 /* IDL: enum { */
7945 /* IDL:         SPOOLSS_DM_UNI_QUALITY_BEST=0x00000000, */
7946 /* IDL:         SPOOLSS_DM_UNI_QUALITY_MEDIUM=0x00000001, */
7947 /* IDL:         SPOOLSS_DM_UNI_QUALITY_DRAFT=0x00000002, */
7948 /* IDL: } */
7949
7950 int
7951 spoolss_dissect_enum_DMUNI_Quality(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_)
7952 {
7953         guint32 parameter=0;
7954         if(param){
7955                 parameter=(guint32)*param;
7956         }
7957         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
7958         if(param){
7959                 *param=(guint32)parameter;
7960         }
7961         return offset;
7962 }
7963
7964
7965 /* IDL: bitmap { */
7966 /* IDL:         SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS =  0x00000002 , */
7967 /* IDL:         SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL =  0x00000010 , */
7968 /* IDL:         SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING =  0x00000080 , */
7969 /* IDL: } */
7970
7971 int
7972 spoolss_dissect_bitmap_DMUNI_Flags(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_)
7973 {
7974         proto_item *item = NULL;
7975         proto_tree *tree = NULL;
7976
7977         guint32 flags;
7978         ALIGN_TO_4_BYTES;
7979
7980         if (parent_tree) {
7981                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
7982                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DMUNI_Flags);
7983         }
7984
7985         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
7986         proto_item_append_text(item, ": ");
7987
7988         if (!flags)
7989                 proto_item_append_text(item, "(No values set)");
7990
7991         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS, tvb, offset-4, 4, flags);
7992         if (flags&( 0x00000002 )){
7993                 proto_item_append_text(item, "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS");
7994                 if (flags & (~( 0x00000002 )))
7995                         proto_item_append_text(item, ", ");
7996         }
7997         flags&=(~( 0x00000002 ));
7998
7999         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, tvb, offset-4, 4, flags);
8000         if (flags&( 0x00000010 )){
8001                 proto_item_append_text(item, "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL");
8002                 if (flags & (~( 0x00000010 )))
8003                         proto_item_append_text(item, ", ");
8004         }
8005         flags&=(~( 0x00000010 ));
8006
8007         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, tvb, offset-4, 4, flags);
8008         if (flags&( 0x00000080 )){
8009                 proto_item_append_text(item, "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING");
8010                 if (flags & (~( 0x00000080 )))
8011                         proto_item_append_text(item, ", ");
8012         }
8013         flags&=(~( 0x00000080 ));
8014
8015         if (flags) {
8016                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
8017         }
8018
8019         return offset;
8020 }
8021
8022
8023 /* IDL: struct { */
8024 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] spoolss_DM_Signature dwSignature; */
8025 /* IDL:         [value(0x0022)] uint16 wVer; */
8026 /* IDL:         uint16 sPadding; */
8027 /* IDL:         uint16 wSize; */
8028 /* IDL:         uint16 wOEMExtra; */
8029 /* IDL:         uint32 dwChecksum32; */
8030 /* IDL:         spoolss_DMUNI_Flags dwFlags; */
8031 /* IDL:         uint32 bReversePrint; */
8032 /* IDL:         spoolss_DM_Layout iLayout; */
8033 /* IDL:         spoolss_DMUNI_Quality iQuality; */
8034 /* IDL:         uint16 wReserved[6]; */
8035 /* IDL:         uint32 dwOptions; */
8036 /* IDL:         uint32 aOptions[128]; */
8037 /* IDL: } */
8038
8039 static int
8040 spoolss_dissect_element_UNIDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8041 {
8042         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwSignature, 0);
8043
8044         return offset;
8045 }
8046
8047 static int
8048 spoolss_dissect_element_UNIDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8049 {
8050         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wVer, 0);
8051
8052         return offset;
8053 }
8054
8055 static int
8056 spoolss_dissect_element_UNIDRVEXTRA500_sPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8057 {
8058         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_sPadding, 0);
8059
8060         return offset;
8061 }
8062
8063 static int
8064 spoolss_dissect_element_UNIDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8065 {
8066         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wSize, 0);
8067
8068         return offset;
8069 }
8070
8071 static int
8072 spoolss_dissect_element_UNIDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8073 {
8074         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wOEMExtra, 0);
8075
8076         return offset;
8077 }
8078
8079 static int
8080 spoolss_dissect_element_UNIDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8081 {
8082         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32, 0);
8083
8084         return offset;
8085 }
8086
8087 static int
8088 spoolss_dissect_element_UNIDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8089 {
8090         offset = spoolss_dissect_bitmap_DMUNI_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwFlags, 0);
8091
8092         return offset;
8093 }
8094
8095 static int
8096 spoolss_dissect_element_UNIDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8097 {
8098         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_bReversePrint, 0);
8099
8100         return offset;
8101 }
8102
8103 static int
8104 spoolss_dissect_element_UNIDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8105 {
8106         offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_iLayout, 0);
8107
8108         return offset;
8109 }
8110
8111 static int
8112 spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8113 {
8114         offset = spoolss_dissect_enum_DMUNI_Quality(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_iQuality, 0);
8115
8116         return offset;
8117 }
8118
8119 static int
8120 spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8121 {
8122         int i;
8123         for (i = 0; i < 6; i++)
8124                 offset = spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvb, offset, pinfo, tree, drep);
8125
8126         return offset;
8127 }
8128
8129 static int
8130 spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8131 {
8132         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wReserved, 0);
8133
8134         return offset;
8135 }
8136
8137 static int
8138 spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8139 {
8140         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwOptions, 0);
8141
8142         return offset;
8143 }
8144
8145 static int
8146 spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8147 {
8148         int i;
8149         for (i = 0; i < 128; i++)
8150                 offset = spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvb, offset, pinfo, tree, drep);
8151
8152         return offset;
8153 }
8154
8155 static int
8156 spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8157 {
8158         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_aOptions, 0);
8159
8160         return offset;
8161 }
8162
8163 int
8164 spoolss_dissect_struct_UNIDRVEXTRA500(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_)
8165 {
8166         proto_item *item = NULL;
8167         proto_tree *tree = NULL;
8168         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8169         int old_offset;
8170
8171         ALIGN_TO_4_BYTES;
8172
8173         old_offset = offset;
8174
8175         if (parent_tree) {
8176                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8177                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UNIDRVEXTRA500);
8178         }
8179         
8180         offset = spoolss_dissect_element_UNIDRVEXTRA500_dwSignature(tvb, offset, pinfo, tree, drep);
8181
8182         offset = spoolss_dissect_element_UNIDRVEXTRA500_wVer(tvb, offset, pinfo, tree, drep);
8183
8184         offset = spoolss_dissect_element_UNIDRVEXTRA500_sPadding(tvb, offset, pinfo, tree, drep);
8185
8186         offset = spoolss_dissect_element_UNIDRVEXTRA500_wSize(tvb, offset, pinfo, tree, drep);
8187
8188         offset = spoolss_dissect_element_UNIDRVEXTRA500_wOEMExtra(tvb, offset, pinfo, tree, drep);
8189
8190         offset = spoolss_dissect_element_UNIDRVEXTRA500_dwChecksum32(tvb, offset, pinfo, tree, drep);
8191
8192         offset = spoolss_dissect_element_UNIDRVEXTRA500_dwFlags(tvb, offset, pinfo, tree, drep);
8193
8194         offset = spoolss_dissect_element_UNIDRVEXTRA500_bReversePrint(tvb, offset, pinfo, tree, drep);
8195
8196         offset = spoolss_dissect_element_UNIDRVEXTRA500_iLayout(tvb, offset, pinfo, tree, drep);
8197
8198         offset = spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvb, offset, pinfo, tree, drep);
8199
8200         offset = spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvb, offset, pinfo, tree, drep);
8201
8202         offset = spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvb, offset, pinfo, tree, drep);
8203
8204         offset = spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvb, offset, pinfo, tree, drep);
8205
8206
8207         proto_item_set_len(item, offset-old_offset);
8208
8209
8210         if (di->call_data->flags & DCERPC_IS_NDR64) {
8211                 ALIGN_TO_4_BYTES;
8212         }
8213
8214         return offset;
8215 }
8216
8217
8218 /* IDL: struct { */
8219 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] spoolss_DM_Signature dwSignature; */
8220 /* IDL:         [value(0x0022)] uint16 wVer; */
8221 /* IDL:         uint16 wCoreJTExpSize; */
8222 /* IDL:         [value(ndr_size_spoolss_UNIDRVEXTRA(r,ndr->flags)+wCoreJTExpSize)] uint16 wCoreFullSize; */
8223 /* IDL:         uint16 wOEMExtra; */
8224 /* IDL:         uint32 dwChecksum32; */
8225 /* IDL:         spoolss_DMUNI_Flags dwFlags; */
8226 /* IDL:         uint32 bReversePrint; */
8227 /* IDL:         spoolss_DM_Layout iLayout; */
8228 /* IDL:         spoolss_DMUNI_Quality iQuality; */
8229 /* IDL:         uint16 wReserved[6]; */
8230 /* IDL:         uint32 dwOptions; */
8231 /* IDL:         uint32 aOptions[128]; */
8232 /* IDL:         spoolss_DM_NupDirection dwNupDirection; */
8233 /* IDL:         spoolss_DM_NupBorderFlags dwNupBorderFlags; */
8234 /* IDL:         spoolss_DM_BookletFlags dwBookletFlags; */
8235 /* IDL: } */
8236
8237 static int
8238 spoolss_dissect_element_UNIDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8239 {
8240         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwSignature, 0);
8241
8242         return offset;
8243 }
8244
8245 static int
8246 spoolss_dissect_element_UNIDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8247 {
8248         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wVer, 0);
8249
8250         return offset;
8251 }
8252
8253 static int
8254 spoolss_dissect_element_UNIDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8255 {
8256         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wCoreJTExpSize, 0);
8257
8258         return offset;
8259 }
8260
8261 static int
8262 spoolss_dissect_element_UNIDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8263 {
8264         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wCoreFullSize, 0);
8265
8266         return offset;
8267 }
8268
8269 static int
8270 spoolss_dissect_element_UNIDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8271 {
8272         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wOEMExtra, 0);
8273
8274         return offset;
8275 }
8276
8277 static int
8278 spoolss_dissect_element_UNIDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8279 {
8280         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwChecksum32, 0);
8281
8282         return offset;
8283 }
8284
8285 static int
8286 spoolss_dissect_element_UNIDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8287 {
8288         offset = spoolss_dissect_bitmap_DMUNI_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwFlags, 0);
8289
8290         return offset;
8291 }
8292
8293 static int
8294 spoolss_dissect_element_UNIDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8295 {
8296         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_bReversePrint, 0);
8297
8298         return offset;
8299 }
8300
8301 static int
8302 spoolss_dissect_element_UNIDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8303 {
8304         offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_iLayout, 0);
8305
8306         return offset;
8307 }
8308
8309 static int
8310 spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8311 {
8312         offset = spoolss_dissect_enum_DMUNI_Quality(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_iQuality, 0);
8313
8314         return offset;
8315 }
8316
8317 static int
8318 spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8319 {
8320         int i;
8321         for (i = 0; i < 6; i++)
8322                 offset = spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvb, offset, pinfo, tree, drep);
8323
8324         return offset;
8325 }
8326
8327 static int
8328 spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8329 {
8330         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wReserved, 0);
8331
8332         return offset;
8333 }
8334
8335 static int
8336 spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8337 {
8338         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwOptions, 0);
8339
8340         return offset;
8341 }
8342
8343 static int
8344 spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8345 {
8346         int i;
8347         for (i = 0; i < 128; i++)
8348                 offset = spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvb, offset, pinfo, tree, drep);
8349
8350         return offset;
8351 }
8352
8353 static int
8354 spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8355 {
8356         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_aOptions, 0);
8357
8358         return offset;
8359 }
8360
8361 static int
8362 spoolss_dissect_element_UNIDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8363 {
8364         offset = spoolss_dissect_enum_DM_NupDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwNupDirection, 0);
8365
8366         return offset;
8367 }
8368
8369 static int
8370 spoolss_dissect_element_UNIDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8371 {
8372         offset = spoolss_dissect_enum_DM_NupBorderFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwNupBorderFlags, 0);
8373
8374         return offset;
8375 }
8376
8377 static int
8378 spoolss_dissect_element_UNIDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8379 {
8380         offset = spoolss_dissect_enum_DM_BookletFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwBookletFlags, 0);
8381
8382         return offset;
8383 }
8384
8385 int
8386 spoolss_dissect_struct_UNIDRVEXTRA(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_)
8387 {
8388         proto_item *item = NULL;
8389         proto_tree *tree = NULL;
8390         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8391         int old_offset;
8392
8393         ALIGN_TO_4_BYTES;
8394
8395         old_offset = offset;
8396
8397         if (parent_tree) {
8398                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8399                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UNIDRVEXTRA);
8400         }
8401         
8402         offset = spoolss_dissect_element_UNIDRVEXTRA_dwSignature(tvb, offset, pinfo, tree, drep);
8403
8404         offset = spoolss_dissect_element_UNIDRVEXTRA_wVer(tvb, offset, pinfo, tree, drep);
8405
8406         offset = spoolss_dissect_element_UNIDRVEXTRA_wCoreJTExpSize(tvb, offset, pinfo, tree, drep);
8407
8408         offset = spoolss_dissect_element_UNIDRVEXTRA_wCoreFullSize(tvb, offset, pinfo, tree, drep);
8409
8410         offset = spoolss_dissect_element_UNIDRVEXTRA_wOEMExtra(tvb, offset, pinfo, tree, drep);
8411
8412         offset = spoolss_dissect_element_UNIDRVEXTRA_dwChecksum32(tvb, offset, pinfo, tree, drep);
8413
8414         offset = spoolss_dissect_element_UNIDRVEXTRA_dwFlags(tvb, offset, pinfo, tree, drep);
8415
8416         offset = spoolss_dissect_element_UNIDRVEXTRA_bReversePrint(tvb, offset, pinfo, tree, drep);
8417
8418         offset = spoolss_dissect_element_UNIDRVEXTRA_iLayout(tvb, offset, pinfo, tree, drep);
8419
8420         offset = spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvb, offset, pinfo, tree, drep);
8421
8422         offset = spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvb, offset, pinfo, tree, drep);
8423
8424         offset = spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvb, offset, pinfo, tree, drep);
8425
8426         offset = spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvb, offset, pinfo, tree, drep);
8427
8428         offset = spoolss_dissect_element_UNIDRVEXTRA_dwNupDirection(tvb, offset, pinfo, tree, drep);
8429
8430         offset = spoolss_dissect_element_UNIDRVEXTRA_dwNupBorderFlags(tvb, offset, pinfo, tree, drep);
8431
8432         offset = spoolss_dissect_element_UNIDRVEXTRA_dwBookletFlags(tvb, offset, pinfo, tree, drep);
8433
8434
8435         proto_item_set_len(item, offset-old_offset);
8436
8437
8438         if (di->call_data->flags & DCERPC_IS_NDR64) {
8439                 ALIGN_TO_4_BYTES;
8440         }
8441
8442         return offset;
8443 }
8444
8445
8446 /* IDL: struct { */
8447 /* IDL:         uint32 dwSize; */
8448 /* IDL:         [value(SPOOLSS_DM_SIGNATURE_JTEXP)] spoolss_DM_Signature dwSignature; */
8449 /* IDL:         [value(0)] uint32 dwVersion; */
8450 /* IDL:         [value(16)] uint16 wJTHdrSize; */
8451 /* IDL:         uint16 wCoreMFOSize; */
8452 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string ModelName; */
8453 /* IDL:         [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_REMAINING)] string_array FeatureOptionPairs; */
8454 /* IDL: } */
8455
8456 static int
8457 spoolss_dissect_element_JTEXP_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8458 {
8459         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_dwSize, 0);
8460
8461         return offset;
8462 }
8463
8464 static int
8465 spoolss_dissect_element_JTEXP_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8466 {
8467         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_dwSignature, 0);
8468
8469         return offset;
8470 }
8471
8472 static int
8473 spoolss_dissect_element_JTEXP_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8474 {
8475         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_dwVersion, 0);
8476
8477         return offset;
8478 }
8479
8480 static int
8481 spoolss_dissect_element_JTEXP_wJTHdrSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8482 {
8483         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_wJTHdrSize, 0);
8484
8485         return offset;
8486 }
8487
8488 static int
8489 spoolss_dissect_element_JTEXP_wCoreMFOSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8490 {
8491         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_wCoreMFOSize, 0);
8492
8493         return offset;
8494 }
8495
8496 static int
8497 spoolss_dissect_element_JTEXP_ModelName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8498 {
8499         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_ModelName , 0);
8500
8501         return offset;
8502 }
8503
8504 static int
8505 spoolss_dissect_element_JTEXP_FeatureOptionPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8506 {
8507         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JTEXP_FeatureOptionPairs,0);
8508
8509         return offset;
8510 }
8511
8512 int
8513 spoolss_dissect_struct_JTEXP(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_)
8514 {
8515         proto_item *item = NULL;
8516         proto_tree *tree = NULL;
8517         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8518         int old_offset;
8519
8520         ALIGN_TO_4_BYTES;
8521
8522         old_offset = offset;
8523
8524         if (parent_tree) {
8525                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8526                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JTEXP);
8527         }
8528         
8529         offset = spoolss_dissect_element_JTEXP_dwSize(tvb, offset, pinfo, tree, drep);
8530
8531         offset = spoolss_dissect_element_JTEXP_dwSignature(tvb, offset, pinfo, tree, drep);
8532
8533         offset = spoolss_dissect_element_JTEXP_dwVersion(tvb, offset, pinfo, tree, drep);
8534
8535         offset = spoolss_dissect_element_JTEXP_wJTHdrSize(tvb, offset, pinfo, tree, drep);
8536
8537         offset = spoolss_dissect_element_JTEXP_wCoreMFOSize(tvb, offset, pinfo, tree, drep);
8538
8539         offset = spoolss_dissect_element_JTEXP_ModelName(tvb, offset, pinfo, tree, drep);
8540
8541         offset = spoolss_dissect_element_JTEXP_FeatureOptionPairs(tvb, offset, pinfo, tree, drep);
8542
8543
8544         proto_item_set_len(item, offset-old_offset);
8545
8546
8547         if (di->call_data->flags & DCERPC_IS_NDR64) {
8548                 ALIGN_TO_4_BYTES;
8549         }
8550
8551         return offset;
8552 }
8553
8554
8555 /* IDL: struct { */
8556 /* IDL:         uint32 dwSize; */
8557 /* IDL:         spoolss_DM_Signature dwSignature; */
8558 /* IDL:         uint32 dwVersion; */
8559 /* IDL:         [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB Data; */
8560 /* IDL: } */
8561
8562 static int
8563 spoolss_dissect_element_OEM_DMEXTRA_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8564 {
8565         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_dwSize, 0);
8566
8567         return offset;
8568 }
8569
8570 static int
8571 spoolss_dissect_element_OEM_DMEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8572 {
8573         offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_dwSignature, 0);
8574
8575         return offset;
8576 }
8577
8578 static int
8579 spoolss_dissect_element_OEM_DMEXTRA_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8580 {
8581         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_dwVersion, 0);
8582
8583         return offset;
8584 }
8585
8586 static int
8587 spoolss_dissect_element_OEM_DMEXTRA_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8588 {
8589         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_Data, 1);
8590
8591         return offset;
8592 }
8593
8594 int
8595 spoolss_dissect_struct_OEM_DMEXTRA(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_)
8596 {
8597         proto_item *item = NULL;
8598         proto_tree *tree = NULL;
8599         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
8600         int old_offset;
8601
8602         ALIGN_TO_4_BYTES;
8603
8604         old_offset = offset;
8605
8606         if (parent_tree) {
8607                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
8608                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_OEM_DMEXTRA);
8609         }
8610         
8611         offset = spoolss_dissect_element_OEM_DMEXTRA_dwSize(tvb, offset, pinfo, tree, drep);
8612
8613         offset = spoolss_dissect_element_OEM_DMEXTRA_dwSignature(tvb, offset, pinfo, tree, drep);
8614
8615         offset = spoolss_dissect_element_OEM_DMEXTRA_dwVersion(tvb, offset, pinfo, tree, drep);
8616
8617         offset = spoolss_dissect_element_OEM_DMEXTRA_Data(tvb, offset, pinfo, tree, drep);
8618
8619
8620         proto_item_set_len(item, offset-old_offset);
8621
8622
8623         if (di->call_data->flags & DCERPC_IS_NDR64) {
8624                 ALIGN_TO_4_BYTES;
8625         }
8626
8627         return offset;
8628 }
8629
8630
8631 /* IDL: [nodiscriminant(1)] union { */
8632 /* IDL: [case(0x0350)] [case(0x0350)] spoolss_PSDRVEXTRA351 psdrvextra351; */
8633 /* IDL: [case(0x0400)] [case(0x0400)] spoolss_PSDRVEXTRA400 psdrvextra400; */
8634 /* IDL: [case(0x0501)] [case(0x0501)] spoolss_PSDRVEXTRA500 psdrvextra500; */
8635 /* IDL: [case(0x0600)] [case(0x0600)] spoolss_PSDRVEXTRA psdrvextra; */
8636 /* IDL: [default] ; */
8637 /* IDL: } */
8638
8639 static int
8640 spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra351(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8641 {
8642         offset = spoolss_dissect_struct_PSDRVEXTRA351(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra351,0);
8643
8644         return offset;
8645 }
8646
8647 static int
8648 spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra400(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8649 {
8650         offset = spoolss_dissect_struct_PSDRVEXTRA400(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra400,0);
8651
8652         return offset;
8653 }
8654
8655 static int
8656 spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8657 {
8658         offset = spoolss_dissect_struct_PSDRVEXTRA500(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra500,0);
8659
8660         return offset;
8661 }
8662
8663 static int
8664 spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8665 {
8666         offset = spoolss_dissect_struct_PSDRVEXTRA(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra,0);
8667
8668         return offset;
8669 }
8670
8671 static int
8672 spoolss_dissect_element_DeviceModeExtraDataPostScript_psblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8673 {
8674         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psblob, 1);
8675
8676         return offset;
8677 }
8678
8679 static int
8680 spoolss_dissect_DeviceModeExtraDataPostScript(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_)
8681 {
8682         proto_item *item = NULL;
8683         proto_tree *tree = NULL;
8684         int old_offset;
8685         guint32 level = param;
8686
8687         old_offset = offset;
8688         if (parent_tree) {
8689                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DeviceModeExtraDataPostScript");
8690                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceModeExtraDataPostScript);
8691         }
8692
8693         switch(level) {
8694                 case 0x0350:
8695                         offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra351(tvb, offset, pinfo, tree, drep);
8696                 break;
8697
8698                 case 0x0400:
8699                         offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra400(tvb, offset, pinfo, tree, drep);
8700                 break;
8701
8702                 case 0x0501:
8703                         offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra500(tvb, offset, pinfo, tree, drep);
8704                 break;
8705
8706                 case 0x0600:
8707                         offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra(tvb, offset, pinfo, tree, drep);
8708                 break;
8709
8710                 default:
8711                         offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psblob(tvb, offset, pinfo, tree, drep);
8712                 break;
8713         }
8714         proto_item_set_len(item, offset-old_offset);
8715
8716
8717         return offset;
8718 }
8719
8720 /* IDL: [nodiscriminant(1)] union { */
8721 /* IDL: [case(0x0301)] [case(0x0301)] spoolss_UNIDRVEXTRA3_4 unidrvextra3_4; */
8722 /* IDL: [case(0x0500)] [case(0x0500)] spoolss_UNIDRVEXTRA500 unidrvextra500; */
8723 /* IDL: [case(0x0600)] [case(0x0600)] spoolss_UNIDRVEXTRA unidrvextra; */
8724 /* IDL: [default] ; */
8725 /* IDL: } */
8726
8727 static int
8728 spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra3_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8729 {
8730         offset = spoolss_dissect_struct_UNIDRVEXTRA3_4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra3_4,0);
8731
8732         return offset;
8733 }
8734
8735 static int
8736 spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8737 {
8738         offset = spoolss_dissect_struct_UNIDRVEXTRA500(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra500,0);
8739
8740         return offset;
8741 }
8742
8743 static int
8744 spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8745 {
8746         offset = spoolss_dissect_struct_UNIDRVEXTRA(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra,0);
8747
8748         return offset;
8749 }
8750
8751 static int
8752 spoolss_dissect_element_DeviceModeExtraDataUniDriver_uniblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
8753 {
8754         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_uniblob, 1);
8755
8756         return offset;
8757 }
8758
8759 static int
8760 spoolss_dissect_DeviceModeExtraDataUniDriver(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_)
8761 {
8762         proto_item *item = NULL;
8763         proto_tree *tree = NULL;
8764         int old_offset;
8765         guint32 level = param;
8766
8767         old_offset = offset;
8768         if (parent_tree) {
8769                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DeviceModeExtraDataUniDriver");
8770                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceModeExtraDataUniDriver);
8771         }
8772
8773         switch(level) {
8774                 case 0x0301:
8775                         offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra3_4(tvb, offset, pinfo, tree, drep);
8776                 break;
8777
8778                 case 0x0500:
8779                         offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra500(tvb, offset, pinfo, tree, drep);
8780                 break;
8781
8782                 case 0x0600:
8783                         offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra(tvb, offset, pinfo, tree, drep);
8784                 break;
8785
8786                 default:
8787                         offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_uniblob(tvb, offset, pinfo, tree, drep);
8788                 break;
8789         }
8790         proto_item_set_len(item, offset-old_offset);
8791
8792
8793         return offset;
8794 }
8795
8796 /* IDL: bitmap { */
8797 /* IDL:         DEVMODE_ORIENTATION =  0x00000001 , */
8798 /* IDL:         DEVMODE_PAPERSIZE =  0x00000002 , */
8799 /* IDL:         DEVMODE_PAPERLENGTH =  0x00000004 , */
8800 /* IDL:         DEVMODE_PAPERWIDTH =  0x00000008 , */
8801 /* IDL:         DEVMODE_SCALE =  0x00000010 , */
8802 /* IDL:         DEVMODE_POSITION =  0x00000020 , */
8803 /* IDL:         DEVMODE_NUP =  0x00000040 , */
8804 /* IDL:         DEVMODE_COPIES =  0x00000100 , */
8805 /* IDL:         DEVMODE_DEFAULTSOURCE =  0x00000200 , */
8806 /* IDL:         DEVMODE_PRINTQUALITY =  0x00000400 , */
8807 /* IDL:         DEVMODE_COLOR =  0x00000800 , */
8808 /* IDL:         DEVMODE_DUPLEX =  0x00001000 , */
8809 /* IDL:         DEVMODE_YRESOLUTION =  0x00002000 , */
8810 /* IDL:         DEVMODE_TTOPTION =  0x00004000 , */
8811 /* IDL:         DEVMODE_COLLATE =  0x00008000 , */
8812 /* IDL:         DEVMODE_FORMNAME =  0x00010000 , */
8813 /* IDL:         DEVMODE_LOGPIXELS =  0x00020000 , */
8814 /* IDL:         DEVMODE_BITSPERPEL =  0x00040000 , */
8815 /* IDL:         DEVMODE_PELSWIDTH =  0x00080000 , */
8816 /* IDL:         DEVMODE_PELSHEIGHT =  0x00100000 , */
8817 /* IDL:         DEVMODE_DISPLAYFLAGS =  0x00200000 , */
8818 /* IDL:         DEVMODE_DISPLAYFREQUENCY =  0x00400000 , */
8819 /* IDL:         DEVMODE_ICMMETHOD =  0x00800000 , */
8820 /* IDL:         DEVMODE_ICMINTENT =  0x01000000 , */
8821 /* IDL:         DEVMODE_MEDIATYPE =  0x02000000 , */
8822 /* IDL:         DEVMODE_DITHERTYPE =  0x04000000 , */
8823 /* IDL:         DEVMODE_PANNINGWIDTH =  0x08000000 , */
8824 /* IDL:         DEVMODE_PANNINGHEIGHT =  0x10000000 , */
8825 /* IDL: } */
8826
8827 int
8828 spoolss_dissect_bitmap_DeviceModeFields(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_)
8829 {
8830         proto_item *item = NULL;
8831         proto_tree *tree = NULL;
8832
8833         guint32 flags;
8834         ALIGN_TO_4_BYTES;
8835
8836         if (parent_tree) {
8837                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
8838                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DeviceModeFields);
8839         }
8840
8841         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
8842         proto_item_append_text(item, ": ");
8843
8844         if (!flags)
8845                 proto_item_append_text(item, "(No values set)");
8846
8847         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ORIENTATION, tvb, offset-4, 4, flags);
8848         if (flags&( 0x00000001 )){
8849                 proto_item_append_text(item, "DEVMODE_ORIENTATION");
8850                 if (flags & (~( 0x00000001 )))
8851                         proto_item_append_text(item, ", ");
8852         }
8853         flags&=(~( 0x00000001 ));
8854
8855         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERSIZE, tvb, offset-4, 4, flags);
8856         if (flags&( 0x00000002 )){
8857                 proto_item_append_text(item, "DEVMODE_PAPERSIZE");
8858                 if (flags & (~( 0x00000002 )))
8859                         proto_item_append_text(item, ", ");
8860         }
8861         flags&=(~( 0x00000002 ));
8862
8863         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH, tvb, offset-4, 4, flags);
8864         if (flags&( 0x00000004 )){
8865                 proto_item_append_text(item, "DEVMODE_PAPERLENGTH");
8866                 if (flags & (~( 0x00000004 )))
8867                         proto_item_append_text(item, ", ");
8868         }
8869         flags&=(~( 0x00000004 ));
8870
8871         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH, tvb, offset-4, 4, flags);
8872         if (flags&( 0x00000008 )){
8873                 proto_item_append_text(item, "DEVMODE_PAPERWIDTH");
8874                 if (flags & (~( 0x00000008 )))
8875                         proto_item_append_text(item, ", ");
8876         }
8877         flags&=(~( 0x00000008 ));
8878
8879         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_SCALE, tvb, offset-4, 4, flags);
8880         if (flags&( 0x00000010 )){
8881                 proto_item_append_text(item, "DEVMODE_SCALE");
8882                 if (flags & (~( 0x00000010 )))
8883                         proto_item_append_text(item, ", ");
8884         }
8885         flags&=(~( 0x00000010 ));
8886
8887         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_POSITION, tvb, offset-4, 4, flags);
8888         if (flags&( 0x00000020 )){
8889                 proto_item_append_text(item, "DEVMODE_POSITION");
8890                 if (flags & (~( 0x00000020 )))
8891                         proto_item_append_text(item, ", ");
8892         }
8893         flags&=(~( 0x00000020 ));
8894
8895         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_NUP, tvb, offset-4, 4, flags);
8896         if (flags&( 0x00000040 )){
8897                 proto_item_append_text(item, "DEVMODE_NUP");
8898                 if (flags & (~( 0x00000040 )))
8899                         proto_item_append_text(item, ", ");
8900         }
8901         flags&=(~( 0x00000040 ));
8902
8903         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COPIES, tvb, offset-4, 4, flags);
8904         if (flags&( 0x00000100 )){
8905                 proto_item_append_text(item, "DEVMODE_COPIES");
8906                 if (flags & (~( 0x00000100 )))
8907                         proto_item_append_text(item, ", ");
8908         }
8909         flags&=(~( 0x00000100 ));
8910
8911         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE, tvb, offset-4, 4, flags);
8912         if (flags&( 0x00000200 )){
8913                 proto_item_append_text(item, "DEVMODE_DEFAULTSOURCE");
8914                 if (flags & (~( 0x00000200 )))
8915                         proto_item_append_text(item, ", ");
8916         }
8917         flags&=(~( 0x00000200 ));
8918
8919         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY, tvb, offset-4, 4, flags);
8920         if (flags&( 0x00000400 )){
8921                 proto_item_append_text(item, "DEVMODE_PRINTQUALITY");
8922                 if (flags & (~( 0x00000400 )))
8923                         proto_item_append_text(item, ", ");
8924         }
8925         flags&=(~( 0x00000400 ));
8926
8927         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLOR, tvb, offset-4, 4, flags);
8928         if (flags&( 0x00000800 )){
8929                 proto_item_append_text(item, "DEVMODE_COLOR");
8930                 if (flags & (~( 0x00000800 )))
8931                         proto_item_append_text(item, ", ");
8932         }
8933         flags&=(~( 0x00000800 ));
8934
8935         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DUPLEX, tvb, offset-4, 4, flags);
8936         if (flags&( 0x00001000 )){
8937                 proto_item_append_text(item, "DEVMODE_DUPLEX");
8938                 if (flags & (~( 0x00001000 )))
8939                         proto_item_append_text(item, ", ");
8940         }
8941         flags&=(~( 0x00001000 ));
8942
8943         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_YRESOLUTION, tvb, offset-4, 4, flags);
8944         if (flags&( 0x00002000 )){
8945                 proto_item_append_text(item, "DEVMODE_YRESOLUTION");
8946                 if (flags & (~( 0x00002000 )))
8947                         proto_item_append_text(item, ", ");
8948         }
8949         flags&=(~( 0x00002000 ));
8950
8951         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_TTOPTION, tvb, offset-4, 4, flags);
8952         if (flags&( 0x00004000 )){
8953                 proto_item_append_text(item, "DEVMODE_TTOPTION");
8954                 if (flags & (~( 0x00004000 )))
8955                         proto_item_append_text(item, ", ");
8956         }
8957         flags&=(~( 0x00004000 ));
8958
8959         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLLATE, tvb, offset-4, 4, flags);
8960         if (flags&( 0x00008000 )){
8961                 proto_item_append_text(item, "DEVMODE_COLLATE");
8962                 if (flags & (~( 0x00008000 )))
8963                         proto_item_append_text(item, ", ");
8964         }
8965         flags&=(~( 0x00008000 ));
8966
8967         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_FORMNAME, tvb, offset-4, 4, flags);
8968         if (flags&( 0x00010000 )){
8969                 proto_item_append_text(item, "DEVMODE_FORMNAME");
8970                 if (flags & (~( 0x00010000 )))
8971                         proto_item_append_text(item, ", ");
8972         }
8973         flags&=(~( 0x00010000 ));
8974
8975         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_LOGPIXELS, tvb, offset-4, 4, flags);
8976         if (flags&( 0x00020000 )){
8977                 proto_item_append_text(item, "DEVMODE_LOGPIXELS");
8978                 if (flags & (~( 0x00020000 )))
8979                         proto_item_append_text(item, ", ");
8980         }
8981         flags&=(~( 0x00020000 ));
8982
8983         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_BITSPERPEL, tvb, offset-4, 4, flags);
8984         if (flags&( 0x00040000 )){
8985                 proto_item_append_text(item, "DEVMODE_BITSPERPEL");
8986                 if (flags & (~( 0x00040000 )))
8987                         proto_item_append_text(item, ", ");
8988         }
8989         flags&=(~( 0x00040000 ));
8990
8991         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSWIDTH, tvb, offset-4, 4, flags);
8992         if (flags&( 0x00080000 )){
8993                 proto_item_append_text(item, "DEVMODE_PELSWIDTH");
8994                 if (flags & (~( 0x00080000 )))
8995                         proto_item_append_text(item, ", ");
8996         }
8997         flags&=(~( 0x00080000 ));
8998
8999         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT, tvb, offset-4, 4, flags);
9000         if (flags&( 0x00100000 )){
9001                 proto_item_append_text(item, "DEVMODE_PELSHEIGHT");
9002                 if (flags & (~( 0x00100000 )))
9003                         proto_item_append_text(item, ", ");
9004         }
9005         flags&=(~( 0x00100000 ));
9006
9007         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS, tvb, offset-4, 4, flags);
9008         if (flags&( 0x00200000 )){
9009                 proto_item_append_text(item, "DEVMODE_DISPLAYFLAGS");
9010                 if (flags & (~( 0x00200000 )))
9011                         proto_item_append_text(item, ", ");
9012         }
9013         flags&=(~( 0x00200000 ));
9014
9015         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY, tvb, offset-4, 4, flags);
9016         if (flags&( 0x00400000 )){
9017                 proto_item_append_text(item, "DEVMODE_DISPLAYFREQUENCY");
9018                 if (flags & (~( 0x00400000 )))
9019                         proto_item_append_text(item, ", ");
9020         }
9021         flags&=(~( 0x00400000 ));
9022
9023         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMMETHOD, tvb, offset-4, 4, flags);
9024         if (flags&( 0x00800000 )){
9025                 proto_item_append_text(item, "DEVMODE_ICMMETHOD");
9026                 if (flags & (~( 0x00800000 )))
9027                         proto_item_append_text(item, ", ");
9028         }
9029         flags&=(~( 0x00800000 ));
9030
9031         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMINTENT, tvb, offset-4, 4, flags);
9032         if (flags&( 0x01000000 )){
9033                 proto_item_append_text(item, "DEVMODE_ICMINTENT");
9034                 if (flags & (~( 0x01000000 )))
9035                         proto_item_append_text(item, ", ");
9036         }
9037         flags&=(~( 0x01000000 ));
9038
9039         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_MEDIATYPE, tvb, offset-4, 4, flags);
9040         if (flags&( 0x02000000 )){
9041                 proto_item_append_text(item, "DEVMODE_MEDIATYPE");
9042                 if (flags & (~( 0x02000000 )))
9043                         proto_item_append_text(item, ", ");
9044         }
9045         flags&=(~( 0x02000000 ));
9046
9047         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DITHERTYPE, tvb, offset-4, 4, flags);
9048         if (flags&( 0x04000000 )){
9049                 proto_item_append_text(item, "DEVMODE_DITHERTYPE");
9050                 if (flags & (~( 0x04000000 )))
9051                         proto_item_append_text(item, ", ");
9052         }
9053         flags&=(~( 0x04000000 ));
9054
9055         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH, tvb, offset-4, 4, flags);
9056         if (flags&( 0x08000000 )){
9057                 proto_item_append_text(item, "DEVMODE_PANNINGWIDTH");
9058                 if (flags & (~( 0x08000000 )))
9059                         proto_item_append_text(item, ", ");
9060         }
9061         flags&=(~( 0x08000000 ));
9062
9063         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT, tvb, offset-4, 4, flags);
9064         if (flags&( 0x10000000 )){
9065                 proto_item_append_text(item, "DEVMODE_PANNINGHEIGHT");
9066                 if (flags & (~( 0x10000000 )))
9067                         proto_item_append_text(item, ", ");
9068         }
9069         flags&=(~( 0x10000000 ));
9070
9071         if (flags) {
9072                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
9073         }
9074
9075         return offset;
9076 }
9077
9078
9079 /* IDL: enum { */
9080 /* IDL:         DMSPEC_NT3=0x320, */
9081 /* IDL:         DMSPEC_WIN95_98_ME=0x400, */
9082 /* IDL:         DMSPEC_NT4_AND_ABOVE=0x401, */
9083 /* IDL: } */
9084
9085 int
9086 spoolss_dissect_enum_DeviceModeSpecVersion(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_)
9087 {
9088         guint1632 parameter=0;
9089         if(param){
9090                 parameter=(guint1632)*param;
9091         }
9092         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9093         if(param){
9094                 *param=(guint32)parameter;
9095         }
9096         return offset;
9097 }
9098
9099
9100 /* IDL: enum { */
9101 /* IDL:         DMORIENT_PORTRAIT=0x0001, */
9102 /* IDL:         DMORIENT_LANDSCAPE=0x0002, */
9103 /* IDL: } */
9104
9105 int
9106 spoolss_dissect_enum_DeviceModeOrientation(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_)
9107 {
9108         guint1632 parameter=0;
9109         if(param){
9110                 parameter=(guint1632)*param;
9111         }
9112         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9113         if(param){
9114                 *param=(guint32)parameter;
9115         }
9116         return offset;
9117 }
9118
9119
9120 /* IDL: enum { */
9121 /* IDL:         DMPAPER_LETTER=0x0001, */
9122 /* IDL:         DMPAPER_LETTERSMALL=0x0002, */
9123 /* IDL:         DMPAPER_TABLOID=0x0003, */
9124 /* IDL:         DMPAPER_LEDGER=0x0004, */
9125 /* IDL:         DMPAPER_LEGAL=0x0005, */
9126 /* IDL:         DMPAPER_STATEMENT=0x0006, */
9127 /* IDL:         DMPAPER_EXECUTIVE=0x0007, */
9128 /* IDL:         DMPAPER_A3=0x0008, */
9129 /* IDL:         DMPAPER_A4=0x0009, */
9130 /* IDL:         DMPAPER_A4SMALL=0x000A, */
9131 /* IDL:         DMPAPER_A5=0x000B, */
9132 /* IDL:         DMPAPER_B4=0x000C, */
9133 /* IDL:         DMPAPER_B5=0x000D, */
9134 /* IDL:         DMPAPER_FOLIO=0x000E, */
9135 /* IDL:         DMPAPER_QUARTO=0x000F, */
9136 /* IDL:         DMPAPER_10X14=0x0010, */
9137 /* IDL:         DMPAPER_11X17=0x0011, */
9138 /* IDL:         DMPAPER_NOTE=0x0012, */
9139 /* IDL:         DMPAPER_ENV_9=0x0013, */
9140 /* IDL:         DMPAPER_ENV_10=0x0014, */
9141 /* IDL:         DMPAPER_ENV_11=0x0015, */
9142 /* IDL:         DMPAPER_ENV_12=0x0016, */
9143 /* IDL:         DMPAPER_ENV_14=0x0017, */
9144 /* IDL:         DMPAPER_CSHEET=0x0018, */
9145 /* IDL:         DMPAPER_DSHEET=0x0019, */
9146 /* IDL:         DMPAPER_ESHEET=0x001A, */
9147 /* IDL:         DMPAPER_ENV_DL=0x001B, */
9148 /* IDL:         DMPAPER_ENV_C5=0x001C, */
9149 /* IDL:         DMPAPER_ENV_C3=0x001D, */
9150 /* IDL:         DMPAPER_ENV_C4=0x001E, */
9151 /* IDL:         DMPAPER_ENV_C6=0x001F, */
9152 /* IDL:         DMPAPER_ENV_C65=0x0020, */
9153 /* IDL:         DMPAPER_ENV_B4=0x0021, */
9154 /* IDL:         DMPAPER_ENV_B5=0x0022, */
9155 /* IDL:         DMPAPER_ENV_B6=0x0023, */
9156 /* IDL:         DMPAPER_ENV_ITALY=0x0024, */
9157 /* IDL:         DMPAPER_ENV_MONARCH=0x0025, */
9158 /* IDL:         DMPAPER_ENV_PERSONAL=0x0026, */
9159 /* IDL:         DMPAPER_FANFOLD_US=0x0027, */
9160 /* IDL:         DMPAPER_FANFOLD_STD_GERMAN=0x0028, */
9161 /* IDL:         DMPAPER_FANFOLD_LGL_GERMAN=0x0029, */
9162 /* IDL:         DMPAPER_DBL_JAPANESE_POSTCARD=0x0045, */
9163 /* IDL:         DMPAPER_A6=0x0046, */
9164 /* IDL:         DMPAPER_JENV_KAKU2=0x0047, */
9165 /* IDL:         DMPAPER_JENV_KAKU3=0x0048, */
9166 /* IDL:         DMPAPER_JENV_CHOU3=0x0049, */
9167 /* IDL:         DMPAPER_JENV_CHOU4=0x004A, */
9168 /* IDL:         DMPAPER_LETTER_ROTATED=0x004B, */
9169 /* IDL:         DMPAPER_A3_ROTATED=0x004C, */
9170 /* IDL:         DMPAPER_A4_ROTATED=0x004D, */
9171 /* IDL:         DMPAPER_A5_ROTATED=0x004E, */
9172 /* IDL:         DMPAPER_B4_JIS_ROTATED=0x004F, */
9173 /* IDL:         DMPAPER_B5_JIS_ROTATED=0x0050, */
9174 /* IDL:         DMPAPER_JAPANESE_POSTCARD_ROTATED=0x0051, */
9175 /* IDL:         DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED=0x0052, */
9176 /* IDL:         DMPAPER_A6_ROTATED=0x0053, */
9177 /* IDL:         DMPAPER_JENV_KAKU2_ROTATED=0x0054, */
9178 /* IDL:         DMPAPER_JENV_KAKU3_ROTATED=0x0055, */
9179 /* IDL:         DMPAPER_JENV_CHOU3_ROTATED=0x0056, */
9180 /* IDL:         DMPAPER_JENV_CHOU4_ROTATED=0x0057, */
9181 /* IDL:         DMPAPER_B6_JIS=0x0058, */
9182 /* IDL:         DMPAPER_B6_JIS_ROTATED=0x0059, */
9183 /* IDL:         DMPAPER_12X11=0x005A, */
9184 /* IDL:         DMPAPER_JENV_YOU4=0x005B, */
9185 /* IDL:         DMPAPER_JENV_YOU4_ROTATED=0x005C, */
9186 /* IDL:         DMPAPER_P16K=0x005D, */
9187 /* IDL:         DMPAPER_P32K=0x005E, */
9188 /* IDL:         DMPAPER_P32KBIG=0x005F, */
9189 /* IDL:         DMPAPER_PENV_1=0x0060, */
9190 /* IDL:         DMPAPER_PENV_2=0x0061, */
9191 /* IDL:         DMPAPER_PENV_3=0x0062, */
9192 /* IDL:         DMPAPER_PENV_4=0x0063, */
9193 /* IDL:         DMPAPER_PENV_5=0x0064, */
9194 /* IDL:         DMPAPER_PENV_6=0x0065, */
9195 /* IDL:         DMPAPER_PENV_7=0x0066, */
9196 /* IDL:         DMPAPER_PENV_8=0x0067, */
9197 /* IDL:         DMPAPER_PENV_9=0x0068, */
9198 /* IDL:         DMPAPER_PENV_10=0x0069, */
9199 /* IDL:         DMPAPER_P16K_ROTATED=0x006A, */
9200 /* IDL:         DMPAPER_P32K_ROTATED=0x006B, */
9201 /* IDL:         DMPAPER_P32KBIG_ROTATED=0x006C, */
9202 /* IDL:         DMPAPER_PENV_1_ROTATED=0x006D, */
9203 /* IDL:         DMPAPER_PENV_2_ROTATED=0x006E, */
9204 /* IDL:         DMPAPER_PENV_3_ROTATED=0x006F, */
9205 /* IDL:         DMPAPER_PENV_4_ROTATED=0x0070, */
9206 /* IDL:         DMPAPER_PENV_5_ROTATED=0x0071, */
9207 /* IDL:         DMPAPER_PENV_6_ROTATED=0x0072, */
9208 /* IDL:         DMPAPER_PENV_7_ROTATED=0x0073, */
9209 /* IDL:         DMPAPER_PENV_8_ROTATED=0x0074, */
9210 /* IDL:         DMPAPER_PENV_9_ROTATED=0x0075, */
9211 /* IDL:         DMPAPER_PENV_10_ROTATED=0x0076, */
9212 /* IDL: } */
9213
9214 int
9215 spoolss_dissect_enum_DeviceModePaperSize(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_)
9216 {
9217         guint1632 parameter=0;
9218         if(param){
9219                 parameter=(guint1632)*param;
9220         }
9221         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9222         if(param){
9223                 *param=(guint32)parameter;
9224         }
9225         return offset;
9226 }
9227
9228
9229 /* IDL: enum { */
9230 /* IDL:         DMBIN_UPPER=0x0001, */
9231 /* IDL:         DMBIN_LOWER=0x0002, */
9232 /* IDL:         DMBIN_MIDDLE=0x0003, */
9233 /* IDL:         DMBIN_MANUAL=0x0004, */
9234 /* IDL:         DMBIN_ENVELOPE=0x0005, */
9235 /* IDL:         DMBIN_ENVMANUAL=0x0006, */
9236 /* IDL:         DMBIN_AUTO=0x0007, */
9237 /* IDL:         DMBIN_TRACTOR=0x0008, */
9238 /* IDL:         DMBIN_SMALLFMT=0x0009, */
9239 /* IDL:         DMBIN_LARGEFMT=0x000a, */
9240 /* IDL:         DMBIN_LARGECAPACITY=0x000b, */
9241 /* IDL:         DMBIN_CASSETTE=0x000e, */
9242 /* IDL:         DMBIN_FORMSOURCE=0x000f, */
9243 /* IDL: } */
9244
9245 int
9246 spoolss_dissect_enum_DeviceModeDefaultSource(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_)
9247 {
9248         guint1632 parameter=0;
9249         if(param){
9250                 parameter=(guint1632)*param;
9251         }
9252         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9253         if(param){
9254                 *param=(guint32)parameter;
9255         }
9256         return offset;
9257 }
9258
9259
9260 /* IDL: enum { */
9261 /* IDL:         DMRES_HIGH=0xfffc, */
9262 /* IDL:         DMRES_MEDIUM=0xfffd, */
9263 /* IDL:         DMRES_LOW=0xfffe, */
9264 /* IDL:         DMRES_DRAFT=0xffff, */
9265 /* IDL: } */
9266
9267 int
9268 spoolss_dissect_enum_DeviceModePrintQuality(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_)
9269 {
9270         guint1632 parameter=0;
9271         if(param){
9272                 parameter=(guint1632)*param;
9273         }
9274         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9275         if(param){
9276                 *param=(guint32)parameter;
9277         }
9278         return offset;
9279 }
9280
9281
9282 /* IDL: enum { */
9283 /* IDL:         DMRES_MONOCHROME=0x0001, */
9284 /* IDL:         DMRES_COLOR=0x0002, */
9285 /* IDL: } */
9286
9287 int
9288 spoolss_dissect_enum_DeviceModeColor(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_)
9289 {
9290         guint1632 parameter=0;
9291         if(param){
9292                 parameter=(guint1632)*param;
9293         }
9294         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9295         if(param){
9296                 *param=(guint32)parameter;
9297         }
9298         return offset;
9299 }
9300
9301
9302 /* IDL: enum { */
9303 /* IDL:         DMDUP_SIMPLEX=0x0001, */
9304 /* IDL:         DMDUP_VERTICAL=0x0002, */
9305 /* IDL:         DMDUP_HORIZONTAL=0x0003, */
9306 /* IDL: } */
9307
9308 int
9309 spoolss_dissect_enum_DeviceModeDuplex(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_)
9310 {
9311         guint1632 parameter=0;
9312         if(param){
9313                 parameter=(guint1632)*param;
9314         }
9315         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9316         if(param){
9317                 *param=(guint32)parameter;
9318         }
9319         return offset;
9320 }
9321
9322
9323 /* IDL: enum { */
9324 /* IDL:         DMTT_BITMAP=0x0001, */
9325 /* IDL:         DMTT_DOWNLOAD=0x0002, */
9326 /* IDL:         DMTT_SUBDEV=0x0003, */
9327 /* IDL:         DMTT_DOWNLOAD_OUTLINE=0x0004, */
9328 /* IDL: } */
9329
9330 int
9331 spoolss_dissect_enum_DeviceModeTTOption(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_)
9332 {
9333         guint1632 parameter=0;
9334         if(param){
9335                 parameter=(guint1632)*param;
9336         }
9337         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9338         if(param){
9339                 *param=(guint32)parameter;
9340         }
9341         return offset;
9342 }
9343
9344
9345 /* IDL: enum { */
9346 /* IDL:         DMCOLLATE_FALSE=0x0000, */
9347 /* IDL:         DMCOLLATE_TRUE=0x0001, */
9348 /* IDL: } */
9349
9350 int
9351 spoolss_dissect_enum_DeviceModeCollate(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_)
9352 {
9353         guint1632 parameter=0;
9354         if(param){
9355                 parameter=(guint1632)*param;
9356         }
9357         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9358         if(param){
9359                 *param=(guint32)parameter;
9360         }
9361         return offset;
9362 }
9363
9364
9365 /* IDL: enum { */
9366 /* IDL:         DMNUP_SYSTEM=0x00000001, */
9367 /* IDL:         DMNUP_ONEUP=0x00000002, */
9368 /* IDL: } */
9369
9370 int
9371 spoolss_dissect_enum_DeviceModeNUp(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_)
9372 {
9373         guint32 parameter=0;
9374         if(param){
9375                 parameter=(guint32)*param;
9376         }
9377         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9378         if(param){
9379                 *param=(guint32)parameter;
9380         }
9381         return offset;
9382 }
9383
9384
9385 /* IDL: enum { */
9386 /* IDL:         DMICMMETHOD_NONE=0x00000001, */
9387 /* IDL:         DMICMMETHOD_SYSTEM=0x00000002, */
9388 /* IDL:         DMICMMETHOD_DRIVER=0x00000003, */
9389 /* IDL:         DMICMMETHOD_DEVICE=0x00000004, */
9390 /* IDL: } */
9391
9392 int
9393 spoolss_dissect_enum_DeviceModeICMMethod(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_)
9394 {
9395         guint32 parameter=0;
9396         if(param){
9397                 parameter=(guint32)*param;
9398         }
9399         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9400         if(param){
9401                 *param=(guint32)parameter;
9402         }
9403         return offset;
9404 }
9405
9406
9407 /* IDL: enum { */
9408 /* IDL:         DMICM_SATURATE=0x00000001, */
9409 /* IDL:         DMICM_CONTRAST=0x00000002, */
9410 /* IDL:         DMICM_COLORIMETRIC=0x00000003, */
9411 /* IDL:         DMICM_ABS_COLORIMETRIC=0x00000004, */
9412 /* IDL: } */
9413
9414 int
9415 spoolss_dissect_enum_DeviceModeICMIntent(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_)
9416 {
9417         guint32 parameter=0;
9418         if(param){
9419                 parameter=(guint32)*param;
9420         }
9421         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9422         if(param){
9423                 *param=(guint32)parameter;
9424         }
9425         return offset;
9426 }
9427
9428
9429 /* IDL: enum { */
9430 /* IDL:         DMMEDIA_STANDARD=0x00000001, */
9431 /* IDL:         DMMEDIA_TRANSPARENCY=0x00000002, */
9432 /* IDL:         DMMEDIA_GLOSSY=0x00000003, */
9433 /* IDL: } */
9434
9435 int
9436 spoolss_dissect_enum_DeviceModeMediaType(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_)
9437 {
9438         guint32 parameter=0;
9439         if(param){
9440                 parameter=(guint32)*param;
9441         }
9442         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9443         if(param){
9444                 *param=(guint32)parameter;
9445         }
9446         return offset;
9447 }
9448
9449
9450 /* IDL: enum { */
9451 /* IDL:         DMDITHER_NONE=0x00000001, */
9452 /* IDL:         DMDITHER_COARSE=0x00000002, */
9453 /* IDL:         DMDITHER_FINE=0x00000003, */
9454 /* IDL:         DMDITHER_LINEART=0x00000004, */
9455 /* IDL:         DMDITHER_ERRORDIFFUSION=0x00000005, */
9456 /* IDL:         DMDITHER_RESERVED6=0x00000006, */
9457 /* IDL:         DMDITHER_RESERVED7=0x00000007, */
9458 /* IDL:         DMDITHER_RESERVED8=0x00000008, */
9459 /* IDL:         DMDITHER_RESERVED9=0x00000009, */
9460 /* IDL:         DMDITHER_GRAYSCALE=0x0000000A, */
9461 /* IDL: } */
9462
9463 int
9464 spoolss_dissect_enum_DeviceModeDitherType(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_)
9465 {
9466         guint32 parameter=0;
9467         if(param){
9468                 parameter=(guint32)*param;
9469         }
9470         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
9471         if(param){
9472                 *param=(guint32)parameter;
9473         }
9474         return offset;
9475 }
9476
9477
9478 /* IDL: struct { */
9479 /* IDL:         [to_null(1)] [charset(UTF16)] uint16 devicename[MAXDEVICENAME]; */
9480 /* IDL:         spoolss_DeviceModeSpecVersion specversion; */
9481 /* IDL:         uint16 driverversion; */
9482 /* IDL:         uint16 size; */
9483 /* IDL:         [value(r->driverextra_data.length)] uint16 __driverextra_length; */
9484 /* IDL:         spoolss_DeviceModeFields fields; */
9485 /* IDL:         spoolss_DeviceModeOrientation orientation; */
9486 /* IDL:         spoolss_DeviceModePaperSize papersize; */
9487 /* IDL:         uint16 paperlength; */
9488 /* IDL:         uint16 paperwidth; */
9489 /* IDL:         uint16 scale; */
9490 /* IDL:         uint16 copies; */
9491 /* IDL:         spoolss_DeviceModeDefaultSource defaultsource; */
9492 /* IDL:         spoolss_DeviceModePrintQuality printquality; */
9493 /* IDL:         spoolss_DeviceModeColor color; */
9494 /* IDL:         spoolss_DeviceModeDuplex duplex; */
9495 /* IDL:         uint16 yresolution; */
9496 /* IDL:         spoolss_DeviceModeTTOption ttoption; */
9497 /* IDL:         spoolss_DeviceModeCollate collate; */
9498 /* IDL:         [to_null(1)] [charset(UTF16)] uint16 formname[MAXDEVICENAME]; */
9499 /* IDL:         uint16 logpixels; */
9500 /* IDL:         uint32 bitsperpel; */
9501 /* IDL:         uint32 pelswidth; */
9502 /* IDL:         uint32 pelsheight; */
9503 /* IDL:         spoolss_DeviceModeNUp displayflags; */
9504 /* IDL:         uint32 displayfrequency; */
9505 /* IDL:         spoolss_DeviceModeICMMethod icmmethod; */
9506 /* IDL:         spoolss_DeviceModeICMIntent icmintent; */
9507 /* IDL:         spoolss_DeviceModeMediaType mediatype; */
9508 /* IDL:         spoolss_DeviceModeDitherType dithertype; */
9509 /* IDL:         uint32 reserved1; */
9510 /* IDL:         uint32 reserved2; */
9511 /* IDL:         uint32 panningwidth; */
9512 /* IDL:         uint32 panningheight; */
9513 /* IDL:         [subcontext_size(__driverextra_length)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB driverextra_data; */
9514 /* IDL: } */
9515
9516 static int
9517 spoolss_dissect_element_DeviceMode_devicename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9518 {
9519
9520         return offset;
9521 }
9522
9523 static int
9524 spoolss_dissect_element_DeviceMode_devicename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9525 {
9526         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_devicename, 0);
9527
9528         return offset;
9529 }
9530
9531 static int
9532 spoolss_dissect_element_DeviceMode_specversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9533 {
9534         offset = spoolss_dissect_enum_DeviceModeSpecVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_specversion, 0);
9535
9536         return offset;
9537 }
9538
9539 static int
9540 spoolss_dissect_element_DeviceMode_driverversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9541 {
9542         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_driverversion, 0);
9543
9544         return offset;
9545 }
9546
9547 static int
9548 spoolss_dissect_element_DeviceMode_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9549 {
9550         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_size, 0);
9551
9552         return offset;
9553 }
9554
9555 static int
9556 spoolss_dissect_element_DeviceMode___driverextra_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9557 {
9558         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode___driverextra_length, 0);
9559
9560         return offset;
9561 }
9562
9563 static int
9564 spoolss_dissect_element_DeviceMode_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9565 {
9566         offset = spoolss_dissect_bitmap_DeviceModeFields(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_fields, 0);
9567
9568         return offset;
9569 }
9570
9571 static int
9572 spoolss_dissect_element_DeviceMode_orientation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9573 {
9574         offset = spoolss_dissect_enum_DeviceModeOrientation(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_orientation, 0);
9575
9576         return offset;
9577 }
9578
9579 static int
9580 spoolss_dissect_element_DeviceMode_papersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9581 {
9582         offset = spoolss_dissect_enum_DeviceModePaperSize(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_papersize, 0);
9583
9584         return offset;
9585 }
9586
9587 static int
9588 spoolss_dissect_element_DeviceMode_paperlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9589 {
9590         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_paperlength, 0);
9591
9592         return offset;
9593 }
9594
9595 static int
9596 spoolss_dissect_element_DeviceMode_paperwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9597 {
9598         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_paperwidth, 0);
9599
9600         return offset;
9601 }
9602
9603 static int
9604 spoolss_dissect_element_DeviceMode_scale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9605 {
9606         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_scale, 0);
9607
9608         return offset;
9609 }
9610
9611 static int
9612 spoolss_dissect_element_DeviceMode_copies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9613 {
9614         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_copies, 0);
9615
9616         return offset;
9617 }
9618
9619 static int
9620 spoolss_dissect_element_DeviceMode_defaultsource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9621 {
9622         offset = spoolss_dissect_enum_DeviceModeDefaultSource(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_defaultsource, 0);
9623
9624         return offset;
9625 }
9626
9627 static int
9628 spoolss_dissect_element_DeviceMode_printquality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9629 {
9630         offset = spoolss_dissect_enum_DeviceModePrintQuality(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_printquality, 0);
9631
9632         return offset;
9633 }
9634
9635 static int
9636 spoolss_dissect_element_DeviceMode_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9637 {
9638         offset = spoolss_dissect_enum_DeviceModeColor(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_color, 0);
9639
9640         return offset;
9641 }
9642
9643 static int
9644 spoolss_dissect_element_DeviceMode_duplex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9645 {
9646         offset = spoolss_dissect_enum_DeviceModeDuplex(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_duplex, 0);
9647
9648         return offset;
9649 }
9650
9651 static int
9652 spoolss_dissect_element_DeviceMode_yresolution(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9653 {
9654         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_yresolution, 0);
9655
9656         return offset;
9657 }
9658
9659 static int
9660 spoolss_dissect_element_DeviceMode_ttoption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9661 {
9662         offset = spoolss_dissect_enum_DeviceModeTTOption(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_ttoption, 0);
9663
9664         return offset;
9665 }
9666
9667 static int
9668 spoolss_dissect_element_DeviceMode_collate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9669 {
9670         offset = spoolss_dissect_enum_DeviceModeCollate(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_collate, 0);
9671
9672         return offset;
9673 }
9674
9675 static int
9676 spoolss_dissect_element_DeviceMode_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9677 {
9678
9679         return offset;
9680 }
9681
9682 static int
9683 spoolss_dissect_element_DeviceMode_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9684 {
9685         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_formname, 0);
9686
9687         return offset;
9688 }
9689
9690 static int
9691 spoolss_dissect_element_DeviceMode_logpixels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9692 {
9693         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_logpixels, 0);
9694
9695         return offset;
9696 }
9697
9698 static int
9699 spoolss_dissect_element_DeviceMode_bitsperpel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9700 {
9701         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_bitsperpel, 0);
9702
9703         return offset;
9704 }
9705
9706 static int
9707 spoolss_dissect_element_DeviceMode_pelswidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9708 {
9709         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_pelswidth, 0);
9710
9711         return offset;
9712 }
9713
9714 static int
9715 spoolss_dissect_element_DeviceMode_pelsheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9716 {
9717         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_pelsheight, 0);
9718
9719         return offset;
9720 }
9721
9722 static int
9723 spoolss_dissect_element_DeviceMode_displayflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9724 {
9725         offset = spoolss_dissect_enum_DeviceModeNUp(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_displayflags, 0);
9726
9727         return offset;
9728 }
9729
9730 static int
9731 spoolss_dissect_element_DeviceMode_displayfrequency(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9732 {
9733         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_displayfrequency, 0);
9734
9735         return offset;
9736 }
9737
9738 static int
9739 spoolss_dissect_element_DeviceMode_icmmethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9740 {
9741         offset = spoolss_dissect_enum_DeviceModeICMMethod(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_icmmethod, 0);
9742
9743         return offset;
9744 }
9745
9746 static int
9747 spoolss_dissect_element_DeviceMode_icmintent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9748 {
9749         offset = spoolss_dissect_enum_DeviceModeICMIntent(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_icmintent, 0);
9750
9751         return offset;
9752 }
9753
9754 static int
9755 spoolss_dissect_element_DeviceMode_mediatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9756 {
9757         offset = spoolss_dissect_enum_DeviceModeMediaType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_mediatype, 0);
9758
9759         return offset;
9760 }
9761
9762 static int
9763 spoolss_dissect_element_DeviceMode_dithertype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9764 {
9765         offset = spoolss_dissect_enum_DeviceModeDitherType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_dithertype, 0);
9766
9767         return offset;
9768 }
9769
9770 static int
9771 spoolss_dissect_element_DeviceMode_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9772 {
9773         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_reserved1, 0);
9774
9775         return offset;
9776 }
9777
9778 static int
9779 spoolss_dissect_element_DeviceMode_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9780 {
9781         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_reserved2, 0);
9782
9783         return offset;
9784 }
9785
9786 static int
9787 spoolss_dissect_element_DeviceMode_panningwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9788 {
9789         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_panningwidth, 0);
9790
9791         return offset;
9792 }
9793
9794 static int
9795 spoolss_dissect_element_DeviceMode_panningheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9796 {
9797         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_panningheight, 0);
9798
9799         return offset;
9800 }
9801
9802 static int
9803 spoolss_dissect_element_DeviceMode_driverextra_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9804 {
9805         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
9806         guint0 size;
9807         int conformant = di->conformant_run;
9808         tvbuff_t *subtvb;
9809
9810         if (!conformant) {
9811                 guint32 saved_flags = di->call_data->flags;
9812                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_driverextra_data_, &size);
9813                 di->call_data->flags &= ~DCERPC_IS_NDR64;
9814                 subtvb = tvb_new_subset(tvb, offset, size, -1);
9815                 spoolss_dissect_element_DeviceMode_driverextra_data_(subtvb, 0, pinfo, tree, drep);
9816                 offset += size;
9817                 di->call_data->flags = saved_flags;
9818         }
9819
9820         return offset;
9821 }
9822
9823 static int
9824 spoolss_dissect_element_DeviceMode_driverextra_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
9825 {
9826         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_driverextra_data, 1);
9827
9828         return offset;
9829 }
9830
9831 int
9832 spoolss_dissect_struct_DeviceMode(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_)
9833 {
9834         proto_item *item = NULL;
9835         proto_tree *tree = NULL;
9836         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
9837         int old_offset;
9838
9839         ALIGN_TO_4_BYTES;
9840
9841         old_offset = offset;
9842
9843         if (parent_tree) {
9844                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
9845                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceMode);
9846         }
9847         
9848         offset = spoolss_dissect_element_DeviceMode_devicename(tvb, offset, pinfo, tree, drep);
9849
9850         offset = spoolss_dissect_element_DeviceMode_specversion(tvb, offset, pinfo, tree, drep);
9851
9852         offset = spoolss_dissect_element_DeviceMode_driverversion(tvb, offset, pinfo, tree, drep);
9853
9854         offset = spoolss_dissect_element_DeviceMode_size(tvb, offset, pinfo, tree, drep);
9855
9856         offset = spoolss_dissect_element_DeviceMode___driverextra_length(tvb, offset, pinfo, tree, drep);
9857
9858         offset = spoolss_dissect_element_DeviceMode_fields(tvb, offset, pinfo, tree, drep);
9859
9860         offset = spoolss_dissect_element_DeviceMode_orientation(tvb, offset, pinfo, tree, drep);
9861
9862         offset = spoolss_dissect_element_DeviceMode_papersize(tvb, offset, pinfo, tree, drep);
9863
9864         offset = spoolss_dissect_element_DeviceMode_paperlength(tvb, offset, pinfo, tree, drep);
9865
9866         offset = spoolss_dissect_element_DeviceMode_paperwidth(tvb, offset, pinfo, tree, drep);
9867
9868         offset = spoolss_dissect_element_DeviceMode_scale(tvb, offset, pinfo, tree, drep);
9869
9870         offset = spoolss_dissect_element_DeviceMode_copies(tvb, offset, pinfo, tree, drep);
9871
9872         offset = spoolss_dissect_element_DeviceMode_defaultsource(tvb, offset, pinfo, tree, drep);
9873
9874         offset = spoolss_dissect_element_DeviceMode_printquality(tvb, offset, pinfo, tree, drep);
9875
9876         offset = spoolss_dissect_element_DeviceMode_color(tvb, offset, pinfo, tree, drep);
9877
9878         offset = spoolss_dissect_element_DeviceMode_duplex(tvb, offset, pinfo, tree, drep);
9879
9880         offset = spoolss_dissect_element_DeviceMode_yresolution(tvb, offset, pinfo, tree, drep);
9881
9882         offset = spoolss_dissect_element_DeviceMode_ttoption(tvb, offset, pinfo, tree, drep);
9883
9884         offset = spoolss_dissect_element_DeviceMode_collate(tvb, offset, pinfo, tree, drep);
9885
9886         offset = spoolss_dissect_element_DeviceMode_formname(tvb, offset, pinfo, tree, drep);
9887
9888         offset = spoolss_dissect_element_DeviceMode_logpixels(tvb, offset, pinfo, tree, drep);
9889
9890         offset = spoolss_dissect_element_DeviceMode_bitsperpel(tvb, offset, pinfo, tree, drep);
9891
9892         offset = spoolss_dissect_element_DeviceMode_pelswidth(tvb, offset, pinfo, tree, drep);
9893
9894         offset = spoolss_dissect_element_DeviceMode_pelsheight(tvb, offset, pinfo, tree, drep);
9895
9896         offset = spoolss_dissect_element_DeviceMode_displayflags(tvb, offset, pinfo, tree, drep);
9897
9898         offset = spoolss_dissect_element_DeviceMode_displayfrequency(tvb, offset, pinfo, tree, drep);
9899
9900         offset = spoolss_dissect_element_DeviceMode_icmmethod(tvb, offset, pinfo, tree, drep);
9901
9902         offset = spoolss_dissect_element_DeviceMode_icmintent(tvb, offset, pinfo, tree, drep);
9903
9904         offset = spoolss_dissect_element_DeviceMode_mediatype(tvb, offset, pinfo, tree, drep);
9905
9906         offset = spoolss_dissect_element_DeviceMode_dithertype(tvb, offset, pinfo, tree, drep);
9907
9908         offset = spoolss_dissect_element_DeviceMode_reserved1(tvb, offset, pinfo, tree, drep);
9909
9910         offset = spoolss_dissect_element_DeviceMode_reserved2(tvb, offset, pinfo, tree, drep);
9911
9912         offset = spoolss_dissect_element_DeviceMode_panningwidth(tvb, offset, pinfo, tree, drep);
9913
9914         offset = spoolss_dissect_element_DeviceMode_panningheight(tvb, offset, pinfo, tree, drep);
9915
9916         offset = spoolss_dissect_element_DeviceMode_driverextra_data(tvb, offset, pinfo, tree, drep);
9917
9918
9919         proto_item_set_len(item, offset-old_offset);
9920
9921
9922         if (di->call_data->flags & DCERPC_IS_NDR64) {
9923                 ALIGN_TO_4_BYTES;
9924         }
9925
9926         return offset;
9927 }
9928
9929
9930 /* IDL: bitmap { */
9931 /* IDL:         PRINTER_ENUM_DEFAULT =  0x00000001 , */
9932 /* IDL:         PRINTER_ENUM_LOCAL =  0x00000002 , */
9933 /* IDL:         PRINTER_ENUM_CONNECTIONS =  0x00000004 , */
9934 /* IDL:         PRINTER_ENUM_FAVORITE =  0x00000004 , */
9935 /* IDL:         PRINTER_ENUM_NAME =  0x00000008 , */
9936 /* IDL:         PRINTER_ENUM_REMOTE =  0x00000010 , */
9937 /* IDL:         PRINTER_ENUM_SHARED =  0x00000020 , */
9938 /* IDL:         PRINTER_ENUM_NETWORK =  0x00000040 , */
9939 /* IDL:         PRINTER_ENUM_EXPAND =  0x00004000 , */
9940 /* IDL:         PRINTER_ENUM_CONTAINER =  0x00008000 , */
9941 /* IDL:         PRINTER_ENUM_ICON1 =  0x00010000 , */
9942 /* IDL:         PRINTER_ENUM_ICON2 =  0x00020000 , */
9943 /* IDL:         PRINTER_ENUM_ICON3 =  0x00040000 , */
9944 /* IDL:         PRINTER_ENUM_ICON4 =  0x00080000 , */
9945 /* IDL:         PRINTER_ENUM_ICON5 =  0x00100000 , */
9946 /* IDL:         PRINTER_ENUM_ICON6 =  0x00200000 , */
9947 /* IDL:         PRINTER_ENUM_ICON7 =  0x00400000 , */
9948 /* IDL:         PRINTER_ENUM_ICON8 =  0x00800000 , */
9949 /* IDL:         PRINTER_ENUM_HIDE =  0x01000000 , */
9950 /* IDL: } */
9951
9952 int
9953 spoolss_dissect_bitmap_EnumPrinterFlags(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_)
9954 {
9955         proto_item *item = NULL;
9956         proto_tree *tree = NULL;
9957
9958         guint32 flags;
9959         ALIGN_TO_4_BYTES;
9960
9961         if (parent_tree) {
9962                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
9963                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_EnumPrinterFlags);
9964         }
9965
9966         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
9967         proto_item_append_text(item, ": ");
9968
9969         if (!flags)
9970                 proto_item_append_text(item, "(No values set)");
9971
9972         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT, tvb, offset-4, 4, flags);
9973         if (flags&( 0x00000001 )){
9974                 proto_item_append_text(item, "PRINTER_ENUM_DEFAULT");
9975                 if (flags & (~( 0x00000001 )))
9976                         proto_item_append_text(item, ", ");
9977         }
9978         flags&=(~( 0x00000001 ));
9979
9980         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL, tvb, offset-4, 4, flags);
9981         if (flags&( 0x00000002 )){
9982                 proto_item_append_text(item, "PRINTER_ENUM_LOCAL");
9983                 if (flags & (~( 0x00000002 )))
9984                         proto_item_append_text(item, ", ");
9985         }
9986         flags&=(~( 0x00000002 ));
9987
9988         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS, tvb, offset-4, 4, flags);
9989         if (flags&( 0x00000004 )){
9990                 proto_item_append_text(item, "PRINTER_ENUM_CONNECTIONS");
9991                 if (flags & (~( 0x00000004 )))
9992                         proto_item_append_text(item, ", ");
9993         }
9994         flags&=(~( 0x00000004 ));
9995
9996         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE, tvb, offset-4, 4, flags);
9997         if (flags&( 0x00000004 )){
9998                 proto_item_append_text(item, "PRINTER_ENUM_FAVORITE");
9999                 if (flags & (~( 0x00000004 )))
10000                         proto_item_append_text(item, ", ");
10001         }
10002         flags&=(~( 0x00000004 ));
10003
10004         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME, tvb, offset-4, 4, flags);
10005         if (flags&( 0x00000008 )){
10006                 proto_item_append_text(item, "PRINTER_ENUM_NAME");
10007                 if (flags & (~( 0x00000008 )))
10008                         proto_item_append_text(item, ", ");
10009         }
10010         flags&=(~( 0x00000008 ));
10011
10012         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE, tvb, offset-4, 4, flags);
10013         if (flags&( 0x00000010 )){
10014                 proto_item_append_text(item, "PRINTER_ENUM_REMOTE");
10015                 if (flags & (~( 0x00000010 )))
10016                         proto_item_append_text(item, ", ");
10017         }
10018         flags&=(~( 0x00000010 ));
10019
10020         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED, tvb, offset-4, 4, flags);
10021         if (flags&( 0x00000020 )){
10022                 proto_item_append_text(item, "PRINTER_ENUM_SHARED");
10023                 if (flags & (~( 0x00000020 )))
10024                         proto_item_append_text(item, ", ");
10025         }
10026         flags&=(~( 0x00000020 ));
10027
10028         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK, tvb, offset-4, 4, flags);
10029         if (flags&( 0x00000040 )){
10030                 proto_item_append_text(item, "PRINTER_ENUM_NETWORK");
10031                 if (flags & (~( 0x00000040 )))
10032                         proto_item_append_text(item, ", ");
10033         }
10034         flags&=(~( 0x00000040 ));
10035
10036         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND, tvb, offset-4, 4, flags);
10037         if (flags&( 0x00004000 )){
10038                 proto_item_append_text(item, "PRINTER_ENUM_EXPAND");
10039                 if (flags & (~( 0x00004000 )))
10040                         proto_item_append_text(item, ", ");
10041         }
10042         flags&=(~( 0x00004000 ));
10043
10044         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER, tvb, offset-4, 4, flags);
10045         if (flags&( 0x00008000 )){
10046                 proto_item_append_text(item, "PRINTER_ENUM_CONTAINER");
10047                 if (flags & (~( 0x00008000 )))
10048                         proto_item_append_text(item, ", ");
10049         }
10050         flags&=(~( 0x00008000 ));
10051
10052         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1, tvb, offset-4, 4, flags);
10053         if (flags&( 0x00010000 )){
10054                 proto_item_append_text(item, "PRINTER_ENUM_ICON1");
10055                 if (flags & (~( 0x00010000 )))
10056                         proto_item_append_text(item, ", ");
10057         }
10058         flags&=(~( 0x00010000 ));
10059
10060         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2, tvb, offset-4, 4, flags);
10061         if (flags&( 0x00020000 )){
10062                 proto_item_append_text(item, "PRINTER_ENUM_ICON2");
10063                 if (flags & (~( 0x00020000 )))
10064                         proto_item_append_text(item, ", ");
10065         }
10066         flags&=(~( 0x00020000 ));
10067
10068         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3, tvb, offset-4, 4, flags);
10069         if (flags&( 0x00040000 )){
10070                 proto_item_append_text(item, "PRINTER_ENUM_ICON3");
10071                 if (flags & (~( 0x00040000 )))
10072                         proto_item_append_text(item, ", ");
10073         }
10074         flags&=(~( 0x00040000 ));
10075
10076         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4, tvb, offset-4, 4, flags);
10077         if (flags&( 0x00080000 )){
10078                 proto_item_append_text(item, "PRINTER_ENUM_ICON4");
10079                 if (flags & (~( 0x00080000 )))
10080                         proto_item_append_text(item, ", ");
10081         }
10082         flags&=(~( 0x00080000 ));
10083
10084         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5, tvb, offset-4, 4, flags);
10085         if (flags&( 0x00100000 )){
10086                 proto_item_append_text(item, "PRINTER_ENUM_ICON5");
10087                 if (flags & (~( 0x00100000 )))
10088                         proto_item_append_text(item, ", ");
10089         }
10090         flags&=(~( 0x00100000 ));
10091
10092         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6, tvb, offset-4, 4, flags);
10093         if (flags&( 0x00200000 )){
10094                 proto_item_append_text(item, "PRINTER_ENUM_ICON6");
10095                 if (flags & (~( 0x00200000 )))
10096                         proto_item_append_text(item, ", ");
10097         }
10098         flags&=(~( 0x00200000 ));
10099
10100         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7, tvb, offset-4, 4, flags);
10101         if (flags&( 0x00400000 )){
10102                 proto_item_append_text(item, "PRINTER_ENUM_ICON7");
10103                 if (flags & (~( 0x00400000 )))
10104                         proto_item_append_text(item, ", ");
10105         }
10106         flags&=(~( 0x00400000 ));
10107
10108         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8, tvb, offset-4, 4, flags);
10109         if (flags&( 0x00800000 )){
10110                 proto_item_append_text(item, "PRINTER_ENUM_ICON8");
10111                 if (flags & (~( 0x00800000 )))
10112                         proto_item_append_text(item, ", ");
10113         }
10114         flags&=(~( 0x00800000 ));
10115
10116         proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE, tvb, offset-4, 4, flags);
10117         if (flags&( 0x01000000 )){
10118                 proto_item_append_text(item, "PRINTER_ENUM_HIDE");
10119                 if (flags & (~( 0x01000000 )))
10120                         proto_item_append_text(item, ", ");
10121         }
10122         flags&=(~( 0x01000000 ));
10123
10124         if (flags) {
10125                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
10126         }
10127
10128         return offset;
10129 }
10130
10131
10132 /* IDL: bitmap { */
10133 /* IDL:         PRINTER_ATTRIBUTE_QUEUED =  0x00000001 , */
10134 /* IDL:         PRINTER_ATTRIBUTE_DIRECT =  0x00000002 , */
10135 /* IDL:         PRINTER_ATTRIBUTE_DEFAULT =  0x00000004 , */
10136 /* IDL:         PRINTER_ATTRIBUTE_SHARED =  0x00000008 , */
10137 /* IDL:         PRINTER_ATTRIBUTE_NETWORK =  0x00000010 , */
10138 /* IDL:         PRINTER_ATTRIBUTE_HIDDEN =  0x00000020 , */
10139 /* IDL:         PRINTER_ATTRIBUTE_LOCAL =  0x00000040 , */
10140 /* IDL:         PRINTER_ATTRIBUTE_ENABLE_DEVQ =  0x00000080 , */
10141 /* IDL:         PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS =  0x00000100 , */
10142 /* IDL:         PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST =  0x00000200 , */
10143 /* IDL:         PRINTER_ATTRIBUTE_WORK_OFFLINE =  0x00000400 , */
10144 /* IDL:         PRINTER_ATTRIBUTE_ENABLE_BIDI =  0x00000800 , */
10145 /* IDL:         PRINTER_ATTRIBUTE_RAW_ONLY =  0x00001000 , */
10146 /* IDL:         PRINTER_ATTRIBUTE_PUBLISHED =  0x00002000 , */
10147 /* IDL:         PRINTER_ATTRIBUTE_FAX =  0x00004000 , */
10148 /* IDL:         PRINTER_ATTRIBUTE_TS =  0x00008000 , */
10149 /* IDL: } */
10150
10151 int
10152 spoolss_dissect_bitmap_PrinterAttributes(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_)
10153 {
10154         proto_item *item = NULL;
10155         proto_tree *tree = NULL;
10156
10157         guint32 flags;
10158         ALIGN_TO_4_BYTES;
10159
10160         if (parent_tree) {
10161                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
10162                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterAttributes);
10163         }
10164
10165         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
10166         proto_item_append_text(item, ": ");
10167
10168         if (!flags)
10169                 proto_item_append_text(item, "(No values set)");
10170
10171         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED, tvb, offset-4, 4, flags);
10172         if (flags&( 0x00000001 )){
10173                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_QUEUED");
10174                 if (flags & (~( 0x00000001 )))
10175                         proto_item_append_text(item, ", ");
10176         }
10177         flags&=(~( 0x00000001 ));
10178
10179         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT, tvb, offset-4, 4, flags);
10180         if (flags&( 0x00000002 )){
10181                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_DIRECT");
10182                 if (flags & (~( 0x00000002 )))
10183                         proto_item_append_text(item, ", ");
10184         }
10185         flags&=(~( 0x00000002 ));
10186
10187         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT, tvb, offset-4, 4, flags);
10188         if (flags&( 0x00000004 )){
10189                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_DEFAULT");
10190                 if (flags & (~( 0x00000004 )))
10191                         proto_item_append_text(item, ", ");
10192         }
10193         flags&=(~( 0x00000004 ));
10194
10195         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED, tvb, offset-4, 4, flags);
10196         if (flags&( 0x00000008 )){
10197                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_SHARED");
10198                 if (flags & (~( 0x00000008 )))
10199                         proto_item_append_text(item, ", ");
10200         }
10201         flags&=(~( 0x00000008 ));
10202
10203         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK, tvb, offset-4, 4, flags);
10204         if (flags&( 0x00000010 )){
10205                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_NETWORK");
10206                 if (flags & (~( 0x00000010 )))
10207                         proto_item_append_text(item, ", ");
10208         }
10209         flags&=(~( 0x00000010 ));
10210
10211         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN, tvb, offset-4, 4, flags);
10212         if (flags&( 0x00000020 )){
10213                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_HIDDEN");
10214                 if (flags & (~( 0x00000020 )))
10215                         proto_item_append_text(item, ", ");
10216         }
10217         flags&=(~( 0x00000020 ));
10218
10219         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL, tvb, offset-4, 4, flags);
10220         if (flags&( 0x00000040 )){
10221                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_LOCAL");
10222                 if (flags & (~( 0x00000040 )))
10223                         proto_item_append_text(item, ", ");
10224         }
10225         flags&=(~( 0x00000040 ));
10226
10227         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ, tvb, offset-4, 4, flags);
10228         if (flags&( 0x00000080 )){
10229                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_ENABLE_DEVQ");
10230                 if (flags & (~( 0x00000080 )))
10231                         proto_item_append_text(item, ", ");
10232         }
10233         flags&=(~( 0x00000080 ));
10234
10235         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, tvb, offset-4, 4, flags);
10236         if (flags&( 0x00000100 )){
10237                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS");
10238                 if (flags & (~( 0x00000100 )))
10239                         proto_item_append_text(item, ", ");
10240         }
10241         flags&=(~( 0x00000100 ));
10242
10243         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, tvb, offset-4, 4, flags);
10244         if (flags&( 0x00000200 )){
10245                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST");
10246                 if (flags & (~( 0x00000200 )))
10247                         proto_item_append_text(item, ", ");
10248         }
10249         flags&=(~( 0x00000200 ));
10250
10251         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE, tvb, offset-4, 4, flags);
10252         if (flags&( 0x00000400 )){
10253                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_WORK_OFFLINE");
10254                 if (flags & (~( 0x00000400 )))
10255                         proto_item_append_text(item, ", ");
10256         }
10257         flags&=(~( 0x00000400 ));
10258
10259         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI, tvb, offset-4, 4, flags);
10260         if (flags&( 0x00000800 )){
10261                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_ENABLE_BIDI");
10262                 if (flags & (~( 0x00000800 )))
10263                         proto_item_append_text(item, ", ");
10264         }
10265         flags&=(~( 0x00000800 ));
10266
10267         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY, tvb, offset-4, 4, flags);
10268         if (flags&( 0x00001000 )){
10269                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_RAW_ONLY");
10270                 if (flags & (~( 0x00001000 )))
10271                         proto_item_append_text(item, ", ");
10272         }
10273         flags&=(~( 0x00001000 ));
10274
10275         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED, tvb, offset-4, 4, flags);
10276         if (flags&( 0x00002000 )){
10277                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_PUBLISHED");
10278                 if (flags & (~( 0x00002000 )))
10279                         proto_item_append_text(item, ", ");
10280         }
10281         flags&=(~( 0x00002000 ));
10282
10283         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX, tvb, offset-4, 4, flags);
10284         if (flags&( 0x00004000 )){
10285                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_FAX");
10286                 if (flags & (~( 0x00004000 )))
10287                         proto_item_append_text(item, ", ");
10288         }
10289         flags&=(~( 0x00004000 ));
10290
10291         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS, tvb, offset-4, 4, flags);
10292         if (flags&( 0x00008000 )){
10293                 proto_item_append_text(item, "PRINTER_ATTRIBUTE_TS");
10294                 if (flags & (~( 0x00008000 )))
10295                         proto_item_append_text(item, ", ");
10296         }
10297         flags&=(~( 0x00008000 ));
10298
10299         if (flags) {
10300                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
10301         }
10302
10303         return offset;
10304 }
10305
10306
10307 /* IDL: struct { */
10308 /* IDL:         spoolss_EnumPrinterFlags flags; */
10309 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *description; */
10310 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *name; */
10311 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *comment; */
10312 /* IDL: } */
10313
10314 static int
10315 spoolss_dissect_element_PrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10316 {
10317         offset = spoolss_dissect_bitmap_EnumPrinterFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_flags, 0);
10318
10319         return offset;
10320 }
10321
10322 static int
10323 spoolss_dissect_element_PrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10324 {
10325         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo1_description_, , "Pointer to Description (string)",hf_spoolss_spoolss_PrinterInfo1_description);
10326
10327         return offset;
10328 }
10329
10330 static int
10331 spoolss_dissect_element_PrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10332 {
10333         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_description , 0);
10334
10335         return offset;
10336 }
10337
10338 static int
10339 spoolss_dissect_element_PrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10340 {
10341         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo1_name_, , "Pointer to Name (string)",hf_spoolss_spoolss_PrinterInfo1_name);
10342
10343         return offset;
10344 }
10345
10346 static int
10347 spoolss_dissect_element_PrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10348 {
10349         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_name , 0);
10350
10351         return offset;
10352 }
10353
10354 static int
10355 spoolss_dissect_element_PrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10356 {
10357         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo1_comment_, , "Pointer to Comment (string)",hf_spoolss_spoolss_PrinterInfo1_comment);
10358
10359         return offset;
10360 }
10361
10362 static int
10363 spoolss_dissect_element_PrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10364 {
10365         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_comment , 0);
10366
10367         return offset;
10368 }
10369
10370 int
10371 spoolss_dissect_struct_PrinterInfo1(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_)
10372 {
10373         proto_item *item = NULL;
10374         proto_tree *tree = NULL;
10375         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
10376         int old_offset;
10377
10378         ALIGN_TO_5_BYTES;
10379
10380         old_offset = offset;
10381
10382         if (parent_tree) {
10383                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
10384                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo1);
10385         }
10386         
10387         offset = spoolss_dissect_element_PrinterInfo1_flags(tvb, offset, pinfo, tree, drep);
10388
10389         offset = spoolss_dissect_element_PrinterInfo1_description(tvb, offset, pinfo, tree, drep);
10390
10391         offset = spoolss_dissect_element_PrinterInfo1_name(tvb, offset, pinfo, tree, drep);
10392
10393         offset = spoolss_dissect_element_PrinterInfo1_comment(tvb, offset, pinfo, tree, drep);
10394
10395
10396         proto_item_set_len(item, offset-old_offset);
10397
10398
10399         if (di->call_data->flags & DCERPC_IS_NDR64) {
10400                 ALIGN_TO_5_BYTES;
10401         }
10402
10403         return offset;
10404 }
10405
10406
10407 /* IDL: struct { */
10408 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *servername; */
10409 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
10410 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *sharename; */
10411 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *portname; */
10412 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *drivername; */
10413 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *comment; */
10414 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *location; */
10415 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
10416 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *sepfile; */
10417 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printprocessor; */
10418 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *datatype; */
10419 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *parameters; */
10420 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
10421 /* IDL:         spoolss_PrinterAttributes attributes; */
10422 /* IDL:         [range(0,99)] uint32 priority; */
10423 /* IDL:         uint32 defaultpriority; */
10424 /* IDL:         uint32 starttime; */
10425 /* IDL:         uint32 untiltime; */
10426 /* IDL:         spoolss_PrinterStatus status; */
10427 /* IDL:         uint32 cjobs; */
10428 /* IDL:         uint32 averageppm; */
10429 /* IDL: } */
10430
10431 static int
10432 spoolss_dissect_element_PrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10433 {
10434         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_servername_, , "Pointer to Servername (string)",hf_spoolss_spoolss_PrinterInfo2_servername);
10435
10436         return offset;
10437 }
10438
10439 static int
10440 spoolss_dissect_element_PrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10441 {
10442         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_servername , 0);
10443
10444         return offset;
10445 }
10446
10447 static int
10448 spoolss_dissect_element_PrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10449 {
10450         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo2_printername);
10451
10452         return offset;
10453 }
10454
10455 static int
10456 spoolss_dissect_element_PrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10457 {
10458         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_printername , 0);
10459
10460         return offset;
10461 }
10462
10463 static int
10464 spoolss_dissect_element_PrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10465 {
10466         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_sharename_, , "Pointer to Sharename (string)",hf_spoolss_spoolss_PrinterInfo2_sharename);
10467
10468         return offset;
10469 }
10470
10471 static int
10472 spoolss_dissect_element_PrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10473 {
10474         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_sharename , 0);
10475
10476         return offset;
10477 }
10478
10479 static int
10480 spoolss_dissect_element_PrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10481 {
10482         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_portname_, , "Pointer to Portname (string)",hf_spoolss_spoolss_PrinterInfo2_portname);
10483
10484         return offset;
10485 }
10486
10487 static int
10488 spoolss_dissect_element_PrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10489 {
10490         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_portname , 0);
10491
10492         return offset;
10493 }
10494
10495 static int
10496 spoolss_dissect_element_PrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10497 {
10498         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_drivername_, , "Pointer to Drivername (string)",hf_spoolss_spoolss_PrinterInfo2_drivername);
10499
10500         return offset;
10501 }
10502
10503 static int
10504 spoolss_dissect_element_PrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10505 {
10506         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_drivername , 0);
10507
10508         return offset;
10509 }
10510
10511 static int
10512 spoolss_dissect_element_PrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10513 {
10514         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_comment_, , "Pointer to Comment (string)",hf_spoolss_spoolss_PrinterInfo2_comment);
10515
10516         return offset;
10517 }
10518
10519 static int
10520 spoolss_dissect_element_PrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10521 {
10522         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_comment , 0);
10523
10524         return offset;
10525 }
10526
10527 static int
10528 spoolss_dissect_element_PrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10529 {
10530         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_location_, , "Pointer to Location (string)",hf_spoolss_spoolss_PrinterInfo2_location);
10531
10532         return offset;
10533 }
10534
10535 static int
10536 spoolss_dissect_element_PrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10537 {
10538         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_location , 0);
10539
10540         return offset;
10541 }
10542
10543 static int
10544 spoolss_dissect_element_PrinterInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10545 {
10546         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_PrinterInfo2_devmode);
10547
10548         return offset;
10549 }
10550
10551 static int
10552 spoolss_dissect_element_PrinterInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10553 {
10554         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
10555         guint0 size;
10556         int conformant = di->conformant_run;
10557         tvbuff_t *subtvb;
10558
10559         if (!conformant) {
10560                 guint32 saved_flags = di->call_data->flags;
10561                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_devmode_, &size);
10562                 di->call_data->flags &= ~DCERPC_IS_NDR64;
10563                 subtvb = tvb_new_subset(tvb, offset, size, -1);
10564                 spoolss_dissect_element_PrinterInfo2_devmode__(subtvb, 0, pinfo, tree, drep);
10565                 offset += size;
10566                 di->call_data->flags = saved_flags;
10567         }
10568
10569         return offset;
10570 }
10571
10572 static int
10573 spoolss_dissect_element_PrinterInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10574 {
10575         offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo2_devmode,0);
10576
10577         return offset;
10578 }
10579
10580 static int
10581 spoolss_dissect_element_PrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10582 {
10583         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_sepfile_, , "Pointer to Sepfile (string)",hf_spoolss_spoolss_PrinterInfo2_sepfile);
10584
10585         return offset;
10586 }
10587
10588 static int
10589 spoolss_dissect_element_PrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10590 {
10591         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_sepfile , 0);
10592
10593         return offset;
10594 }
10595
10596 static int
10597 spoolss_dissect_element_PrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10598 {
10599         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_printprocessor_, , "Pointer to Printprocessor (string)",hf_spoolss_spoolss_PrinterInfo2_printprocessor);
10600
10601         return offset;
10602 }
10603
10604 static int
10605 spoolss_dissect_element_PrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10606 {
10607         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_printprocessor , 0);
10608
10609         return offset;
10610 }
10611
10612 static int
10613 spoolss_dissect_element_PrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10614 {
10615         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_datatype_, , "Pointer to Datatype (string)",hf_spoolss_spoolss_PrinterInfo2_datatype);
10616
10617         return offset;
10618 }
10619
10620 static int
10621 spoolss_dissect_element_PrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10622 {
10623         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_datatype , 0);
10624
10625         return offset;
10626 }
10627
10628 static int
10629 spoolss_dissect_element_PrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10630 {
10631         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_parameters_, , "Pointer to Parameters (string)",hf_spoolss_spoolss_PrinterInfo2_parameters);
10632
10633         return offset;
10634 }
10635
10636 static int
10637 spoolss_dissect_element_PrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10638 {
10639         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_parameters , 0);
10640
10641         return offset;
10642 }
10643
10644 static int
10645 spoolss_dissect_element_PrinterInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10646 {
10647         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_PrinterInfo2_secdesc);
10648
10649         return offset;
10650 }
10651
10652 static int
10653 spoolss_dissect_element_PrinterInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10654 {
10655         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
10656         guint0 size;
10657         int conformant = di->conformant_run;
10658         tvbuff_t *subtvb;
10659
10660         if (!conformant) {
10661                 guint32 saved_flags = di->call_data->flags;
10662                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_secdesc_, &size);
10663                 di->call_data->flags &= ~DCERPC_IS_NDR64;
10664                 subtvb = tvb_new_subset(tvb, offset, size, -1);
10665                 spoolss_dissect_element_PrinterInfo2_secdesc__(subtvb, 0, pinfo, tree, drep);
10666                 offset += size;
10667                 di->call_data->flags = saved_flags;
10668         }
10669
10670         return offset;
10671 }
10672
10673 static int
10674 spoolss_dissect_element_PrinterInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10675 {
10676         offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo2_secdesc,0);
10677
10678         return offset;
10679 }
10680
10681 static int
10682 spoolss_dissect_element_PrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10683 {
10684         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_attributes, 0);
10685
10686         return offset;
10687 }
10688
10689 static int
10690 spoolss_dissect_element_PrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10691 {
10692         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_priority, 0);
10693
10694         return offset;
10695 }
10696
10697 static int
10698 spoolss_dissect_element_PrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10699 {
10700         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_defaultpriority, 0);
10701
10702         return offset;
10703 }
10704
10705 static int
10706 spoolss_dissect_element_PrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10707 {
10708         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_starttime, 0);
10709
10710         return offset;
10711 }
10712
10713 static int
10714 spoolss_dissect_element_PrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10715 {
10716         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_untiltime, 0);
10717
10718         return offset;
10719 }
10720
10721 static int
10722 spoolss_dissect_element_PrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10723 {
10724         offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_status, 0);
10725
10726         return offset;
10727 }
10728
10729 static int
10730 spoolss_dissect_element_PrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10731 {
10732         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_cjobs, 0);
10733
10734         return offset;
10735 }
10736
10737 static int
10738 spoolss_dissect_element_PrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10739 {
10740         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_averageppm, 0);
10741
10742         return offset;
10743 }
10744
10745 int
10746 spoolss_dissect_struct_PrinterInfo2(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_)
10747 {
10748         proto_item *item = NULL;
10749         proto_tree *tree = NULL;
10750         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
10751         int old_offset;
10752
10753         ALIGN_TO_5_BYTES;
10754
10755         old_offset = offset;
10756
10757         if (parent_tree) {
10758                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
10759                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo2);
10760         }
10761         
10762         offset = spoolss_dissect_element_PrinterInfo2_servername(tvb, offset, pinfo, tree, drep);
10763
10764         offset = spoolss_dissect_element_PrinterInfo2_printername(tvb, offset, pinfo, tree, drep);
10765
10766         offset = spoolss_dissect_element_PrinterInfo2_sharename(tvb, offset, pinfo, tree, drep);
10767
10768         offset = spoolss_dissect_element_PrinterInfo2_portname(tvb, offset, pinfo, tree, drep);
10769
10770         offset = spoolss_dissect_element_PrinterInfo2_drivername(tvb, offset, pinfo, tree, drep);
10771
10772         offset = spoolss_dissect_element_PrinterInfo2_comment(tvb, offset, pinfo, tree, drep);
10773
10774         offset = spoolss_dissect_element_PrinterInfo2_location(tvb, offset, pinfo, tree, drep);
10775
10776         offset = spoolss_dissect_element_PrinterInfo2_devmode(tvb, offset, pinfo, tree, drep);
10777
10778         offset = spoolss_dissect_element_PrinterInfo2_sepfile(tvb, offset, pinfo, tree, drep);
10779
10780         offset = spoolss_dissect_element_PrinterInfo2_printprocessor(tvb, offset, pinfo, tree, drep);
10781
10782         offset = spoolss_dissect_element_PrinterInfo2_datatype(tvb, offset, pinfo, tree, drep);
10783
10784         offset = spoolss_dissect_element_PrinterInfo2_parameters(tvb, offset, pinfo, tree, drep);
10785
10786         offset = spoolss_dissect_element_PrinterInfo2_secdesc(tvb, offset, pinfo, tree, drep);
10787
10788         offset = spoolss_dissect_element_PrinterInfo2_attributes(tvb, offset, pinfo, tree, drep);
10789
10790         offset = spoolss_dissect_element_PrinterInfo2_priority(tvb, offset, pinfo, tree, drep);
10791
10792         offset = spoolss_dissect_element_PrinterInfo2_defaultpriority(tvb, offset, pinfo, tree, drep);
10793
10794         offset = spoolss_dissect_element_PrinterInfo2_starttime(tvb, offset, pinfo, tree, drep);
10795
10796         offset = spoolss_dissect_element_PrinterInfo2_untiltime(tvb, offset, pinfo, tree, drep);
10797
10798         offset = spoolss_dissect_element_PrinterInfo2_status(tvb, offset, pinfo, tree, drep);
10799
10800         offset = spoolss_dissect_element_PrinterInfo2_cjobs(tvb, offset, pinfo, tree, drep);
10801
10802         offset = spoolss_dissect_element_PrinterInfo2_averageppm(tvb, offset, pinfo, tree, drep);
10803
10804
10805         proto_item_set_len(item, offset-old_offset);
10806
10807
10808         if (di->call_data->flags & DCERPC_IS_NDR64) {
10809                 ALIGN_TO_5_BYTES;
10810         }
10811
10812         return offset;
10813 }
10814
10815
10816 /* IDL: struct { */
10817 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
10818 /* IDL: } */
10819
10820 static int
10821 spoolss_dissect_element_PrinterInfo3_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10822 {
10823         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo3_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_PrinterInfo3_secdesc);
10824
10825         return offset;
10826 }
10827
10828 static int
10829 spoolss_dissect_element_PrinterInfo3_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10830 {
10831         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
10832         guint0 size;
10833         int conformant = di->conformant_run;
10834         tvbuff_t *subtvb;
10835
10836         if (!conformant) {
10837                 guint32 saved_flags = di->call_data->flags;
10838                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo3_secdesc_, &size);
10839                 di->call_data->flags &= ~DCERPC_IS_NDR64;
10840                 subtvb = tvb_new_subset(tvb, offset, size, -1);
10841                 spoolss_dissect_element_PrinterInfo3_secdesc__(subtvb, 0, pinfo, tree, drep);
10842                 offset += size;
10843                 di->call_data->flags = saved_flags;
10844         }
10845
10846         return offset;
10847 }
10848
10849 static int
10850 spoolss_dissect_element_PrinterInfo3_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10851 {
10852         offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo3_secdesc,0);
10853
10854         return offset;
10855 }
10856
10857 int
10858 spoolss_dissect_struct_PrinterInfo3(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_)
10859 {
10860         proto_item *item = NULL;
10861         proto_tree *tree = NULL;
10862         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
10863         int old_offset;
10864
10865         ALIGN_TO_5_BYTES;
10866
10867         old_offset = offset;
10868
10869         if (parent_tree) {
10870                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
10871                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo3);
10872         }
10873         
10874         offset = spoolss_dissect_element_PrinterInfo3_secdesc(tvb, offset, pinfo, tree, drep);
10875
10876
10877         proto_item_set_len(item, offset-old_offset);
10878
10879
10880         if (di->call_data->flags & DCERPC_IS_NDR64) {
10881                 ALIGN_TO_5_BYTES;
10882         }
10883
10884         return offset;
10885 }
10886
10887
10888 /* IDL: struct { */
10889 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
10890 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *servername; */
10891 /* IDL:         spoolss_PrinterAttributes attributes; */
10892 /* IDL: } */
10893
10894 static int
10895 spoolss_dissect_element_PrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10896 {
10897         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo4_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo4_printername);
10898
10899         return offset;
10900 }
10901
10902 static int
10903 spoolss_dissect_element_PrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10904 {
10905         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo4_printername , 0);
10906
10907         return offset;
10908 }
10909
10910 static int
10911 spoolss_dissect_element_PrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10912 {
10913         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo4_servername_, , "Pointer to Servername (string)",hf_spoolss_spoolss_PrinterInfo4_servername);
10914
10915         return offset;
10916 }
10917
10918 static int
10919 spoolss_dissect_element_PrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10920 {
10921         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo4_servername , 0);
10922
10923         return offset;
10924 }
10925
10926 static int
10927 spoolss_dissect_element_PrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10928 {
10929         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo4_attributes, 0);
10930
10931         return offset;
10932 }
10933
10934 int
10935 spoolss_dissect_struct_PrinterInfo4(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_)
10936 {
10937         proto_item *item = NULL;
10938         proto_tree *tree = NULL;
10939         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
10940         int old_offset;
10941
10942         ALIGN_TO_5_BYTES;
10943
10944         old_offset = offset;
10945
10946         if (parent_tree) {
10947                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
10948                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo4);
10949         }
10950         
10951         offset = spoolss_dissect_element_PrinterInfo4_printername(tvb, offset, pinfo, tree, drep);
10952
10953         offset = spoolss_dissect_element_PrinterInfo4_servername(tvb, offset, pinfo, tree, drep);
10954
10955         offset = spoolss_dissect_element_PrinterInfo4_attributes(tvb, offset, pinfo, tree, drep);
10956
10957
10958         proto_item_set_len(item, offset-old_offset);
10959
10960
10961         if (di->call_data->flags & DCERPC_IS_NDR64) {
10962                 ALIGN_TO_5_BYTES;
10963         }
10964
10965         return offset;
10966 }
10967
10968
10969 /* IDL: struct { */
10970 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
10971 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *portname; */
10972 /* IDL:         spoolss_PrinterAttributes attributes; */
10973 /* IDL:         uint32 device_not_selected_timeout; */
10974 /* IDL:         uint32 transmission_retry_timeout; */
10975 /* IDL: } */
10976
10977 static int
10978 spoolss_dissect_element_PrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10979 {
10980         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo5_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo5_printername);
10981
10982         return offset;
10983 }
10984
10985 static int
10986 spoolss_dissect_element_PrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10987 {
10988         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_printername , 0);
10989
10990         return offset;
10991 }
10992
10993 static int
10994 spoolss_dissect_element_PrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
10995 {
10996         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo5_portname_, , "Pointer to Portname (string)",hf_spoolss_spoolss_PrinterInfo5_portname);
10997
10998         return offset;
10999 }
11000
11001 static int
11002 spoolss_dissect_element_PrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11003 {
11004         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_portname , 0);
11005
11006         return offset;
11007 }
11008
11009 static int
11010 spoolss_dissect_element_PrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11011 {
11012         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_attributes, 0);
11013
11014         return offset;
11015 }
11016
11017 static int
11018 spoolss_dissect_element_PrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11019 {
11020         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_device_not_selected_timeout, 0);
11021
11022         return offset;
11023 }
11024
11025 static int
11026 spoolss_dissect_element_PrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11027 {
11028         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_transmission_retry_timeout, 0);
11029
11030         return offset;
11031 }
11032
11033 int
11034 spoolss_dissect_struct_PrinterInfo5(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_)
11035 {
11036         proto_item *item = NULL;
11037         proto_tree *tree = NULL;
11038         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
11039         int old_offset;
11040
11041         ALIGN_TO_5_BYTES;
11042
11043         old_offset = offset;
11044
11045         if (parent_tree) {
11046                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
11047                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo5);
11048         }
11049         
11050         offset = spoolss_dissect_element_PrinterInfo5_printername(tvb, offset, pinfo, tree, drep);
11051
11052         offset = spoolss_dissect_element_PrinterInfo5_portname(tvb, offset, pinfo, tree, drep);
11053
11054         offset = spoolss_dissect_element_PrinterInfo5_attributes(tvb, offset, pinfo, tree, drep);
11055
11056         offset = spoolss_dissect_element_PrinterInfo5_device_not_selected_timeout(tvb, offset, pinfo, tree, drep);
11057
11058         offset = spoolss_dissect_element_PrinterInfo5_transmission_retry_timeout(tvb, offset, pinfo, tree, drep);
11059
11060
11061         proto_item_set_len(item, offset-old_offset);
11062
11063
11064         if (di->call_data->flags & DCERPC_IS_NDR64) {
11065                 ALIGN_TO_5_BYTES;
11066         }
11067
11068         return offset;
11069 }
11070
11071
11072 /* IDL: struct { */
11073 /* IDL:         spoolss_PrinterStatus status; */
11074 /* IDL: } */
11075
11076 static int
11077 spoolss_dissect_element_PrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11078 {
11079         offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo6_status, 0);
11080
11081         return offset;
11082 }
11083
11084 int
11085 spoolss_dissect_struct_PrinterInfo6(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_)
11086 {
11087         proto_item *item = NULL;
11088         proto_tree *tree = NULL;
11089         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
11090         int old_offset;
11091
11092         ALIGN_TO_4_BYTES;
11093
11094         old_offset = offset;
11095
11096         if (parent_tree) {
11097                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
11098                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo6);
11099         }
11100         
11101         offset = spoolss_dissect_element_PrinterInfo6_status(tvb, offset, pinfo, tree, drep);
11102
11103
11104         proto_item_set_len(item, offset-old_offset);
11105
11106
11107         if (di->call_data->flags & DCERPC_IS_NDR64) {
11108                 ALIGN_TO_4_BYTES;
11109         }
11110
11111         return offset;
11112 }
11113
11114
11115 /* IDL: bitmap { */
11116 /* IDL:         DSPRINT_PUBLISH =  0x00000001 , */
11117 /* IDL:         DSPRINT_UPDATE =  0x00000002 , */
11118 /* IDL:         DSPRINT_UNPUBLISH =  0x00000004 , */
11119 /* IDL:         DSPRINT_REPUBLISH =  0x00000008 , */
11120 /* IDL:         DSPRINT_PENDING =  0x80000000 , */
11121 /* IDL: } */
11122
11123 int
11124 spoolss_dissect_bitmap_DsPrintAction(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_)
11125 {
11126         proto_item *item = NULL;
11127         proto_tree *tree = NULL;
11128
11129         guint32 flags;
11130         ALIGN_TO_4_BYTES;
11131
11132         if (parent_tree) {
11133                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
11134                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DsPrintAction);
11135         }
11136
11137         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
11138         proto_item_append_text(item, ": ");
11139
11140         if (!flags)
11141                 proto_item_append_text(item, "(No values set)");
11142
11143         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_PUBLISH, tvb, offset-4, 4, flags);
11144         if (flags&( 0x00000001 )){
11145                 proto_item_append_text(item, "DSPRINT_PUBLISH");
11146                 if (flags & (~( 0x00000001 )))
11147                         proto_item_append_text(item, ", ");
11148         }
11149         flags&=(~( 0x00000001 ));
11150
11151         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_UPDATE, tvb, offset-4, 4, flags);
11152         if (flags&( 0x00000002 )){
11153                 proto_item_append_text(item, "DSPRINT_UPDATE");
11154                 if (flags & (~( 0x00000002 )))
11155                         proto_item_append_text(item, ", ");
11156         }
11157         flags&=(~( 0x00000002 ));
11158
11159         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_UNPUBLISH, tvb, offset-4, 4, flags);
11160         if (flags&( 0x00000004 )){
11161                 proto_item_append_text(item, "DSPRINT_UNPUBLISH");
11162                 if (flags & (~( 0x00000004 )))
11163                         proto_item_append_text(item, ", ");
11164         }
11165         flags&=(~( 0x00000004 ));
11166
11167         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_REPUBLISH, tvb, offset-4, 4, flags);
11168         if (flags&( 0x00000008 )){
11169                 proto_item_append_text(item, "DSPRINT_REPUBLISH");
11170                 if (flags & (~( 0x00000008 )))
11171                         proto_item_append_text(item, ", ");
11172         }
11173         flags&=(~( 0x00000008 ));
11174
11175         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_PENDING, tvb, offset-4, 4, flags);
11176         if (flags&( 0x80000000 )){
11177                 proto_item_append_text(item, "DSPRINT_PENDING");
11178                 if (flags & (~( 0x80000000 )))
11179                         proto_item_append_text(item, ", ");
11180         }
11181         flags&=(~( 0x80000000 ));
11182
11183         if (flags) {
11184                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
11185         }
11186
11187         return offset;
11188 }
11189
11190
11191 /* IDL: struct { */
11192 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *guid; */
11193 /* IDL:         spoolss_DsPrintAction action; */
11194 /* IDL: } */
11195
11196 static int
11197 spoolss_dissect_element_PrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11198 {
11199         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo7_guid_, , "Pointer to Guid (string)",hf_spoolss_spoolss_PrinterInfo7_guid);
11200
11201         return offset;
11202 }
11203
11204 static int
11205 spoolss_dissect_element_PrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11206 {
11207         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo7_guid , 0);
11208
11209         return offset;
11210 }
11211
11212 static int
11213 spoolss_dissect_element_PrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11214 {
11215         offset = spoolss_dissect_bitmap_DsPrintAction(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo7_action, 0);
11216
11217         return offset;
11218 }
11219
11220 int
11221 spoolss_dissect_struct_PrinterInfo7(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_)
11222 {
11223         proto_item *item = NULL;
11224         proto_tree *tree = NULL;
11225         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
11226         int old_offset;
11227
11228         ALIGN_TO_5_BYTES;
11229
11230         old_offset = offset;
11231
11232         if (parent_tree) {
11233                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
11234                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo7);
11235         }
11236         
11237         offset = spoolss_dissect_element_PrinterInfo7_guid(tvb, offset, pinfo, tree, drep);
11238
11239         offset = spoolss_dissect_element_PrinterInfo7_action(tvb, offset, pinfo, tree, drep);
11240
11241
11242         proto_item_set_len(item, offset-old_offset);
11243
11244
11245         if (di->call_data->flags & DCERPC_IS_NDR64) {
11246                 ALIGN_TO_5_BYTES;
11247         }
11248
11249         return offset;
11250 }
11251
11252
11253 /* IDL: struct { */
11254 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
11255 /* IDL: } */
11256
11257 static int
11258 spoolss_dissect_element_DeviceModeInfo_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11259 {
11260         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeviceModeInfo_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_DeviceModeInfo_devmode);
11261
11262         return offset;
11263 }
11264
11265 static int
11266 spoolss_dissect_element_DeviceModeInfo_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11267 {
11268         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
11269         guint0 size;
11270         int conformant = di->conformant_run;
11271         tvbuff_t *subtvb;
11272
11273         if (!conformant) {
11274                 guint32 saved_flags = di->call_data->flags;
11275                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceModeInfo_devmode_, &size);
11276                 di->call_data->flags &= ~DCERPC_IS_NDR64;
11277                 subtvb = tvb_new_subset(tvb, offset, size, -1);
11278                 spoolss_dissect_element_DeviceModeInfo_devmode__(subtvb, 0, pinfo, tree, drep);
11279                 offset += size;
11280                 di->call_data->flags = saved_flags;
11281         }
11282
11283         return offset;
11284 }
11285
11286 static int
11287 spoolss_dissect_element_DeviceModeInfo_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11288 {
11289         offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeInfo_devmode,0);
11290
11291         return offset;
11292 }
11293
11294 int
11295 spoolss_dissect_struct_DeviceModeInfo(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_)
11296 {
11297         proto_item *item = NULL;
11298         proto_tree *tree = NULL;
11299         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
11300         int old_offset;
11301
11302         ALIGN_TO_5_BYTES;
11303
11304         old_offset = offset;
11305
11306         if (parent_tree) {
11307                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
11308                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceModeInfo);
11309         }
11310         
11311         offset = spoolss_dissect_element_DeviceModeInfo_devmode(tvb, offset, pinfo, tree, drep);
11312
11313
11314         proto_item_set_len(item, offset-old_offset);
11315
11316
11317         if (di->call_data->flags & DCERPC_IS_NDR64) {
11318                 ALIGN_TO_5_BYTES;
11319         }
11320
11321         return offset;
11322 }
11323
11324
11325 /* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
11326 /* IDL: [case(0)] [case(0)] spoolss_PrinterInfo0 info0; */
11327 /* IDL: [case(1)] [case(1)] spoolss_PrinterInfo1 info1; */
11328 /* IDL: [case(2)] [case(2)] spoolss_PrinterInfo2 info2; */
11329 /* IDL: [case(3)] [case(3)] spoolss_PrinterInfo3 info3; */
11330 /* IDL: [case(4)] [case(4)] spoolss_PrinterInfo4 info4; */
11331 /* IDL: [case(5)] [case(5)] spoolss_PrinterInfo5 info5; */
11332 /* IDL: [case(6)] [case(6)] spoolss_PrinterInfo6 info6; */
11333 /* IDL: [case(7)] [case(7)] spoolss_PrinterInfo7 info7; */
11334 /* IDL: [case(8)] [case(8)] spoolss_DeviceModeInfo info8; */
11335 /* IDL: [case(9)] [case(9)] spoolss_DeviceModeInfo info9; */
11336 /* IDL: [default] ; */
11337 /* IDL: } */
11338
11339 static int
11340 spoolss_dissect_element_PrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11341 {
11342         offset = spoolss_dissect_struct_PrinterInfo0(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info0,0);
11343
11344         return offset;
11345 }
11346
11347 static int
11348 spoolss_dissect_element_PrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11349 {
11350         offset = spoolss_dissect_struct_PrinterInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info1,0);
11351
11352         return offset;
11353 }
11354
11355 static int
11356 spoolss_dissect_element_PrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11357 {
11358         offset = spoolss_dissect_struct_PrinterInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info2,0);
11359
11360         return offset;
11361 }
11362
11363 static int
11364 spoolss_dissect_element_PrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11365 {
11366         offset = spoolss_dissect_struct_PrinterInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info3,0);
11367
11368         return offset;
11369 }
11370
11371 static int
11372 spoolss_dissect_element_PrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11373 {
11374         offset = spoolss_dissect_struct_PrinterInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info4,0);
11375
11376         return offset;
11377 }
11378
11379 static int
11380 spoolss_dissect_element_PrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11381 {
11382         offset = spoolss_dissect_struct_PrinterInfo5(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info5,0);
11383
11384         return offset;
11385 }
11386
11387 static int
11388 spoolss_dissect_element_PrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11389 {
11390         offset = spoolss_dissect_struct_PrinterInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info6,0);
11391
11392         return offset;
11393 }
11394
11395 static int
11396 spoolss_dissect_element_PrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11397 {
11398         offset = spoolss_dissect_struct_PrinterInfo7(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info7,0);
11399
11400         return offset;
11401 }
11402
11403 static int
11404 spoolss_dissect_element_PrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11405 {
11406         offset = spoolss_dissect_struct_DeviceModeInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info8,0);
11407
11408         return offset;
11409 }
11410
11411 static int
11412 spoolss_dissect_element_PrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11413 {
11414         offset = spoolss_dissect_struct_DeviceModeInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info9,0);
11415
11416         return offset;
11417 }
11418
11419 static int
11420 spoolss_dissect_PrinterInfo(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_)
11421 {
11422         proto_item *item = NULL;
11423         proto_tree *tree = NULL;
11424         int old_offset;
11425         guint32 level = param;
11426
11427         old_offset = offset;
11428         if (parent_tree) {
11429                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrinterInfo");
11430                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo);
11431         }
11432
11433         switch(level) {
11434                 case 0:
11435                         offset = spoolss_dissect_element_PrinterInfo_info0(tvb, offset, pinfo, tree, drep);
11436                 break;
11437
11438                 case 1:
11439                         offset = spoolss_dissect_element_PrinterInfo_info1(tvb, offset, pinfo, tree, drep);
11440                 break;
11441
11442                 case 2:
11443                         offset = spoolss_dissect_element_PrinterInfo_info2(tvb, offset, pinfo, tree, drep);
11444                 break;
11445
11446                 case 3:
11447                         offset = spoolss_dissect_element_PrinterInfo_info3(tvb, offset, pinfo, tree, drep);
11448                 break;
11449
11450                 case 4:
11451                         offset = spoolss_dissect_element_PrinterInfo_info4(tvb, offset, pinfo, tree, drep);
11452                 break;
11453
11454                 case 5:
11455                         offset = spoolss_dissect_element_PrinterInfo_info5(tvb, offset, pinfo, tree, drep);
11456                 break;
11457
11458                 case 6:
11459                         offset = spoolss_dissect_element_PrinterInfo_info6(tvb, offset, pinfo, tree, drep);
11460                 break;
11461
11462                 case 7:
11463                         offset = spoolss_dissect_element_PrinterInfo_info7(tvb, offset, pinfo, tree, drep);
11464                 break;
11465
11466                 case 8:
11467                         offset = spoolss_dissect_element_PrinterInfo_info8(tvb, offset, pinfo, tree, drep);
11468                 break;
11469
11470                 case 9:
11471                         offset = spoolss_dissect_element_PrinterInfo_info9(tvb, offset, pinfo, tree, drep);
11472                 break;
11473
11474                 default:
11475                 break;
11476         }
11477         proto_item_set_len(item, offset-old_offset);
11478
11479
11480         return offset;
11481 }
11482
11483 /* IDL: struct { */
11484 /* IDL:         [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->flags))] uint32 _ndr_size; */
11485 /* IDL:         [unique(1)] [subcontext_size(_ndr_size)] [subcontext(4)] spoolss_DeviceMode *devmode; */
11486 /* IDL: } */
11487
11488 static int
11489 spoolss_dissect_element_DevmodeContainer__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11490 {
11491         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DevmodeContainer__ndr_size, 0);
11492
11493         return offset;
11494 }
11495
11496 static int
11497 spoolss_dissect_element_DevmodeContainer_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11498 {
11499         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DevmodeContainer_devmode_, NDR_POINTER_UNIQUE, "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_DevmodeContainer_devmode);
11500
11501         return offset;
11502 }
11503
11504 static int
11505 spoolss_dissect_element_DevmodeContainer_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11506 {
11507         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
11508         guint3264 size;
11509         int conformant = di->conformant_run;
11510         tvbuff_t *subtvb;
11511
11512         if (!conformant) {
11513                 guint32 saved_flags = di->call_data->flags;
11514                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DevmodeContainer_devmode_, &size);
11515                 di->call_data->flags &= ~DCERPC_IS_NDR64;
11516                 subtvb = tvb_new_subset(tvb, offset, size, -1);
11517                 spoolss_dissect_element_DevmodeContainer_devmode__(subtvb, 0, pinfo, tree, drep);
11518                 offset += size;
11519                 di->call_data->flags = saved_flags;
11520         }
11521
11522         return offset;
11523 }
11524
11525 static int
11526 spoolss_dissect_element_DevmodeContainer_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11527 {
11528         offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DevmodeContainer_devmode,0);
11529
11530         return offset;
11531 }
11532
11533 int
11534 spoolss_dissect_struct_DevmodeContainer(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_)
11535 {
11536         proto_item *item = NULL;
11537         proto_tree *tree = NULL;
11538         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
11539         int old_offset;
11540
11541         ALIGN_TO_5_BYTES;
11542
11543         old_offset = offset;
11544
11545         if (parent_tree) {
11546                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
11547                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DevmodeContainer);
11548         }
11549         
11550         offset = spoolss_dissect_element_DevmodeContainer__ndr_size(tvb, offset, pinfo, tree, drep);
11551
11552         offset = spoolss_dissect_element_DevmodeContainer_devmode(tvb, offset, pinfo, tree, drep);
11553
11554
11555         proto_item_set_len(item, offset-old_offset);
11556
11557
11558         if (di->call_data->flags & DCERPC_IS_NDR64) {
11559                 ALIGN_TO_5_BYTES;
11560         }
11561
11562         return offset;
11563 }
11564
11565
11566 /* IDL: struct { */
11567 /* IDL:         uint32 job_id; */
11568 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printer_name; */
11569 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *server_name; */
11570 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *user_name; */
11571 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *document_name; */
11572 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_type; */
11573 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *text_status; */
11574 /* IDL:         spoolss_JobStatus status; */
11575 /* IDL:         [range(0,99)] uint32 priority; */
11576 /* IDL:         uint32 position; */
11577 /* IDL:         uint32 total_pages; */
11578 /* IDL:         uint32 pages_printed; */
11579 /* IDL:         spoolss_Time submitted; */
11580 /* IDL: } */
11581
11582 static int
11583 spoolss_dissect_element_JobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11584 {
11585         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_job_id, 0);
11586
11587         return offset;
11588 }
11589
11590 static int
11591 spoolss_dissect_element_JobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11592 {
11593         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_printer_name_, , "Pointer to Printer Name (string)",hf_spoolss_spoolss_JobInfo1_printer_name);
11594
11595         return offset;
11596 }
11597
11598 static int
11599 spoolss_dissect_element_JobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11600 {
11601         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_printer_name , 0);
11602
11603         return offset;
11604 }
11605
11606 static int
11607 spoolss_dissect_element_JobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11608 {
11609         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_server_name_, , "Pointer to Server Name (string)",hf_spoolss_spoolss_JobInfo1_server_name);
11610
11611         return offset;
11612 }
11613
11614 static int
11615 spoolss_dissect_element_JobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11616 {
11617         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_server_name , 0);
11618
11619         return offset;
11620 }
11621
11622 static int
11623 spoolss_dissect_element_JobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11624 {
11625         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_user_name_, , "Pointer to User Name (string)",hf_spoolss_spoolss_JobInfo1_user_name);
11626
11627         return offset;
11628 }
11629
11630 static int
11631 spoolss_dissect_element_JobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11632 {
11633         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_user_name , 0);
11634
11635         return offset;
11636 }
11637
11638 static int
11639 spoolss_dissect_element_JobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11640 {
11641         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_document_name_, , "Pointer to Document Name (string)",hf_spoolss_spoolss_JobInfo1_document_name);
11642
11643         return offset;
11644 }
11645
11646 static int
11647 spoolss_dissect_element_JobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11648 {
11649         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_document_name , 0);
11650
11651         return offset;
11652 }
11653
11654 static int
11655 spoolss_dissect_element_JobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11656 {
11657         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_data_type_, , "Pointer to Data Type (string)",hf_spoolss_spoolss_JobInfo1_data_type);
11658
11659         return offset;
11660 }
11661
11662 static int
11663 spoolss_dissect_element_JobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11664 {
11665         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_data_type , 0);
11666
11667         return offset;
11668 }
11669
11670 static int
11671 spoolss_dissect_element_JobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11672 {
11673         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_text_status_, , "Pointer to Text Status (string)",hf_spoolss_spoolss_JobInfo1_text_status);
11674
11675         return offset;
11676 }
11677
11678 static int
11679 spoolss_dissect_element_JobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11680 {
11681         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_text_status , 0);
11682
11683         return offset;
11684 }
11685
11686 static int
11687 spoolss_dissect_element_JobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11688 {
11689         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_status, 0);
11690
11691         return offset;
11692 }
11693
11694 static int
11695 spoolss_dissect_element_JobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11696 {
11697         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_priority, 0);
11698
11699         return offset;
11700 }
11701
11702 static int
11703 spoolss_dissect_element_JobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11704 {
11705         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_position, 0);
11706
11707         return offset;
11708 }
11709
11710 static int
11711 spoolss_dissect_element_JobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11712 {
11713         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_total_pages, 0);
11714
11715         return offset;
11716 }
11717
11718 static int
11719 spoolss_dissect_element_JobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11720 {
11721         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_pages_printed, 0);
11722
11723         return offset;
11724 }
11725
11726 static int
11727 spoolss_dissect_element_JobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11728 {
11729         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo1_submitted,0);
11730
11731         return offset;
11732 }
11733
11734 int
11735 spoolss_dissect_struct_JobInfo1(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_)
11736 {
11737         proto_item *item = NULL;
11738         proto_tree *tree = NULL;
11739         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
11740         int old_offset;
11741
11742         ALIGN_TO_5_BYTES;
11743
11744         old_offset = offset;
11745
11746         if (parent_tree) {
11747                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
11748                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo1);
11749         }
11750         
11751         offset = spoolss_dissect_element_JobInfo1_job_id(tvb, offset, pinfo, tree, drep);
11752
11753         offset = spoolss_dissect_element_JobInfo1_printer_name(tvb, offset, pinfo, tree, drep);
11754
11755         offset = spoolss_dissect_element_JobInfo1_server_name(tvb, offset, pinfo, tree, drep);
11756
11757         offset = spoolss_dissect_element_JobInfo1_user_name(tvb, offset, pinfo, tree, drep);
11758
11759         offset = spoolss_dissect_element_JobInfo1_document_name(tvb, offset, pinfo, tree, drep);
11760
11761         offset = spoolss_dissect_element_JobInfo1_data_type(tvb, offset, pinfo, tree, drep);
11762
11763         offset = spoolss_dissect_element_JobInfo1_text_status(tvb, offset, pinfo, tree, drep);
11764
11765         offset = spoolss_dissect_element_JobInfo1_status(tvb, offset, pinfo, tree, drep);
11766
11767         offset = spoolss_dissect_element_JobInfo1_priority(tvb, offset, pinfo, tree, drep);
11768
11769         offset = spoolss_dissect_element_JobInfo1_position(tvb, offset, pinfo, tree, drep);
11770
11771         offset = spoolss_dissect_element_JobInfo1_total_pages(tvb, offset, pinfo, tree, drep);
11772
11773         offset = spoolss_dissect_element_JobInfo1_pages_printed(tvb, offset, pinfo, tree, drep);
11774
11775         offset = spoolss_dissect_element_JobInfo1_submitted(tvb, offset, pinfo, tree, drep);
11776
11777
11778         proto_item_set_len(item, offset-old_offset);
11779
11780
11781         if (di->call_data->flags & DCERPC_IS_NDR64) {
11782                 ALIGN_TO_5_BYTES;
11783         }
11784
11785         return offset;
11786 }
11787
11788
11789 /* IDL: struct { */
11790 /* IDL:         uint32 job_id; */
11791 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printer_name; */
11792 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *server_name; */
11793 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *user_name; */
11794 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *document_name; */
11795 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *notify_name; */
11796 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_type; */
11797 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor; */
11798 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *parameters; */
11799 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
11800 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
11801 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *text_status; */
11802 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
11803 /* IDL:         spoolss_JobStatus status; */
11804 /* IDL:         [range(0,99)] uint32 priority; */
11805 /* IDL:         uint32 position; */
11806 /* IDL:         uint32 start_time; */
11807 /* IDL:         uint32 until_time; */
11808 /* IDL:         uint32 total_pages; */
11809 /* IDL:         uint32 size; */
11810 /* IDL:         spoolss_Time submitted; */
11811 /* IDL:         uint32 time; */
11812 /* IDL:         uint32 pages_printed; */
11813 /* IDL: } */
11814
11815 static int
11816 spoolss_dissect_element_JobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11817 {
11818         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_job_id, 0);
11819
11820         return offset;
11821 }
11822
11823 static int
11824 spoolss_dissect_element_JobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11825 {
11826         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_printer_name_, , "Pointer to Printer Name (string)",hf_spoolss_spoolss_JobInfo2_printer_name);
11827
11828         return offset;
11829 }
11830
11831 static int
11832 spoolss_dissect_element_JobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11833 {
11834         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_printer_name , 0);
11835
11836         return offset;
11837 }
11838
11839 static int
11840 spoolss_dissect_element_JobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11841 {
11842         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_server_name_, , "Pointer to Server Name (string)",hf_spoolss_spoolss_JobInfo2_server_name);
11843
11844         return offset;
11845 }
11846
11847 static int
11848 spoolss_dissect_element_JobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11849 {
11850         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_server_name , 0);
11851
11852         return offset;
11853 }
11854
11855 static int
11856 spoolss_dissect_element_JobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11857 {
11858         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_user_name_, , "Pointer to User Name (string)",hf_spoolss_spoolss_JobInfo2_user_name);
11859
11860         return offset;
11861 }
11862
11863 static int
11864 spoolss_dissect_element_JobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11865 {
11866         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_user_name , 0);
11867
11868         return offset;
11869 }
11870
11871 static int
11872 spoolss_dissect_element_JobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11873 {
11874         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_document_name_, , "Pointer to Document Name (string)",hf_spoolss_spoolss_JobInfo2_document_name);
11875
11876         return offset;
11877 }
11878
11879 static int
11880 spoolss_dissect_element_JobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11881 {
11882         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_document_name , 0);
11883
11884         return offset;
11885 }
11886
11887 static int
11888 spoolss_dissect_element_JobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11889 {
11890         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_notify_name_, , "Pointer to Notify Name (string)",hf_spoolss_spoolss_JobInfo2_notify_name);
11891
11892         return offset;
11893 }
11894
11895 static int
11896 spoolss_dissect_element_JobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11897 {
11898         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_notify_name , 0);
11899
11900         return offset;
11901 }
11902
11903 static int
11904 spoolss_dissect_element_JobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11905 {
11906         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_data_type_, , "Pointer to Data Type (string)",hf_spoolss_spoolss_JobInfo2_data_type);
11907
11908         return offset;
11909 }
11910
11911 static int
11912 spoolss_dissect_element_JobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11913 {
11914         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_data_type , 0);
11915
11916         return offset;
11917 }
11918
11919 static int
11920 spoolss_dissect_element_JobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11921 {
11922         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_print_processor_, , "Pointer to Print Processor (string)",hf_spoolss_spoolss_JobInfo2_print_processor);
11923
11924         return offset;
11925 }
11926
11927 static int
11928 spoolss_dissect_element_JobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11929 {
11930         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_print_processor , 0);
11931
11932         return offset;
11933 }
11934
11935 static int
11936 spoolss_dissect_element_JobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11937 {
11938         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_parameters_, , "Pointer to Parameters (string)",hf_spoolss_spoolss_JobInfo2_parameters);
11939
11940         return offset;
11941 }
11942
11943 static int
11944 spoolss_dissect_element_JobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11945 {
11946         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_parameters , 0);
11947
11948         return offset;
11949 }
11950
11951 static int
11952 spoolss_dissect_element_JobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11953 {
11954         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_JobInfo2_driver_name);
11955
11956         return offset;
11957 }
11958
11959 static int
11960 spoolss_dissect_element_JobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11961 {
11962         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_driver_name , 0);
11963
11964         return offset;
11965 }
11966
11967 static int
11968 spoolss_dissect_element_JobInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11969 {
11970         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_JobInfo2_devmode);
11971
11972         return offset;
11973 }
11974
11975 static int
11976 spoolss_dissect_element_JobInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11977 {
11978         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
11979         guint0 size;
11980         int conformant = di->conformant_run;
11981         tvbuff_t *subtvb;
11982
11983         if (!conformant) {
11984                 guint32 saved_flags = di->call_data->flags;
11985                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_devmode_, &size);
11986                 di->call_data->flags &= ~DCERPC_IS_NDR64;
11987                 subtvb = tvb_new_subset(tvb, offset, size, -1);
11988                 spoolss_dissect_element_JobInfo2_devmode__(subtvb, 0, pinfo, tree, drep);
11989                 offset += size;
11990                 di->call_data->flags = saved_flags;
11991         }
11992
11993         return offset;
11994 }
11995
11996 static int
11997 spoolss_dissect_element_JobInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
11998 {
11999         offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo2_devmode,0);
12000
12001         return offset;
12002 }
12003
12004 static int
12005 spoolss_dissect_element_JobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12006 {
12007         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_text_status_, , "Pointer to Text Status (string)",hf_spoolss_spoolss_JobInfo2_text_status);
12008
12009         return offset;
12010 }
12011
12012 static int
12013 spoolss_dissect_element_JobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12014 {
12015         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_text_status , 0);
12016
12017         return offset;
12018 }
12019
12020 static int
12021 spoolss_dissect_element_JobInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12022 {
12023         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_JobInfo2_secdesc);
12024
12025         return offset;
12026 }
12027
12028 static int
12029 spoolss_dissect_element_JobInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12030 {
12031         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
12032         guint0 size;
12033         int conformant = di->conformant_run;
12034         tvbuff_t *subtvb;
12035
12036         if (!conformant) {
12037                 guint32 saved_flags = di->call_data->flags;
12038                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_secdesc_, &size);
12039                 di->call_data->flags &= ~DCERPC_IS_NDR64;
12040                 subtvb = tvb_new_subset(tvb, offset, size, -1);
12041                 spoolss_dissect_element_JobInfo2_secdesc__(subtvb, 0, pinfo, tree, drep);
12042                 offset += size;
12043                 di->call_data->flags = saved_flags;
12044         }
12045
12046         return offset;
12047 }
12048
12049 static int
12050 spoolss_dissect_element_JobInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12051 {
12052         offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo2_secdesc,0);
12053
12054         return offset;
12055 }
12056
12057 static int
12058 spoolss_dissect_element_JobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12059 {
12060         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_status, 0);
12061
12062         return offset;
12063 }
12064
12065 static int
12066 spoolss_dissect_element_JobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12067 {
12068         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_priority, 0);
12069
12070         return offset;
12071 }
12072
12073 static int
12074 spoolss_dissect_element_JobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12075 {
12076         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_position, 0);
12077
12078         return offset;
12079 }
12080
12081 static int
12082 spoolss_dissect_element_JobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12083 {
12084         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_start_time, 0);
12085
12086         return offset;
12087 }
12088
12089 static int
12090 spoolss_dissect_element_JobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12091 {
12092         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_until_time, 0);
12093
12094         return offset;
12095 }
12096
12097 static int
12098 spoolss_dissect_element_JobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12099 {
12100         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_total_pages, 0);
12101
12102         return offset;
12103 }
12104
12105 static int
12106 spoolss_dissect_element_JobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12107 {
12108         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_size, 0);
12109
12110         return offset;
12111 }
12112
12113 static int
12114 spoolss_dissect_element_JobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12115 {
12116         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo2_submitted,0);
12117
12118         return offset;
12119 }
12120
12121 static int
12122 spoolss_dissect_element_JobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12123 {
12124         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_time, 0);
12125
12126         return offset;
12127 }
12128
12129 static int
12130 spoolss_dissect_element_JobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12131 {
12132         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_pages_printed, 0);
12133
12134         return offset;
12135 }
12136
12137 int
12138 spoolss_dissect_struct_JobInfo2(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_)
12139 {
12140         proto_item *item = NULL;
12141         proto_tree *tree = NULL;
12142         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
12143         int old_offset;
12144
12145         ALIGN_TO_5_BYTES;
12146
12147         old_offset = offset;
12148
12149         if (parent_tree) {
12150                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
12151                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo2);
12152         }
12153         
12154         offset = spoolss_dissect_element_JobInfo2_job_id(tvb, offset, pinfo, tree, drep);
12155
12156         offset = spoolss_dissect_element_JobInfo2_printer_name(tvb, offset, pinfo, tree, drep);
12157
12158         offset = spoolss_dissect_element_JobInfo2_server_name(tvb, offset, pinfo, tree, drep);
12159
12160         offset = spoolss_dissect_element_JobInfo2_user_name(tvb, offset, pinfo, tree, drep);
12161
12162         offset = spoolss_dissect_element_JobInfo2_document_name(tvb, offset, pinfo, tree, drep);
12163
12164         offset = spoolss_dissect_element_JobInfo2_notify_name(tvb, offset, pinfo, tree, drep);
12165
12166         offset = spoolss_dissect_element_JobInfo2_data_type(tvb, offset, pinfo, tree, drep);
12167
12168         offset = spoolss_dissect_element_JobInfo2_print_processor(tvb, offset, pinfo, tree, drep);
12169
12170         offset = spoolss_dissect_element_JobInfo2_parameters(tvb, offset, pinfo, tree, drep);
12171
12172         offset = spoolss_dissect_element_JobInfo2_driver_name(tvb, offset, pinfo, tree, drep);
12173
12174         offset = spoolss_dissect_element_JobInfo2_devmode(tvb, offset, pinfo, tree, drep);
12175
12176         offset = spoolss_dissect_element_JobInfo2_text_status(tvb, offset, pinfo, tree, drep);
12177
12178         offset = spoolss_dissect_element_JobInfo2_secdesc(tvb, offset, pinfo, tree, drep);
12179
12180         offset = spoolss_dissect_element_JobInfo2_status(tvb, offset, pinfo, tree, drep);
12181
12182         offset = spoolss_dissect_element_JobInfo2_priority(tvb, offset, pinfo, tree, drep);
12183
12184         offset = spoolss_dissect_element_JobInfo2_position(tvb, offset, pinfo, tree, drep);
12185
12186         offset = spoolss_dissect_element_JobInfo2_start_time(tvb, offset, pinfo, tree, drep);
12187
12188         offset = spoolss_dissect_element_JobInfo2_until_time(tvb, offset, pinfo, tree, drep);
12189
12190         offset = spoolss_dissect_element_JobInfo2_total_pages(tvb, offset, pinfo, tree, drep);
12191
12192         offset = spoolss_dissect_element_JobInfo2_size(tvb, offset, pinfo, tree, drep);
12193
12194         offset = spoolss_dissect_element_JobInfo2_submitted(tvb, offset, pinfo, tree, drep);
12195
12196         offset = spoolss_dissect_element_JobInfo2_time(tvb, offset, pinfo, tree, drep);
12197
12198         offset = spoolss_dissect_element_JobInfo2_pages_printed(tvb, offset, pinfo, tree, drep);
12199
12200
12201         proto_item_set_len(item, offset-old_offset);
12202
12203
12204         if (di->call_data->flags & DCERPC_IS_NDR64) {
12205                 ALIGN_TO_5_BYTES;
12206         }
12207
12208         return offset;
12209 }
12210
12211
12212 /* IDL: struct { */
12213 /* IDL:         uint32 job_id; */
12214 /* IDL:         uint32 next_job_id; */
12215 /* IDL:         uint32 reserved; */
12216 /* IDL: } */
12217
12218 static int
12219 spoolss_dissect_element_JobInfo3_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12220 {
12221         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo3_job_id, 0);
12222
12223         return offset;
12224 }
12225
12226 static int
12227 spoolss_dissect_element_JobInfo3_next_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12228 {
12229         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo3_next_job_id, 0);
12230
12231         return offset;
12232 }
12233
12234 static int
12235 spoolss_dissect_element_JobInfo3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12236 {
12237         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo3_reserved, 0);
12238
12239         return offset;
12240 }
12241
12242 int
12243 spoolss_dissect_struct_JobInfo3(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_)
12244 {
12245         proto_item *item = NULL;
12246         proto_tree *tree = NULL;
12247         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
12248         int old_offset;
12249
12250         ALIGN_TO_4_BYTES;
12251
12252         old_offset = offset;
12253
12254         if (parent_tree) {
12255                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
12256                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo3);
12257         }
12258         
12259         offset = spoolss_dissect_element_JobInfo3_job_id(tvb, offset, pinfo, tree, drep);
12260
12261         offset = spoolss_dissect_element_JobInfo3_next_job_id(tvb, offset, pinfo, tree, drep);
12262
12263         offset = spoolss_dissect_element_JobInfo3_reserved(tvb, offset, pinfo, tree, drep);
12264
12265
12266         proto_item_set_len(item, offset-old_offset);
12267
12268
12269         if (di->call_data->flags & DCERPC_IS_NDR64) {
12270                 ALIGN_TO_4_BYTES;
12271         }
12272
12273         return offset;
12274 }
12275
12276
12277 /* IDL: struct { */
12278 /* IDL:         uint32 job_id; */
12279 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printer_name; */
12280 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *server_name; */
12281 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *user_name; */
12282 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *document_name; */
12283 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *notify_name; */
12284 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_type; */
12285 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor; */
12286 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *parameters; */
12287 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
12288 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
12289 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *text_status; */
12290 /* IDL:         [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
12291 /* IDL:         spoolss_JobStatus status; */
12292 /* IDL:         [range(0,99)] uint32 priority; */
12293 /* IDL:         uint32 position; */
12294 /* IDL:         uint32 start_time; */
12295 /* IDL:         uint32 until_time; */
12296 /* IDL:         uint32 total_pages; */
12297 /* IDL:         uint32 size; */
12298 /* IDL:         spoolss_Time submitted; */
12299 /* IDL:         uint32 time; */
12300 /* IDL:         uint32 pages_printed; */
12301 /* IDL:         uint32 size_high; */
12302 /* IDL: } */
12303
12304 static int
12305 spoolss_dissect_element_JobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12306 {
12307         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_job_id, 0);
12308
12309         return offset;
12310 }
12311
12312 static int
12313 spoolss_dissect_element_JobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12314 {
12315         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_printer_name_, , "Pointer to Printer Name (string)",hf_spoolss_spoolss_JobInfo4_printer_name);
12316
12317         return offset;
12318 }
12319
12320 static int
12321 spoolss_dissect_element_JobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12322 {
12323         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_printer_name , 0);
12324
12325         return offset;
12326 }
12327
12328 static int
12329 spoolss_dissect_element_JobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12330 {
12331         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_server_name_, , "Pointer to Server Name (string)",hf_spoolss_spoolss_JobInfo4_server_name);
12332
12333         return offset;
12334 }
12335
12336 static int
12337 spoolss_dissect_element_JobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12338 {
12339         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_server_name , 0);
12340
12341         return offset;
12342 }
12343
12344 static int
12345 spoolss_dissect_element_JobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12346 {
12347         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_user_name_, , "Pointer to User Name (string)",hf_spoolss_spoolss_JobInfo4_user_name);
12348
12349         return offset;
12350 }
12351
12352 static int
12353 spoolss_dissect_element_JobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12354 {
12355         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_user_name , 0);
12356
12357         return offset;
12358 }
12359
12360 static int
12361 spoolss_dissect_element_JobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12362 {
12363         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_document_name_, , "Pointer to Document Name (string)",hf_spoolss_spoolss_JobInfo4_document_name);
12364
12365         return offset;
12366 }
12367
12368 static int
12369 spoolss_dissect_element_JobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12370 {
12371         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_document_name , 0);
12372
12373         return offset;
12374 }
12375
12376 static int
12377 spoolss_dissect_element_JobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12378 {
12379         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_notify_name_, , "Pointer to Notify Name (string)",hf_spoolss_spoolss_JobInfo4_notify_name);
12380
12381         return offset;
12382 }
12383
12384 static int
12385 spoolss_dissect_element_JobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12386 {
12387         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_notify_name , 0);
12388
12389         return offset;
12390 }
12391
12392 static int
12393 spoolss_dissect_element_JobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12394 {
12395         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_data_type_, , "Pointer to Data Type (string)",hf_spoolss_spoolss_JobInfo4_data_type);
12396
12397         return offset;
12398 }
12399
12400 static int
12401 spoolss_dissect_element_JobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12402 {
12403         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_data_type , 0);
12404
12405         return offset;
12406 }
12407
12408 static int
12409 spoolss_dissect_element_JobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12410 {
12411         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_print_processor_, , "Pointer to Print Processor (string)",hf_spoolss_spoolss_JobInfo4_print_processor);
12412
12413         return offset;
12414 }
12415
12416 static int
12417 spoolss_dissect_element_JobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12418 {
12419         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_print_processor , 0);
12420
12421         return offset;
12422 }
12423
12424 static int
12425 spoolss_dissect_element_JobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12426 {
12427         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_parameters_, , "Pointer to Parameters (string)",hf_spoolss_spoolss_JobInfo4_parameters);
12428
12429         return offset;
12430 }
12431
12432 static int
12433 spoolss_dissect_element_JobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12434 {
12435         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_parameters , 0);
12436
12437         return offset;
12438 }
12439
12440 static int
12441 spoolss_dissect_element_JobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12442 {
12443         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_JobInfo4_driver_name);
12444
12445         return offset;
12446 }
12447
12448 static int
12449 spoolss_dissect_element_JobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12450 {
12451         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_driver_name , 0);
12452
12453         return offset;
12454 }
12455
12456 static int
12457 spoolss_dissect_element_JobInfo4_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12458 {
12459         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_JobInfo4_devmode);
12460
12461         return offset;
12462 }
12463
12464 static int
12465 spoolss_dissect_element_JobInfo4_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12466 {
12467         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
12468         guint0 size;
12469         int conformant = di->conformant_run;
12470         tvbuff_t *subtvb;
12471
12472         if (!conformant) {
12473                 guint32 saved_flags = di->call_data->flags;
12474                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_devmode_, &size);
12475                 di->call_data->flags &= ~DCERPC_IS_NDR64;
12476                 subtvb = tvb_new_subset(tvb, offset, size, -1);
12477                 spoolss_dissect_element_JobInfo4_devmode__(subtvb, 0, pinfo, tree, drep);
12478                 offset += size;
12479                 di->call_data->flags = saved_flags;
12480         }
12481
12482         return offset;
12483 }
12484
12485 static int
12486 spoolss_dissect_element_JobInfo4_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12487 {
12488         offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo4_devmode,0);
12489
12490         return offset;
12491 }
12492
12493 static int
12494 spoolss_dissect_element_JobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12495 {
12496         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_text_status_, , "Pointer to Text Status (string)",hf_spoolss_spoolss_JobInfo4_text_status);
12497
12498         return offset;
12499 }
12500
12501 static int
12502 spoolss_dissect_element_JobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12503 {
12504         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_text_status , 0);
12505
12506         return offset;
12507 }
12508
12509 static int
12510 spoolss_dissect_element_JobInfo4_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12511 {
12512         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_JobInfo4_secdesc);
12513
12514         return offset;
12515 }
12516
12517 static int
12518 spoolss_dissect_element_JobInfo4_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12519 {
12520         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
12521         guint0 size;
12522         int conformant = di->conformant_run;
12523         tvbuff_t *subtvb;
12524
12525         if (!conformant) {
12526                 guint32 saved_flags = di->call_data->flags;
12527                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_secdesc_, &size);
12528                 di->call_data->flags &= ~DCERPC_IS_NDR64;
12529                 subtvb = tvb_new_subset(tvb, offset, size, -1);
12530                 spoolss_dissect_element_JobInfo4_secdesc__(subtvb, 0, pinfo, tree, drep);
12531                 offset += size;
12532                 di->call_data->flags = saved_flags;
12533         }
12534
12535         return offset;
12536 }
12537
12538 static int
12539 spoolss_dissect_element_JobInfo4_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12540 {
12541         offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo4_secdesc,0);
12542
12543         return offset;
12544 }
12545
12546 static int
12547 spoolss_dissect_element_JobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12548 {
12549         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_status, 0);
12550
12551         return offset;
12552 }
12553
12554 static int
12555 spoolss_dissect_element_JobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12556 {
12557         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_priority, 0);
12558
12559         return offset;
12560 }
12561
12562 static int
12563 spoolss_dissect_element_JobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12564 {
12565         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_position, 0);
12566
12567         return offset;
12568 }
12569
12570 static int
12571 spoolss_dissect_element_JobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12572 {
12573         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_start_time, 0);
12574
12575         return offset;
12576 }
12577
12578 static int
12579 spoolss_dissect_element_JobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12580 {
12581         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_until_time, 0);
12582
12583         return offset;
12584 }
12585
12586 static int
12587 spoolss_dissect_element_JobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12588 {
12589         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_total_pages, 0);
12590
12591         return offset;
12592 }
12593
12594 static int
12595 spoolss_dissect_element_JobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12596 {
12597         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_size, 0);
12598
12599         return offset;
12600 }
12601
12602 static int
12603 spoolss_dissect_element_JobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12604 {
12605         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo4_submitted,0);
12606
12607         return offset;
12608 }
12609
12610 static int
12611 spoolss_dissect_element_JobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12612 {
12613         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_time, 0);
12614
12615         return offset;
12616 }
12617
12618 static int
12619 spoolss_dissect_element_JobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12620 {
12621         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_pages_printed, 0);
12622
12623         return offset;
12624 }
12625
12626 static int
12627 spoolss_dissect_element_JobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12628 {
12629         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_size_high, 0);
12630
12631         return offset;
12632 }
12633
12634 int
12635 spoolss_dissect_struct_JobInfo4(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_)
12636 {
12637         proto_item *item = NULL;
12638         proto_tree *tree = NULL;
12639         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
12640         int old_offset;
12641
12642         ALIGN_TO_5_BYTES;
12643
12644         old_offset = offset;
12645
12646         if (parent_tree) {
12647                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
12648                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo4);
12649         }
12650         
12651         offset = spoolss_dissect_element_JobInfo4_job_id(tvb, offset, pinfo, tree, drep);
12652
12653         offset = spoolss_dissect_element_JobInfo4_printer_name(tvb, offset, pinfo, tree, drep);
12654
12655         offset = spoolss_dissect_element_JobInfo4_server_name(tvb, offset, pinfo, tree, drep);
12656
12657         offset = spoolss_dissect_element_JobInfo4_user_name(tvb, offset, pinfo, tree, drep);
12658
12659         offset = spoolss_dissect_element_JobInfo4_document_name(tvb, offset, pinfo, tree, drep);
12660
12661         offset = spoolss_dissect_element_JobInfo4_notify_name(tvb, offset, pinfo, tree, drep);
12662
12663         offset = spoolss_dissect_element_JobInfo4_data_type(tvb, offset, pinfo, tree, drep);
12664
12665         offset = spoolss_dissect_element_JobInfo4_print_processor(tvb, offset, pinfo, tree, drep);
12666
12667         offset = spoolss_dissect_element_JobInfo4_parameters(tvb, offset, pinfo, tree, drep);
12668
12669         offset = spoolss_dissect_element_JobInfo4_driver_name(tvb, offset, pinfo, tree, drep);
12670
12671         offset = spoolss_dissect_element_JobInfo4_devmode(tvb, offset, pinfo, tree, drep);
12672
12673         offset = spoolss_dissect_element_JobInfo4_text_status(tvb, offset, pinfo, tree, drep);
12674
12675         offset = spoolss_dissect_element_JobInfo4_secdesc(tvb, offset, pinfo, tree, drep);
12676
12677         offset = spoolss_dissect_element_JobInfo4_status(tvb, offset, pinfo, tree, drep);
12678
12679         offset = spoolss_dissect_element_JobInfo4_priority(tvb, offset, pinfo, tree, drep);
12680
12681         offset = spoolss_dissect_element_JobInfo4_position(tvb, offset, pinfo, tree, drep);
12682
12683         offset = spoolss_dissect_element_JobInfo4_start_time(tvb, offset, pinfo, tree, drep);
12684
12685         offset = spoolss_dissect_element_JobInfo4_until_time(tvb, offset, pinfo, tree, drep);
12686
12687         offset = spoolss_dissect_element_JobInfo4_total_pages(tvb, offset, pinfo, tree, drep);
12688
12689         offset = spoolss_dissect_element_JobInfo4_size(tvb, offset, pinfo, tree, drep);
12690
12691         offset = spoolss_dissect_element_JobInfo4_submitted(tvb, offset, pinfo, tree, drep);
12692
12693         offset = spoolss_dissect_element_JobInfo4_time(tvb, offset, pinfo, tree, drep);
12694
12695         offset = spoolss_dissect_element_JobInfo4_pages_printed(tvb, offset, pinfo, tree, drep);
12696
12697         offset = spoolss_dissect_element_JobInfo4_size_high(tvb, offset, pinfo, tree, drep);
12698
12699
12700         proto_item_set_len(item, offset-old_offset);
12701
12702
12703         if (di->call_data->flags & DCERPC_IS_NDR64) {
12704                 ALIGN_TO_5_BYTES;
12705         }
12706
12707         return offset;
12708 }
12709
12710
12711 /* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
12712 /* IDL: [case(1)] [case(1)] spoolss_JobInfo1 info1; */
12713 /* IDL: [case(2)] [case(2)] spoolss_JobInfo2 info2; */
12714 /* IDL: [case(3)] [case(3)] spoolss_JobInfo3 info3; */
12715 /* IDL: [case(4)] [case(4)] spoolss_JobInfo4 info4; */
12716 /* IDL: [default] ; */
12717 /* IDL: } */
12718
12719 static int
12720 spoolss_dissect_element_JobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12721 {
12722         offset = spoolss_dissect_struct_JobInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info1,0);
12723
12724         return offset;
12725 }
12726
12727 static int
12728 spoolss_dissect_element_JobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12729 {
12730         offset = spoolss_dissect_struct_JobInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info2,0);
12731
12732         return offset;
12733 }
12734
12735 static int
12736 spoolss_dissect_element_JobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12737 {
12738         offset = spoolss_dissect_struct_JobInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info3,0);
12739
12740         return offset;
12741 }
12742
12743 static int
12744 spoolss_dissect_element_JobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12745 {
12746         offset = spoolss_dissect_struct_JobInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info4,0);
12747
12748         return offset;
12749 }
12750
12751 static int
12752 spoolss_dissect_JobInfo(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_)
12753 {
12754         proto_item *item = NULL;
12755         proto_tree *tree = NULL;
12756         int old_offset;
12757         guint32 level = param;
12758
12759         old_offset = offset;
12760         if (parent_tree) {
12761                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_JobInfo");
12762                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo);
12763         }
12764
12765         switch(level) {
12766                 case 1:
12767                         offset = spoolss_dissect_element_JobInfo_info1(tvb, offset, pinfo, tree, drep);
12768                 break;
12769
12770                 case 2:
12771                         offset = spoolss_dissect_element_JobInfo_info2(tvb, offset, pinfo, tree, drep);
12772                 break;
12773
12774                 case 3:
12775                         offset = spoolss_dissect_element_JobInfo_info3(tvb, offset, pinfo, tree, drep);
12776                 break;
12777
12778                 case 4:
12779                         offset = spoolss_dissect_element_JobInfo_info4(tvb, offset, pinfo, tree, drep);
12780                 break;
12781
12782                 default:
12783                 break;
12784         }
12785         proto_item_set_len(item, offset-old_offset);
12786
12787
12788         return offset;
12789 }
12790
12791 /* IDL: struct { */
12792 /* IDL:         uint32 job_id; */
12793 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printer_name; */
12794 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *server_name; */
12795 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *user_name; */
12796 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *document_name; */
12797 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_type; */
12798 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *text_status; */
12799 /* IDL:         spoolss_JobStatus status; */
12800 /* IDL:         [range(0,99)] uint32 priority; */
12801 /* IDL:         uint32 position; */
12802 /* IDL:         uint32 total_pages; */
12803 /* IDL:         uint32 pages_printed; */
12804 /* IDL:         spoolss_Time submitted; */
12805 /* IDL: } */
12806
12807 static int
12808 spoolss_dissect_element_SetJobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12809 {
12810         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_job_id, 0);
12811
12812         return offset;
12813 }
12814
12815 static int
12816 spoolss_dissect_element_SetJobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12817 {
12818         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_printer_name_, NDR_POINTER_UNIQUE, "Pointer to Printer Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_printer_name);
12819
12820         return offset;
12821 }
12822
12823 static int
12824 spoolss_dissect_element_SetJobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12825 {
12826         char *data;
12827
12828         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_printer_name, FALSE, &data);
12829         proto_item_append_text(tree, ": %s", data);
12830
12831         return offset;
12832 }
12833
12834 static int
12835 spoolss_dissect_element_SetJobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12836 {
12837         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_server_name);
12838
12839         return offset;
12840 }
12841
12842 static int
12843 spoolss_dissect_element_SetJobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12844 {
12845         char *data;
12846
12847         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_server_name, FALSE, &data);
12848         proto_item_append_text(tree, ": %s", data);
12849
12850         return offset;
12851 }
12852
12853 static int
12854 spoolss_dissect_element_SetJobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12855 {
12856         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_user_name);
12857
12858         return offset;
12859 }
12860
12861 static int
12862 spoolss_dissect_element_SetJobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12863 {
12864         char *data;
12865
12866         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_user_name, FALSE, &data);
12867         proto_item_append_text(tree, ": %s", data);
12868
12869         return offset;
12870 }
12871
12872 static int
12873 spoolss_dissect_element_SetJobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12874 {
12875         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_document_name);
12876
12877         return offset;
12878 }
12879
12880 static int
12881 spoolss_dissect_element_SetJobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12882 {
12883         char *data;
12884
12885         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_document_name, FALSE, &data);
12886         proto_item_append_text(tree, ": %s", data);
12887
12888         return offset;
12889 }
12890
12891 static int
12892 spoolss_dissect_element_SetJobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12893 {
12894         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_SetJobInfo1_data_type);
12895
12896         return offset;
12897 }
12898
12899 static int
12900 spoolss_dissect_element_SetJobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12901 {
12902         char *data;
12903
12904         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_data_type, FALSE, &data);
12905         proto_item_append_text(tree, ": %s", data);
12906
12907         return offset;
12908 }
12909
12910 static int
12911 spoolss_dissect_element_SetJobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12912 {
12913         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_text_status_, NDR_POINTER_UNIQUE, "Pointer to Text Status (uint16)",hf_spoolss_spoolss_SetJobInfo1_text_status);
12914
12915         return offset;
12916 }
12917
12918 static int
12919 spoolss_dissect_element_SetJobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12920 {
12921         char *data;
12922
12923         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_text_status, FALSE, &data);
12924         proto_item_append_text(tree, ": %s", data);
12925
12926         return offset;
12927 }
12928
12929 static int
12930 spoolss_dissect_element_SetJobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12931 {
12932         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_status, 0);
12933
12934         return offset;
12935 }
12936
12937 static int
12938 spoolss_dissect_element_SetJobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12939 {
12940         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_priority, 0);
12941
12942         return offset;
12943 }
12944
12945 static int
12946 spoolss_dissect_element_SetJobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12947 {
12948         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_position, 0);
12949
12950         return offset;
12951 }
12952
12953 static int
12954 spoolss_dissect_element_SetJobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12955 {
12956         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_total_pages, 0);
12957
12958         return offset;
12959 }
12960
12961 static int
12962 spoolss_dissect_element_SetJobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12963 {
12964         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_pages_printed, 0);
12965
12966         return offset;
12967 }
12968
12969 static int
12970 spoolss_dissect_element_SetJobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
12971 {
12972         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo1_submitted,0);
12973
12974         return offset;
12975 }
12976
12977 int
12978 spoolss_dissect_struct_SetJobInfo1(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_)
12979 {
12980         proto_item *item = NULL;
12981         proto_tree *tree = NULL;
12982         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
12983         int old_offset;
12984
12985         ALIGN_TO_5_BYTES;
12986
12987         old_offset = offset;
12988
12989         if (parent_tree) {
12990                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
12991                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo1);
12992         }
12993         
12994         offset = spoolss_dissect_element_SetJobInfo1_job_id(tvb, offset, pinfo, tree, drep);
12995
12996         offset = spoolss_dissect_element_SetJobInfo1_printer_name(tvb, offset, pinfo, tree, drep);
12997
12998         offset = spoolss_dissect_element_SetJobInfo1_server_name(tvb, offset, pinfo, tree, drep);
12999
13000         offset = spoolss_dissect_element_SetJobInfo1_user_name(tvb, offset, pinfo, tree, drep);
13001
13002         offset = spoolss_dissect_element_SetJobInfo1_document_name(tvb, offset, pinfo, tree, drep);
13003
13004         offset = spoolss_dissect_element_SetJobInfo1_data_type(tvb, offset, pinfo, tree, drep);
13005
13006         offset = spoolss_dissect_element_SetJobInfo1_text_status(tvb, offset, pinfo, tree, drep);
13007
13008         offset = spoolss_dissect_element_SetJobInfo1_status(tvb, offset, pinfo, tree, drep);
13009
13010         offset = spoolss_dissect_element_SetJobInfo1_priority(tvb, offset, pinfo, tree, drep);
13011
13012         offset = spoolss_dissect_element_SetJobInfo1_position(tvb, offset, pinfo, tree, drep);
13013
13014         offset = spoolss_dissect_element_SetJobInfo1_total_pages(tvb, offset, pinfo, tree, drep);
13015
13016         offset = spoolss_dissect_element_SetJobInfo1_pages_printed(tvb, offset, pinfo, tree, drep);
13017
13018         offset = spoolss_dissect_element_SetJobInfo1_submitted(tvb, offset, pinfo, tree, drep);
13019
13020
13021         proto_item_set_len(item, offset-old_offset);
13022
13023
13024         if (di->call_data->flags & DCERPC_IS_NDR64) {
13025                 ALIGN_TO_5_BYTES;
13026         }
13027
13028         return offset;
13029 }
13030
13031
13032 /* IDL: struct { */
13033 /* IDL:         uint32 job_id; */
13034 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printer_name; */
13035 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *server_name; */
13036 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *user_name; */
13037 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *document_name; */
13038 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *notify_name; */
13039 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_type; */
13040 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *print_processor; */
13041 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *parameters; */
13042 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
13043 /* IDL:         [unique(1)] uint32 *_devmode_ptr; */
13044 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *text_status; */
13045 /* IDL:         [unique(1)] uint32 *_secdesc_ptr; */
13046 /* IDL:         spoolss_JobStatus status; */
13047 /* IDL:         [range(0,99)] uint32 priority; */
13048 /* IDL:         uint32 position; */
13049 /* IDL:         uint32 start_time; */
13050 /* IDL:         uint32 until_time; */
13051 /* IDL:         uint32 total_pages; */
13052 /* IDL:         uint32 size; */
13053 /* IDL:         spoolss_Time submitted; */
13054 /* IDL:         uint32 time; */
13055 /* IDL:         uint32 pages_printed; */
13056 /* IDL: } */
13057
13058 static int
13059 spoolss_dissect_element_SetJobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13060 {
13061         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_job_id, 0);
13062
13063         return offset;
13064 }
13065
13066 static int
13067 spoolss_dissect_element_SetJobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13068 {
13069         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_printer_name_, NDR_POINTER_UNIQUE, "Pointer to Printer Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_printer_name);
13070
13071         return offset;
13072 }
13073
13074 static int
13075 spoolss_dissect_element_SetJobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13076 {
13077         char *data;
13078
13079         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_printer_name, FALSE, &data);
13080         proto_item_append_text(tree, ": %s", data);
13081
13082         return offset;
13083 }
13084
13085 static int
13086 spoolss_dissect_element_SetJobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13087 {
13088         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_server_name);
13089
13090         return offset;
13091 }
13092
13093 static int
13094 spoolss_dissect_element_SetJobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13095 {
13096         char *data;
13097
13098         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_server_name, FALSE, &data);
13099         proto_item_append_text(tree, ": %s", data);
13100
13101         return offset;
13102 }
13103
13104 static int
13105 spoolss_dissect_element_SetJobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13106 {
13107         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_user_name);
13108
13109         return offset;
13110 }
13111
13112 static int
13113 spoolss_dissect_element_SetJobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13114 {
13115         char *data;
13116
13117         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_user_name, FALSE, &data);
13118         proto_item_append_text(tree, ": %s", data);
13119
13120         return offset;
13121 }
13122
13123 static int
13124 spoolss_dissect_element_SetJobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13125 {
13126         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_document_name);
13127
13128         return offset;
13129 }
13130
13131 static int
13132 spoolss_dissect_element_SetJobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13133 {
13134         char *data;
13135
13136         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_document_name, FALSE, &data);
13137         proto_item_append_text(tree, ": %s", data);
13138
13139         return offset;
13140 }
13141
13142 static int
13143 spoolss_dissect_element_SetJobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13144 {
13145         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_notify_name_, NDR_POINTER_UNIQUE, "Pointer to Notify Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_notify_name);
13146
13147         return offset;
13148 }
13149
13150 static int
13151 spoolss_dissect_element_SetJobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13152 {
13153         char *data;
13154
13155         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_notify_name, FALSE, &data);
13156         proto_item_append_text(tree, ": %s", data);
13157
13158         return offset;
13159 }
13160
13161 static int
13162 spoolss_dissect_element_SetJobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13163 {
13164         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_SetJobInfo2_data_type);
13165
13166         return offset;
13167 }
13168
13169 static int
13170 spoolss_dissect_element_SetJobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13171 {
13172         char *data;
13173
13174         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_data_type, FALSE, &data);
13175         proto_item_append_text(tree, ": %s", data);
13176
13177         return offset;
13178 }
13179
13180 static int
13181 spoolss_dissect_element_SetJobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13182 {
13183         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_print_processor_, NDR_POINTER_UNIQUE, "Pointer to Print Processor (uint16)",hf_spoolss_spoolss_SetJobInfo2_print_processor);
13184
13185         return offset;
13186 }
13187
13188 static int
13189 spoolss_dissect_element_SetJobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13190 {
13191         char *data;
13192
13193         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_print_processor, FALSE, &data);
13194         proto_item_append_text(tree, ": %s", data);
13195
13196         return offset;
13197 }
13198
13199 static int
13200 spoolss_dissect_element_SetJobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13201 {
13202         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_parameters_, NDR_POINTER_UNIQUE, "Pointer to Parameters (uint16)",hf_spoolss_spoolss_SetJobInfo2_parameters);
13203
13204         return offset;
13205 }
13206
13207 static int
13208 spoolss_dissect_element_SetJobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13209 {
13210         char *data;
13211
13212         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_parameters, FALSE, &data);
13213         proto_item_append_text(tree, ": %s", data);
13214
13215         return offset;
13216 }
13217
13218 static int
13219 spoolss_dissect_element_SetJobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13220 {
13221         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_driver_name);
13222
13223         return offset;
13224 }
13225
13226 static int
13227 spoolss_dissect_element_SetJobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13228 {
13229         char *data;
13230
13231         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_driver_name, FALSE, &data);
13232         proto_item_append_text(tree, ": %s", data);
13233
13234         return offset;
13235 }
13236
13237 static int
13238 spoolss_dissect_element_SetJobInfo2__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13239 {
13240         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2__devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Devmode Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo2__devmode_ptr);
13241
13242         return offset;
13243 }
13244
13245 static int
13246 spoolss_dissect_element_SetJobInfo2__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13247 {
13248         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2__devmode_ptr, 0);
13249
13250         return offset;
13251 }
13252
13253 static int
13254 spoolss_dissect_element_SetJobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13255 {
13256         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_text_status_, NDR_POINTER_UNIQUE, "Pointer to Text Status (uint16)",hf_spoolss_spoolss_SetJobInfo2_text_status);
13257
13258         return offset;
13259 }
13260
13261 static int
13262 spoolss_dissect_element_SetJobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13263 {
13264         char *data;
13265
13266         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_text_status, FALSE, &data);
13267         proto_item_append_text(tree, ": %s", data);
13268
13269         return offset;
13270 }
13271
13272 static int
13273 spoolss_dissect_element_SetJobInfo2__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13274 {
13275         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2__secdesc_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Secdesc Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr);
13276
13277         return offset;
13278 }
13279
13280 static int
13281 spoolss_dissect_element_SetJobInfo2__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13282 {
13283         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr, 0);
13284
13285         return offset;
13286 }
13287
13288 static int
13289 spoolss_dissect_element_SetJobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13290 {
13291         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_status, 0);
13292
13293         return offset;
13294 }
13295
13296 static int
13297 spoolss_dissect_element_SetJobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13298 {
13299         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_priority, 0);
13300
13301         return offset;
13302 }
13303
13304 static int
13305 spoolss_dissect_element_SetJobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13306 {
13307         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_position, 0);
13308
13309         return offset;
13310 }
13311
13312 static int
13313 spoolss_dissect_element_SetJobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13314 {
13315         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_start_time, 0);
13316
13317         return offset;
13318 }
13319
13320 static int
13321 spoolss_dissect_element_SetJobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13322 {
13323         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_until_time, 0);
13324
13325         return offset;
13326 }
13327
13328 static int
13329 spoolss_dissect_element_SetJobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13330 {
13331         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_total_pages, 0);
13332
13333         return offset;
13334 }
13335
13336 static int
13337 spoolss_dissect_element_SetJobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13338 {
13339         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_size, 0);
13340
13341         return offset;
13342 }
13343
13344 static int
13345 spoolss_dissect_element_SetJobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13346 {
13347         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo2_submitted,0);
13348
13349         return offset;
13350 }
13351
13352 static int
13353 spoolss_dissect_element_SetJobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13354 {
13355         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_time, 0);
13356
13357         return offset;
13358 }
13359
13360 static int
13361 spoolss_dissect_element_SetJobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13362 {
13363         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_pages_printed, 0);
13364
13365         return offset;
13366 }
13367
13368 int
13369 spoolss_dissect_struct_SetJobInfo2(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_)
13370 {
13371         proto_item *item = NULL;
13372         proto_tree *tree = NULL;
13373         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
13374         int old_offset;
13375
13376         ALIGN_TO_5_BYTES;
13377
13378         old_offset = offset;
13379
13380         if (parent_tree) {
13381                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
13382                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo2);
13383         }
13384         
13385         offset = spoolss_dissect_element_SetJobInfo2_job_id(tvb, offset, pinfo, tree, drep);
13386
13387         offset = spoolss_dissect_element_SetJobInfo2_printer_name(tvb, offset, pinfo, tree, drep);
13388
13389         offset = spoolss_dissect_element_SetJobInfo2_server_name(tvb, offset, pinfo, tree, drep);
13390
13391         offset = spoolss_dissect_element_SetJobInfo2_user_name(tvb, offset, pinfo, tree, drep);
13392
13393         offset = spoolss_dissect_element_SetJobInfo2_document_name(tvb, offset, pinfo, tree, drep);
13394
13395         offset = spoolss_dissect_element_SetJobInfo2_notify_name(tvb, offset, pinfo, tree, drep);
13396
13397         offset = spoolss_dissect_element_SetJobInfo2_data_type(tvb, offset, pinfo, tree, drep);
13398
13399         offset = spoolss_dissect_element_SetJobInfo2_print_processor(tvb, offset, pinfo, tree, drep);
13400
13401         offset = spoolss_dissect_element_SetJobInfo2_parameters(tvb, offset, pinfo, tree, drep);
13402
13403         offset = spoolss_dissect_element_SetJobInfo2_driver_name(tvb, offset, pinfo, tree, drep);
13404
13405         offset = spoolss_dissect_element_SetJobInfo2__devmode_ptr(tvb, offset, pinfo, tree, drep);
13406
13407         offset = spoolss_dissect_element_SetJobInfo2_text_status(tvb, offset, pinfo, tree, drep);
13408
13409         offset = spoolss_dissect_element_SetJobInfo2__secdesc_ptr(tvb, offset, pinfo, tree, drep);
13410
13411         offset = spoolss_dissect_element_SetJobInfo2_status(tvb, offset, pinfo, tree, drep);
13412
13413         offset = spoolss_dissect_element_SetJobInfo2_priority(tvb, offset, pinfo, tree, drep);
13414
13415         offset = spoolss_dissect_element_SetJobInfo2_position(tvb, offset, pinfo, tree, drep);
13416
13417         offset = spoolss_dissect_element_SetJobInfo2_start_time(tvb, offset, pinfo, tree, drep);
13418
13419         offset = spoolss_dissect_element_SetJobInfo2_until_time(tvb, offset, pinfo, tree, drep);
13420
13421         offset = spoolss_dissect_element_SetJobInfo2_total_pages(tvb, offset, pinfo, tree, drep);
13422
13423         offset = spoolss_dissect_element_SetJobInfo2_size(tvb, offset, pinfo, tree, drep);
13424
13425         offset = spoolss_dissect_element_SetJobInfo2_submitted(tvb, offset, pinfo, tree, drep);
13426
13427         offset = spoolss_dissect_element_SetJobInfo2_time(tvb, offset, pinfo, tree, drep);
13428
13429         offset = spoolss_dissect_element_SetJobInfo2_pages_printed(tvb, offset, pinfo, tree, drep);
13430
13431
13432         proto_item_set_len(item, offset-old_offset);
13433
13434
13435         if (di->call_data->flags & DCERPC_IS_NDR64) {
13436                 ALIGN_TO_5_BYTES;
13437         }
13438
13439         return offset;
13440 }
13441
13442
13443 /* IDL: struct { */
13444 /* IDL:         uint32 job_id; */
13445 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printer_name; */
13446 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *server_name; */
13447 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *user_name; */
13448 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *document_name; */
13449 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *notify_name; */
13450 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_type; */
13451 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *print_processor; */
13452 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *parameters; */
13453 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
13454 /* IDL:         [unique(1)] uint32 *_devmode_ptr; */
13455 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *text_status; */
13456 /* IDL:         [unique(1)] uint32 *_secdesc_ptr; */
13457 /* IDL:         spoolss_JobStatus status; */
13458 /* IDL:         [range(0,99)] uint32 priority; */
13459 /* IDL:         uint32 position; */
13460 /* IDL:         uint32 start_time; */
13461 /* IDL:         uint32 until_time; */
13462 /* IDL:         uint32 total_pages; */
13463 /* IDL:         uint32 size; */
13464 /* IDL:         spoolss_Time submitted; */
13465 /* IDL:         uint32 time; */
13466 /* IDL:         uint32 pages_printed; */
13467 /* IDL:         uint32 size_high; */
13468 /* IDL: } */
13469
13470 static int
13471 spoolss_dissect_element_SetJobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13472 {
13473         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_job_id, 0);
13474
13475         return offset;
13476 }
13477
13478 static int
13479 spoolss_dissect_element_SetJobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13480 {
13481         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_printer_name_, NDR_POINTER_UNIQUE, "Pointer to Printer Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_printer_name);
13482
13483         return offset;
13484 }
13485
13486 static int
13487 spoolss_dissect_element_SetJobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13488 {
13489         char *data;
13490
13491         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_printer_name, FALSE, &data);
13492         proto_item_append_text(tree, ": %s", data);
13493
13494         return offset;
13495 }
13496
13497 static int
13498 spoolss_dissect_element_SetJobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13499 {
13500         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_server_name);
13501
13502         return offset;
13503 }
13504
13505 static int
13506 spoolss_dissect_element_SetJobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13507 {
13508         char *data;
13509
13510         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_server_name, FALSE, &data);
13511         proto_item_append_text(tree, ": %s", data);
13512
13513         return offset;
13514 }
13515
13516 static int
13517 spoolss_dissect_element_SetJobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13518 {
13519         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_user_name);
13520
13521         return offset;
13522 }
13523
13524 static int
13525 spoolss_dissect_element_SetJobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13526 {
13527         char *data;
13528
13529         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_user_name, FALSE, &data);
13530         proto_item_append_text(tree, ": %s", data);
13531
13532         return offset;
13533 }
13534
13535 static int
13536 spoolss_dissect_element_SetJobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13537 {
13538         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_document_name);
13539
13540         return offset;
13541 }
13542
13543 static int
13544 spoolss_dissect_element_SetJobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13545 {
13546         char *data;
13547
13548         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_document_name, FALSE, &data);
13549         proto_item_append_text(tree, ": %s", data);
13550
13551         return offset;
13552 }
13553
13554 static int
13555 spoolss_dissect_element_SetJobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13556 {
13557         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_notify_name_, NDR_POINTER_UNIQUE, "Pointer to Notify Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_notify_name);
13558
13559         return offset;
13560 }
13561
13562 static int
13563 spoolss_dissect_element_SetJobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13564 {
13565         char *data;
13566
13567         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_notify_name, FALSE, &data);
13568         proto_item_append_text(tree, ": %s", data);
13569
13570         return offset;
13571 }
13572
13573 static int
13574 spoolss_dissect_element_SetJobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13575 {
13576         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_SetJobInfo4_data_type);
13577
13578         return offset;
13579 }
13580
13581 static int
13582 spoolss_dissect_element_SetJobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13583 {
13584         char *data;
13585
13586         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_data_type, FALSE, &data);
13587         proto_item_append_text(tree, ": %s", data);
13588
13589         return offset;
13590 }
13591
13592 static int
13593 spoolss_dissect_element_SetJobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13594 {
13595         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_print_processor_, NDR_POINTER_UNIQUE, "Pointer to Print Processor (uint16)",hf_spoolss_spoolss_SetJobInfo4_print_processor);
13596
13597         return offset;
13598 }
13599
13600 static int
13601 spoolss_dissect_element_SetJobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13602 {
13603         char *data;
13604
13605         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_print_processor, FALSE, &data);
13606         proto_item_append_text(tree, ": %s", data);
13607
13608         return offset;
13609 }
13610
13611 static int
13612 spoolss_dissect_element_SetJobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13613 {
13614         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_parameters_, NDR_POINTER_UNIQUE, "Pointer to Parameters (uint16)",hf_spoolss_spoolss_SetJobInfo4_parameters);
13615
13616         return offset;
13617 }
13618
13619 static int
13620 spoolss_dissect_element_SetJobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13621 {
13622         char *data;
13623
13624         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_parameters, FALSE, &data);
13625         proto_item_append_text(tree, ": %s", data);
13626
13627         return offset;
13628 }
13629
13630 static int
13631 spoolss_dissect_element_SetJobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13632 {
13633         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_driver_name);
13634
13635         return offset;
13636 }
13637
13638 static int
13639 spoolss_dissect_element_SetJobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13640 {
13641         char *data;
13642
13643         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_driver_name, FALSE, &data);
13644         proto_item_append_text(tree, ": %s", data);
13645
13646         return offset;
13647 }
13648
13649 static int
13650 spoolss_dissect_element_SetJobInfo4__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13651 {
13652         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4__devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Devmode Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo4__devmode_ptr);
13653
13654         return offset;
13655 }
13656
13657 static int
13658 spoolss_dissect_element_SetJobInfo4__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13659 {
13660         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4__devmode_ptr, 0);
13661
13662         return offset;
13663 }
13664
13665 static int
13666 spoolss_dissect_element_SetJobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13667 {
13668         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_text_status_, NDR_POINTER_UNIQUE, "Pointer to Text Status (uint16)",hf_spoolss_spoolss_SetJobInfo4_text_status);
13669
13670         return offset;
13671 }
13672
13673 static int
13674 spoolss_dissect_element_SetJobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13675 {
13676         char *data;
13677
13678         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_text_status, FALSE, &data);
13679         proto_item_append_text(tree, ": %s", data);
13680
13681         return offset;
13682 }
13683
13684 static int
13685 spoolss_dissect_element_SetJobInfo4__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13686 {
13687         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4__secdesc_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Secdesc Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr);
13688
13689         return offset;
13690 }
13691
13692 static int
13693 spoolss_dissect_element_SetJobInfo4__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13694 {
13695         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr, 0);
13696
13697         return offset;
13698 }
13699
13700 static int
13701 spoolss_dissect_element_SetJobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13702 {
13703         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_status, 0);
13704
13705         return offset;
13706 }
13707
13708 static int
13709 spoolss_dissect_element_SetJobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13710 {
13711         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_priority, 0);
13712
13713         return offset;
13714 }
13715
13716 static int
13717 spoolss_dissect_element_SetJobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13718 {
13719         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_position, 0);
13720
13721         return offset;
13722 }
13723
13724 static int
13725 spoolss_dissect_element_SetJobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13726 {
13727         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_start_time, 0);
13728
13729         return offset;
13730 }
13731
13732 static int
13733 spoolss_dissect_element_SetJobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13734 {
13735         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_until_time, 0);
13736
13737         return offset;
13738 }
13739
13740 static int
13741 spoolss_dissect_element_SetJobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13742 {
13743         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_total_pages, 0);
13744
13745         return offset;
13746 }
13747
13748 static int
13749 spoolss_dissect_element_SetJobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13750 {
13751         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_size, 0);
13752
13753         return offset;
13754 }
13755
13756 static int
13757 spoolss_dissect_element_SetJobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13758 {
13759         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo4_submitted,0);
13760
13761         return offset;
13762 }
13763
13764 static int
13765 spoolss_dissect_element_SetJobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13766 {
13767         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_time, 0);
13768
13769         return offset;
13770 }
13771
13772 static int
13773 spoolss_dissect_element_SetJobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13774 {
13775         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_pages_printed, 0);
13776
13777         return offset;
13778 }
13779
13780 static int
13781 spoolss_dissect_element_SetJobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13782 {
13783         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_size_high, 0);
13784
13785         return offset;
13786 }
13787
13788 int
13789 spoolss_dissect_struct_SetJobInfo4(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_)
13790 {
13791         proto_item *item = NULL;
13792         proto_tree *tree = NULL;
13793         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
13794         int old_offset;
13795
13796         ALIGN_TO_5_BYTES;
13797
13798         old_offset = offset;
13799
13800         if (parent_tree) {
13801                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
13802                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo4);
13803         }
13804         
13805         offset = spoolss_dissect_element_SetJobInfo4_job_id(tvb, offset, pinfo, tree, drep);
13806
13807         offset = spoolss_dissect_element_SetJobInfo4_printer_name(tvb, offset, pinfo, tree, drep);
13808
13809         offset = spoolss_dissect_element_SetJobInfo4_server_name(tvb, offset, pinfo, tree, drep);
13810
13811         offset = spoolss_dissect_element_SetJobInfo4_user_name(tvb, offset, pinfo, tree, drep);
13812
13813         offset = spoolss_dissect_element_SetJobInfo4_document_name(tvb, offset, pinfo, tree, drep);
13814
13815         offset = spoolss_dissect_element_SetJobInfo4_notify_name(tvb, offset, pinfo, tree, drep);
13816
13817         offset = spoolss_dissect_element_SetJobInfo4_data_type(tvb, offset, pinfo, tree, drep);
13818
13819         offset = spoolss_dissect_element_SetJobInfo4_print_processor(tvb, offset, pinfo, tree, drep);
13820
13821         offset = spoolss_dissect_element_SetJobInfo4_parameters(tvb, offset, pinfo, tree, drep);
13822
13823         offset = spoolss_dissect_element_SetJobInfo4_driver_name(tvb, offset, pinfo, tree, drep);
13824
13825         offset = spoolss_dissect_element_SetJobInfo4__devmode_ptr(tvb, offset, pinfo, tree, drep);
13826
13827         offset = spoolss_dissect_element_SetJobInfo4_text_status(tvb, offset, pinfo, tree, drep);
13828
13829         offset = spoolss_dissect_element_SetJobInfo4__secdesc_ptr(tvb, offset, pinfo, tree, drep);
13830
13831         offset = spoolss_dissect_element_SetJobInfo4_status(tvb, offset, pinfo, tree, drep);
13832
13833         offset = spoolss_dissect_element_SetJobInfo4_priority(tvb, offset, pinfo, tree, drep);
13834
13835         offset = spoolss_dissect_element_SetJobInfo4_position(tvb, offset, pinfo, tree, drep);
13836
13837         offset = spoolss_dissect_element_SetJobInfo4_start_time(tvb, offset, pinfo, tree, drep);
13838
13839         offset = spoolss_dissect_element_SetJobInfo4_until_time(tvb, offset, pinfo, tree, drep);
13840
13841         offset = spoolss_dissect_element_SetJobInfo4_total_pages(tvb, offset, pinfo, tree, drep);
13842
13843         offset = spoolss_dissect_element_SetJobInfo4_size(tvb, offset, pinfo, tree, drep);
13844
13845         offset = spoolss_dissect_element_SetJobInfo4_submitted(tvb, offset, pinfo, tree, drep);
13846
13847         offset = spoolss_dissect_element_SetJobInfo4_time(tvb, offset, pinfo, tree, drep);
13848
13849         offset = spoolss_dissect_element_SetJobInfo4_pages_printed(tvb, offset, pinfo, tree, drep);
13850
13851         offset = spoolss_dissect_element_SetJobInfo4_size_high(tvb, offset, pinfo, tree, drep);
13852
13853
13854         proto_item_set_len(item, offset-old_offset);
13855
13856
13857         if (di->call_data->flags & DCERPC_IS_NDR64) {
13858                 ALIGN_TO_5_BYTES;
13859         }
13860
13861         return offset;
13862 }
13863
13864
13865 /* IDL: [ms_union(1)] [public(1)] union { */
13866 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_SetJobInfo1 *info1; */
13867 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_SetJobInfo2 *info2; */
13868 /* IDL: [case(3)] [unique(1)] [case(3)] spoolss_JobInfo3 *info3; */
13869 /* IDL: [case(4)] [unique(1)] [case(4)] spoolss_SetJobInfo4 *info4; */
13870 /* IDL: [default] ; */
13871 /* IDL: } */
13872
13873 static int
13874 spoolss_dissect_element_SetJobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13875 {
13876         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_SetJobInfo1)",hf_spoolss_spoolss_SetJobInfo_info1);
13877
13878         return offset;
13879 }
13880
13881 static int
13882 spoolss_dissect_element_SetJobInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13883 {
13884         offset = spoolss_dissect_struct_SetJobInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info1,0);
13885
13886         return offset;
13887 }
13888
13889 static int
13890 spoolss_dissect_element_SetJobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13891 {
13892         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_SetJobInfo2)",hf_spoolss_spoolss_SetJobInfo_info2);
13893
13894         return offset;
13895 }
13896
13897 static int
13898 spoolss_dissect_element_SetJobInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13899 {
13900         offset = spoolss_dissect_struct_SetJobInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info2,0);
13901
13902         return offset;
13903 }
13904
13905 static int
13906 spoolss_dissect_element_SetJobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13907 {
13908         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_JobInfo3)",hf_spoolss_spoolss_SetJobInfo_info3);
13909
13910         return offset;
13911 }
13912
13913 static int
13914 spoolss_dissect_element_SetJobInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13915 {
13916         offset = spoolss_dissect_struct_JobInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info3,0);
13917
13918         return offset;
13919 }
13920
13921 static int
13922 spoolss_dissect_element_SetJobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13923 {
13924         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (spoolss_SetJobInfo4)",hf_spoolss_spoolss_SetJobInfo_info4);
13925
13926         return offset;
13927 }
13928
13929 static int
13930 spoolss_dissect_element_SetJobInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
13931 {
13932         offset = spoolss_dissect_struct_SetJobInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info4,0);
13933
13934         return offset;
13935 }
13936
13937 static int
13938 spoolss_dissect_SetJobInfo(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_)
13939 {
13940         proto_item *item = NULL;
13941         proto_tree *tree = NULL;
13942         int old_offset;
13943         guint32 level;
13944
13945         old_offset = offset;
13946         if (parent_tree) {
13947                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_SetJobInfo");
13948                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo);
13949         }
13950
13951         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
13952         ALIGN_TO_5_BYTES;
13953
13954         switch(level) {
13955                 case 1:
13956                         offset = spoolss_dissect_element_SetJobInfo_info1(tvb, offset, pinfo, tree, drep);
13957                 break;
13958
13959                 case 2:
13960                         offset = spoolss_dissect_element_SetJobInfo_info2(tvb, offset, pinfo, tree, drep);
13961                 break;
13962
13963                 case 3:
13964                         offset = spoolss_dissect_element_SetJobInfo_info3(tvb, offset, pinfo, tree, drep);
13965                 break;
13966
13967                 case 4:
13968                         offset = spoolss_dissect_element_SetJobInfo_info4(tvb, offset, pinfo, tree, drep);
13969                 break;
13970
13971                 default:
13972                 break;
13973         }
13974         proto_item_set_len(item, offset-old_offset);
13975
13976
13977         return offset;
13978 }
13979
13980 /* IDL: struct { */
13981 /* IDL:         uint32 level; */
13982 /* IDL:         [switch_is(level)] spoolss_SetJobInfo info; */
13983 /* IDL: } */
13984
13985 static int
13986 spoolss_dissect_element_JobInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
13987 {
13988         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfoContainer_level, level);
13989
13990         return offset;
13991 }
13992
13993 static int
13994 spoolss_dissect_element_JobInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
13995 {
13996         offset = spoolss_dissect_SetJobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfoContainer_info, *level);
13997
13998         return offset;
13999 }
14000
14001 int
14002 spoolss_dissect_struct_JobInfoContainer(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_)
14003 {
14004         g level;
14005         proto_item *item = NULL;
14006         proto_tree *tree = NULL;
14007         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
14008         int old_offset;
14009
14010         ALIGN_TO_5_BYTES;
14011
14012         old_offset = offset;
14013
14014         if (parent_tree) {
14015                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
14016                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfoContainer);
14017         }
14018         
14019         offset = spoolss_dissect_element_JobInfoContainer_level(tvb, offset, pinfo, tree, drep, &level);
14020
14021         offset = spoolss_dissect_element_JobInfoContainer_info(tvb, offset, pinfo, tree, drep, &level);
14022
14023
14024         proto_item_set_len(item, offset-old_offset);
14025
14026
14027         if (di->call_data->flags & DCERPC_IS_NDR64) {
14028                 ALIGN_TO_5_BYTES;
14029         }
14030
14031         return offset;
14032 }
14033
14034
14035 /* IDL: enum { */
14036 /* IDL:         SPOOLSS_JOB_CONTROL_PAUSE=1, */
14037 /* IDL:         SPOOLSS_JOB_CONTROL_RESUME=2, */
14038 /* IDL:         SPOOLSS_JOB_CONTROL_CANCEL=3, */
14039 /* IDL:         SPOOLSS_JOB_CONTROL_RESTART=4, */
14040 /* IDL:         SPOOLSS_JOB_CONTROL_DELETE=5, */
14041 /* IDL:         SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER=6, */
14042 /* IDL:         SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED=7, */
14043 /* IDL:         SPOOLSS_JOB_CONTROL_RETAIN=8, */
14044 /* IDL:         SPOOLSS_JOB_CONTROL_RELEASE=9, */
14045 /* IDL: } */
14046
14047 int
14048 spoolss_dissect_enum_JobControl(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_)
14049 {
14050         guint32 parameter=0;
14051         if(param){
14052                 parameter=(guint32)*param;
14053         }
14054         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
14055         if(param){
14056                 *param=(guint32)parameter;
14057         }
14058         return offset;
14059 }
14060
14061
14062 /* IDL: enum { */
14063 /* IDL:         SPOOLSS_PRINTER_CONTROL_UNPAUSE=0, */
14064 /* IDL:         SPOOLSS_PRINTER_CONTROL_PAUSE=1, */
14065 /* IDL:         SPOOLSS_PRINTER_CONTROL_RESUME=2, */
14066 /* IDL:         SPOOLSS_PRINTER_CONTROL_PURGE=3, */
14067 /* IDL:         SPOOLSS_PRINTER_CONTROL_SET_STATUS=4, */
14068 /* IDL: } */
14069
14070 int
14071 spoolss_dissect_enum_PrinterControl(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_)
14072 {
14073         guint32 parameter=0;
14074         if(param){
14075                 parameter=(guint32)*param;
14076         }
14077         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
14078         if(param){
14079                 *param=(guint32)parameter;
14080         }
14081         return offset;
14082 }
14083
14084
14085 /* IDL: struct { */
14086 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *servername; */
14087 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printername; */
14088 /* IDL:         uint32 cjobs; */
14089 /* IDL:         uint32 total_jobs; */
14090 /* IDL:         uint32 total_bytes; */
14091 /* IDL:         spoolss_Time time; */
14092 /* IDL:         uint32 global_counter; */
14093 /* IDL:         uint32 total_pages; */
14094 /* IDL:         uint32 version; */
14095 /* IDL:         spoolss_Build free_build; */
14096 /* IDL:         uint32 spooling; */
14097 /* IDL:         uint32 max_spooling; */
14098 /* IDL:         uint32 session_counter; */
14099 /* IDL:         uint32 num_error_out_of_paper; */
14100 /* IDL:         uint32 num_error_not_ready; */
14101 /* IDL:         spoolss_JobStatus job_error; */
14102 /* IDL:         uint32 number_of_processors; */
14103 /* IDL:         spoolss_ProcessorType processor_type; */
14104 /* IDL:         uint32 high_part_total_bytes; */
14105 /* IDL:         uint32 change_id; */
14106 /* IDL:         WERROR last_error; */
14107 /* IDL:         spoolss_PrinterStatus status; */
14108 /* IDL:         uint32 enumerate_network_printers; */
14109 /* IDL:         uint32 c_setprinter; */
14110 /* IDL:         spoolss_ProcessorArchitecture processor_architecture; */
14111 /* IDL:         uint16 processor_level; */
14112 /* IDL:         uint32 ref_ic; */
14113 /* IDL:         uint32 reserved2; */
14114 /* IDL:         uint32 reserved3; */
14115 /* IDL: } */
14116
14117 static int
14118 spoolss_dissect_element_SetPrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14119 {
14120         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo0_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPrinterInfo0_servername);
14121
14122         return offset;
14123 }
14124
14125 static int
14126 spoolss_dissect_element_SetPrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14127 {
14128         char *data;
14129
14130         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo0_servername, FALSE, &data);
14131         proto_item_append_text(tree, ": %s", data);
14132
14133         return offset;
14134 }
14135
14136 static int
14137 spoolss_dissect_element_SetPrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14138 {
14139         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo0_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo0_printername);
14140
14141         return offset;
14142 }
14143
14144 static int
14145 spoolss_dissect_element_SetPrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14146 {
14147         char *data;
14148
14149         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo0_printername, FALSE, &data);
14150         proto_item_append_text(tree, ": %s", data);
14151
14152         return offset;
14153 }
14154
14155 static int
14156 spoolss_dissect_element_SetPrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14157 {
14158         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_cjobs, 0);
14159
14160         return offset;
14161 }
14162
14163 static int
14164 spoolss_dissect_element_SetPrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14165 {
14166         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_total_jobs, 0);
14167
14168         return offset;
14169 }
14170
14171 static int
14172 spoolss_dissect_element_SetPrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14173 {
14174         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_total_bytes, 0);
14175
14176         return offset;
14177 }
14178
14179 static int
14180 spoolss_dissect_element_SetPrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14181 {
14182         offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo0_time,0);
14183
14184         return offset;
14185 }
14186
14187 static int
14188 spoolss_dissect_element_SetPrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14189 {
14190         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_global_counter, 0);
14191
14192         return offset;
14193 }
14194
14195 static int
14196 spoolss_dissect_element_SetPrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14197 {
14198         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_total_pages, 0);
14199
14200         return offset;
14201 }
14202
14203 static int
14204 spoolss_dissect_element_SetPrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14205 {
14206         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_version, 0);
14207
14208         return offset;
14209 }
14210
14211 static int
14212 spoolss_dissect_element_SetPrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14213 {
14214         offset = spoolss_dissect_enum_Build(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_free_build, 0);
14215
14216         return offset;
14217 }
14218
14219 static int
14220 spoolss_dissect_element_SetPrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14221 {
14222         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_spooling, 0);
14223
14224         return offset;
14225 }
14226
14227 static int
14228 spoolss_dissect_element_SetPrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14229 {
14230         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_max_spooling, 0);
14231
14232         return offset;
14233 }
14234
14235 static int
14236 spoolss_dissect_element_SetPrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14237 {
14238         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_session_counter, 0);
14239
14240         return offset;
14241 }
14242
14243 static int
14244 spoolss_dissect_element_SetPrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14245 {
14246         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_num_error_out_of_paper, 0);
14247
14248         return offset;
14249 }
14250
14251 static int
14252 spoolss_dissect_element_SetPrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14253 {
14254         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_num_error_not_ready, 0);
14255
14256         return offset;
14257 }
14258
14259 static int
14260 spoolss_dissect_element_SetPrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14261 {
14262         offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_job_error, 0);
14263
14264         return offset;
14265 }
14266
14267 static int
14268 spoolss_dissect_element_SetPrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14269 {
14270         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_number_of_processors, 0);
14271
14272         return offset;
14273 }
14274
14275 static int
14276 spoolss_dissect_element_SetPrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14277 {
14278         offset = spoolss_dissect_enum_ProcessorType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_processor_type, 0);
14279
14280         return offset;
14281 }
14282
14283 static int
14284 spoolss_dissect_element_SetPrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14285 {
14286         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_high_part_total_bytes, 0);
14287
14288         return offset;
14289 }
14290
14291 static int
14292 spoolss_dissect_element_SetPrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14293 {
14294         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_change_id, 0);
14295
14296         return offset;
14297 }
14298
14299 static int
14300 spoolss_dissect_element_SetPrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14301 {
14302         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_last_error, 0);
14303
14304         return offset;
14305 }
14306
14307 static int
14308 spoolss_dissect_element_SetPrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14309 {
14310         offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_status, 0);
14311
14312         return offset;
14313 }
14314
14315 static int
14316 spoolss_dissect_element_SetPrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14317 {
14318         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_enumerate_network_printers, 0);
14319
14320         return offset;
14321 }
14322
14323 static int
14324 spoolss_dissect_element_SetPrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14325 {
14326         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_c_setprinter, 0);
14327
14328         return offset;
14329 }
14330
14331 static int
14332 spoolss_dissect_element_SetPrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14333 {
14334         offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_processor_architecture, 0);
14335
14336         return offset;
14337 }
14338
14339 static int
14340 spoolss_dissect_element_SetPrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14341 {
14342         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_processor_level, 0);
14343
14344         return offset;
14345 }
14346
14347 static int
14348 spoolss_dissect_element_SetPrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14349 {
14350         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_ref_ic, 0);
14351
14352         return offset;
14353 }
14354
14355 static int
14356 spoolss_dissect_element_SetPrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14357 {
14358         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_reserved2, 0);
14359
14360         return offset;
14361 }
14362
14363 static int
14364 spoolss_dissect_element_SetPrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14365 {
14366         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_reserved3, 0);
14367
14368         return offset;
14369 }
14370
14371 int
14372 spoolss_dissect_struct_SetPrinterInfo0(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_)
14373 {
14374         proto_item *item = NULL;
14375         proto_tree *tree = NULL;
14376         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
14377         int old_offset;
14378
14379         ALIGN_TO_5_BYTES;
14380
14381         old_offset = offset;
14382
14383         if (parent_tree) {
14384                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
14385                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo0);
14386         }
14387         
14388         offset = spoolss_dissect_element_SetPrinterInfo0_servername(tvb, offset, pinfo, tree, drep);
14389
14390         offset = spoolss_dissect_element_SetPrinterInfo0_printername(tvb, offset, pinfo, tree, drep);
14391
14392         offset = spoolss_dissect_element_SetPrinterInfo0_cjobs(tvb, offset, pinfo, tree, drep);
14393
14394         offset = spoolss_dissect_element_SetPrinterInfo0_total_jobs(tvb, offset, pinfo, tree, drep);
14395
14396         offset = spoolss_dissect_element_SetPrinterInfo0_total_bytes(tvb, offset, pinfo, tree, drep);
14397
14398         offset = spoolss_dissect_element_SetPrinterInfo0_time(tvb, offset, pinfo, tree, drep);
14399
14400         offset = spoolss_dissect_element_SetPrinterInfo0_global_counter(tvb, offset, pinfo, tree, drep);
14401
14402         offset = spoolss_dissect_element_SetPrinterInfo0_total_pages(tvb, offset, pinfo, tree, drep);
14403
14404         offset = spoolss_dissect_element_SetPrinterInfo0_version(tvb, offset, pinfo, tree, drep);
14405
14406         offset = spoolss_dissect_element_SetPrinterInfo0_free_build(tvb, offset, pinfo, tree, drep);
14407
14408         offset = spoolss_dissect_element_SetPrinterInfo0_spooling(tvb, offset, pinfo, tree, drep);
14409
14410         offset = spoolss_dissect_element_SetPrinterInfo0_max_spooling(tvb, offset, pinfo, tree, drep);
14411
14412         offset = spoolss_dissect_element_SetPrinterInfo0_session_counter(tvb, offset, pinfo, tree, drep);
14413
14414         offset = spoolss_dissect_element_SetPrinterInfo0_num_error_out_of_paper(tvb, offset, pinfo, tree, drep);
14415
14416         offset = spoolss_dissect_element_SetPrinterInfo0_num_error_not_ready(tvb, offset, pinfo, tree, drep);
14417
14418         offset = spoolss_dissect_element_SetPrinterInfo0_job_error(tvb, offset, pinfo, tree, drep);
14419
14420         offset = spoolss_dissect_element_SetPrinterInfo0_number_of_processors(tvb, offset, pinfo, tree, drep);
14421
14422         offset = spoolss_dissect_element_SetPrinterInfo0_processor_type(tvb, offset, pinfo, tree, drep);
14423
14424         offset = spoolss_dissect_element_SetPrinterInfo0_high_part_total_bytes(tvb, offset, pinfo, tree, drep);
14425
14426         offset = spoolss_dissect_element_SetPrinterInfo0_change_id(tvb, offset, pinfo, tree, drep);
14427
14428         offset = spoolss_dissect_element_SetPrinterInfo0_last_error(tvb, offset, pinfo, tree, drep);
14429
14430         offset = spoolss_dissect_element_SetPrinterInfo0_status(tvb, offset, pinfo, tree, drep);
14431
14432         offset = spoolss_dissect_element_SetPrinterInfo0_enumerate_network_printers(tvb, offset, pinfo, tree, drep);
14433
14434         offset = spoolss_dissect_element_SetPrinterInfo0_c_setprinter(tvb, offset, pinfo, tree, drep);
14435
14436         offset = spoolss_dissect_element_SetPrinterInfo0_processor_architecture(tvb, offset, pinfo, tree, drep);
14437
14438         offset = spoolss_dissect_element_SetPrinterInfo0_processor_level(tvb, offset, pinfo, tree, drep);
14439
14440         offset = spoolss_dissect_element_SetPrinterInfo0_ref_ic(tvb, offset, pinfo, tree, drep);
14441
14442         offset = spoolss_dissect_element_SetPrinterInfo0_reserved2(tvb, offset, pinfo, tree, drep);
14443
14444         offset = spoolss_dissect_element_SetPrinterInfo0_reserved3(tvb, offset, pinfo, tree, drep);
14445
14446
14447         proto_item_set_len(item, offset-old_offset);
14448
14449
14450         if (di->call_data->flags & DCERPC_IS_NDR64) {
14451                 ALIGN_TO_5_BYTES;
14452         }
14453
14454         return offset;
14455 }
14456
14457
14458 /* IDL: struct { */
14459 /* IDL:         spoolss_PrinterAttributes flags; */
14460 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *description; */
14461 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *name; */
14462 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *comment; */
14463 /* IDL: } */
14464
14465 static int
14466 spoolss_dissect_element_SetPrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14467 {
14468         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo1_flags, 0);
14469
14470         return offset;
14471 }
14472
14473 static int
14474 spoolss_dissect_element_SetPrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14475 {
14476         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo1_description_, NDR_POINTER_UNIQUE, "Pointer to Description (uint16)",hf_spoolss_spoolss_SetPrinterInfo1_description);
14477
14478         return offset;
14479 }
14480
14481 static int
14482 spoolss_dissect_element_SetPrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14483 {
14484         char *data;
14485
14486         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo1_description, FALSE, &data);
14487         proto_item_append_text(tree, ": %s", data);
14488
14489         return offset;
14490 }
14491
14492 static int
14493 spoolss_dissect_element_SetPrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14494 {
14495         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo1_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_spoolss_spoolss_SetPrinterInfo1_name);
14496
14497         return offset;
14498 }
14499
14500 static int
14501 spoolss_dissect_element_SetPrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14502 {
14503         char *data;
14504
14505         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo1_name, FALSE, &data);
14506         proto_item_append_text(tree, ": %s", data);
14507
14508         return offset;
14509 }
14510
14511 static int
14512 spoolss_dissect_element_SetPrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14513 {
14514         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo1_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_spoolss_spoolss_SetPrinterInfo1_comment);
14515
14516         return offset;
14517 }
14518
14519 static int
14520 spoolss_dissect_element_SetPrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14521 {
14522         char *data;
14523
14524         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo1_comment, FALSE, &data);
14525         proto_item_append_text(tree, ": %s", data);
14526
14527         return offset;
14528 }
14529
14530 int
14531 spoolss_dissect_struct_SetPrinterInfo1(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_)
14532 {
14533         proto_item *item = NULL;
14534         proto_tree *tree = NULL;
14535         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
14536         int old_offset;
14537
14538         ALIGN_TO_5_BYTES;
14539
14540         old_offset = offset;
14541
14542         if (parent_tree) {
14543                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
14544                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo1);
14545         }
14546         
14547         offset = spoolss_dissect_element_SetPrinterInfo1_flags(tvb, offset, pinfo, tree, drep);
14548
14549         offset = spoolss_dissect_element_SetPrinterInfo1_description(tvb, offset, pinfo, tree, drep);
14550
14551         offset = spoolss_dissect_element_SetPrinterInfo1_name(tvb, offset, pinfo, tree, drep);
14552
14553         offset = spoolss_dissect_element_SetPrinterInfo1_comment(tvb, offset, pinfo, tree, drep);
14554
14555
14556         proto_item_set_len(item, offset-old_offset);
14557
14558
14559         if (di->call_data->flags & DCERPC_IS_NDR64) {
14560                 ALIGN_TO_5_BYTES;
14561         }
14562
14563         return offset;
14564 }
14565
14566
14567 /* IDL: struct { */
14568 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *servername; */
14569 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printername; */
14570 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *sharename; */
14571 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *portname; */
14572 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *drivername; */
14573 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *comment; */
14574 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *location; */
14575 /* IDL:         [unique(1)] uint32 *devmode_ptr; */
14576 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *sepfile; */
14577 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printprocessor; */
14578 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *datatype; */
14579 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *parameters; */
14580 /* IDL:         [unique(1)] uint32 *secdesc_ptr; */
14581 /* IDL:         spoolss_PrinterAttributes attributes; */
14582 /* IDL:         [range(0,99)] uint32 priority; */
14583 /* IDL:         uint32 defaultpriority; */
14584 /* IDL:         uint32 starttime; */
14585 /* IDL:         uint32 untiltime; */
14586 /* IDL:         spoolss_PrinterStatus status; */
14587 /* IDL:         uint32 cjobs; */
14588 /* IDL:         uint32 averageppm; */
14589 /* IDL: } */
14590
14591 static int
14592 spoolss_dissect_element_SetPrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14593 {
14594         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_servername);
14595
14596         return offset;
14597 }
14598
14599 static int
14600 spoolss_dissect_element_SetPrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14601 {
14602         char *data;
14603
14604         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_servername, FALSE, &data);
14605         proto_item_append_text(tree, ": %s", data);
14606
14607         return offset;
14608 }
14609
14610 static int
14611 spoolss_dissect_element_SetPrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14612 {
14613         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_printername);
14614
14615         return offset;
14616 }
14617
14618 static int
14619 spoolss_dissect_element_SetPrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14620 {
14621         char *data;
14622
14623         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_printername, FALSE, &data);
14624         proto_item_append_text(tree, ": %s", data);
14625
14626         return offset;
14627 }
14628
14629 static int
14630 spoolss_dissect_element_SetPrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14631 {
14632         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_sharename);
14633
14634         return offset;
14635 }
14636
14637 static int
14638 spoolss_dissect_element_SetPrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14639 {
14640         char *data;
14641
14642         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_sharename, FALSE, &data);
14643         proto_item_append_text(tree, ": %s", data);
14644
14645         return offset;
14646 }
14647
14648 static int
14649 spoolss_dissect_element_SetPrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14650 {
14651         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_portname_, NDR_POINTER_UNIQUE, "Pointer to Portname (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_portname);
14652
14653         return offset;
14654 }
14655
14656 static int
14657 spoolss_dissect_element_SetPrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14658 {
14659         char *data;
14660
14661         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_portname, FALSE, &data);
14662         proto_item_append_text(tree, ": %s", data);
14663
14664         return offset;
14665 }
14666
14667 static int
14668 spoolss_dissect_element_SetPrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14669 {
14670         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_drivername_, NDR_POINTER_UNIQUE, "Pointer to Drivername (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_drivername);
14671
14672         return offset;
14673 }
14674
14675 static int
14676 spoolss_dissect_element_SetPrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14677 {
14678         char *data;
14679
14680         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_drivername, FALSE, &data);
14681         proto_item_append_text(tree, ": %s", data);
14682
14683         return offset;
14684 }
14685
14686 static int
14687 spoolss_dissect_element_SetPrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14688 {
14689         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_comment);
14690
14691         return offset;
14692 }
14693
14694 static int
14695 spoolss_dissect_element_SetPrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14696 {
14697         char *data;
14698
14699         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_comment, FALSE, &data);
14700         proto_item_append_text(tree, ": %s", data);
14701
14702         return offset;
14703 }
14704
14705 static int
14706 spoolss_dissect_element_SetPrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14707 {
14708         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_location_, NDR_POINTER_UNIQUE, "Pointer to Location (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_location);
14709
14710         return offset;
14711 }
14712
14713 static int
14714 spoolss_dissect_element_SetPrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14715 {
14716         char *data;
14717
14718         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_location, FALSE, &data);
14719         proto_item_append_text(tree, ": %s", data);
14720
14721         return offset;
14722 }
14723
14724 static int
14725 spoolss_dissect_element_SetPrinterInfo2_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14726 {
14727         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to Devmode Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr);
14728
14729         return offset;
14730 }
14731
14732 static int
14733 spoolss_dissect_element_SetPrinterInfo2_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14734 {
14735         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr, 0);
14736
14737         return offset;
14738 }
14739
14740 static int
14741 spoolss_dissect_element_SetPrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14742 {
14743         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_sepfile_, NDR_POINTER_UNIQUE, "Pointer to Sepfile (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_sepfile);
14744
14745         return offset;
14746 }
14747
14748 static int
14749 spoolss_dissect_element_SetPrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14750 {
14751         char *data;
14752
14753         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_sepfile, FALSE, &data);
14754         proto_item_append_text(tree, ": %s", data);
14755
14756         return offset;
14757 }
14758
14759 static int
14760 spoolss_dissect_element_SetPrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14761 {
14762         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_printprocessor_, NDR_POINTER_UNIQUE, "Pointer to Printprocessor (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_printprocessor);
14763
14764         return offset;
14765 }
14766
14767 static int
14768 spoolss_dissect_element_SetPrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14769 {
14770         char *data;
14771
14772         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_printprocessor, FALSE, &data);
14773         proto_item_append_text(tree, ": %s", data);
14774
14775         return offset;
14776 }
14777
14778 static int
14779 spoolss_dissect_element_SetPrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14780 {
14781         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_datatype);
14782
14783         return offset;
14784 }
14785
14786 static int
14787 spoolss_dissect_element_SetPrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14788 {
14789         char *data;
14790
14791         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_datatype, FALSE, &data);
14792         proto_item_append_text(tree, ": %s", data);
14793
14794         return offset;
14795 }
14796
14797 static int
14798 spoolss_dissect_element_SetPrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14799 {
14800         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_parameters_, NDR_POINTER_UNIQUE, "Pointer to Parameters (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_parameters);
14801
14802         return offset;
14803 }
14804
14805 static int
14806 spoolss_dissect_element_SetPrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14807 {
14808         char *data;
14809
14810         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_parameters, FALSE, &data);
14811         proto_item_append_text(tree, ": %s", data);
14812
14813         return offset;
14814 }
14815
14816 static int
14817 spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14818 {
14819         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr_, NDR_POINTER_UNIQUE, "Pointer to Secdesc Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr);
14820
14821         return offset;
14822 }
14823
14824 static int
14825 spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14826 {
14827         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr, 0);
14828
14829         return offset;
14830 }
14831
14832 static int
14833 spoolss_dissect_element_SetPrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14834 {
14835         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_attributes, 0);
14836
14837         return offset;
14838 }
14839
14840 static int
14841 spoolss_dissect_element_SetPrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14842 {
14843         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_priority, 0);
14844
14845         return offset;
14846 }
14847
14848 static int
14849 spoolss_dissect_element_SetPrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14850 {
14851         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_defaultpriority, 0);
14852
14853         return offset;
14854 }
14855
14856 static int
14857 spoolss_dissect_element_SetPrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14858 {
14859         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_starttime, 0);
14860
14861         return offset;
14862 }
14863
14864 static int
14865 spoolss_dissect_element_SetPrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14866 {
14867         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_untiltime, 0);
14868
14869         return offset;
14870 }
14871
14872 static int
14873 spoolss_dissect_element_SetPrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14874 {
14875         offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_status, 0);
14876
14877         return offset;
14878 }
14879
14880 static int
14881 spoolss_dissect_element_SetPrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14882 {
14883         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_cjobs, 0);
14884
14885         return offset;
14886 }
14887
14888 static int
14889 spoolss_dissect_element_SetPrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14890 {
14891         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_averageppm, 0);
14892
14893         return offset;
14894 }
14895
14896 int
14897 spoolss_dissect_struct_SetPrinterInfo2(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_)
14898 {
14899         proto_item *item = NULL;
14900         proto_tree *tree = NULL;
14901         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
14902         int old_offset;
14903
14904         ALIGN_TO_5_BYTES;
14905
14906         old_offset = offset;
14907
14908         if (parent_tree) {
14909                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
14910                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo2);
14911         }
14912         
14913         offset = spoolss_dissect_element_SetPrinterInfo2_servername(tvb, offset, pinfo, tree, drep);
14914
14915         offset = spoolss_dissect_element_SetPrinterInfo2_printername(tvb, offset, pinfo, tree, drep);
14916
14917         offset = spoolss_dissect_element_SetPrinterInfo2_sharename(tvb, offset, pinfo, tree, drep);
14918
14919         offset = spoolss_dissect_element_SetPrinterInfo2_portname(tvb, offset, pinfo, tree, drep);
14920
14921         offset = spoolss_dissect_element_SetPrinterInfo2_drivername(tvb, offset, pinfo, tree, drep);
14922
14923         offset = spoolss_dissect_element_SetPrinterInfo2_comment(tvb, offset, pinfo, tree, drep);
14924
14925         offset = spoolss_dissect_element_SetPrinterInfo2_location(tvb, offset, pinfo, tree, drep);
14926
14927         offset = spoolss_dissect_element_SetPrinterInfo2_devmode_ptr(tvb, offset, pinfo, tree, drep);
14928
14929         offset = spoolss_dissect_element_SetPrinterInfo2_sepfile(tvb, offset, pinfo, tree, drep);
14930
14931         offset = spoolss_dissect_element_SetPrinterInfo2_printprocessor(tvb, offset, pinfo, tree, drep);
14932
14933         offset = spoolss_dissect_element_SetPrinterInfo2_datatype(tvb, offset, pinfo, tree, drep);
14934
14935         offset = spoolss_dissect_element_SetPrinterInfo2_parameters(tvb, offset, pinfo, tree, drep);
14936
14937         offset = spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr(tvb, offset, pinfo, tree, drep);
14938
14939         offset = spoolss_dissect_element_SetPrinterInfo2_attributes(tvb, offset, pinfo, tree, drep);
14940
14941         offset = spoolss_dissect_element_SetPrinterInfo2_priority(tvb, offset, pinfo, tree, drep);
14942
14943         offset = spoolss_dissect_element_SetPrinterInfo2_defaultpriority(tvb, offset, pinfo, tree, drep);
14944
14945         offset = spoolss_dissect_element_SetPrinterInfo2_starttime(tvb, offset, pinfo, tree, drep);
14946
14947         offset = spoolss_dissect_element_SetPrinterInfo2_untiltime(tvb, offset, pinfo, tree, drep);
14948
14949         offset = spoolss_dissect_element_SetPrinterInfo2_status(tvb, offset, pinfo, tree, drep);
14950
14951         offset = spoolss_dissect_element_SetPrinterInfo2_cjobs(tvb, offset, pinfo, tree, drep);
14952
14953         offset = spoolss_dissect_element_SetPrinterInfo2_averageppm(tvb, offset, pinfo, tree, drep);
14954
14955
14956         proto_item_set_len(item, offset-old_offset);
14957
14958
14959         if (di->call_data->flags & DCERPC_IS_NDR64) {
14960                 ALIGN_TO_5_BYTES;
14961         }
14962
14963         return offset;
14964 }
14965
14966
14967 /* IDL: struct { */
14968 /* IDL:         [unique(1)] uint32 *sec_desc_ptr; */
14969 /* IDL: } */
14970
14971 static int
14972 spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14973 {
14974         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr_, NDR_POINTER_UNIQUE, "Pointer to Sec Desc Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr);
14975
14976         return offset;
14977 }
14978
14979 static int
14980 spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
14981 {
14982         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr, 0);
14983
14984         return offset;
14985 }
14986
14987 int
14988 spoolss_dissect_struct_SetPrinterInfo3(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_)
14989 {
14990         proto_item *item = NULL;
14991         proto_tree *tree = NULL;
14992         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
14993         int old_offset;
14994
14995         ALIGN_TO_5_BYTES;
14996
14997         old_offset = offset;
14998
14999         if (parent_tree) {
15000                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15001                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo3);
15002         }
15003         
15004         offset = spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr(tvb, offset, pinfo, tree, drep);
15005
15006
15007         proto_item_set_len(item, offset-old_offset);
15008
15009
15010         if (di->call_data->flags & DCERPC_IS_NDR64) {
15011                 ALIGN_TO_5_BYTES;
15012         }
15013
15014         return offset;
15015 }
15016
15017
15018 /* IDL: struct { */
15019 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printername; */
15020 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *servername; */
15021 /* IDL:         spoolss_PrinterAttributes attributes; */
15022 /* IDL: } */
15023
15024 static int
15025 spoolss_dissect_element_SetPrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15026 {
15027         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo4_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo4_printername);
15028
15029         return offset;
15030 }
15031
15032 static int
15033 spoolss_dissect_element_SetPrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15034 {
15035         char *data;
15036
15037         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo4_printername, FALSE, &data);
15038         proto_item_append_text(tree, ": %s", data);
15039
15040         return offset;
15041 }
15042
15043 static int
15044 spoolss_dissect_element_SetPrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15045 {
15046         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo4_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPrinterInfo4_servername);
15047
15048         return offset;
15049 }
15050
15051 static int
15052 spoolss_dissect_element_SetPrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15053 {
15054         char *data;
15055
15056         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo4_servername, FALSE, &data);
15057         proto_item_append_text(tree, ": %s", data);
15058
15059         return offset;
15060 }
15061
15062 static int
15063 spoolss_dissect_element_SetPrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15064 {
15065         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo4_attributes, 0);
15066
15067         return offset;
15068 }
15069
15070 int
15071 spoolss_dissect_struct_SetPrinterInfo4(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_)
15072 {
15073         proto_item *item = NULL;
15074         proto_tree *tree = NULL;
15075         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15076         int old_offset;
15077
15078         ALIGN_TO_5_BYTES;
15079
15080         old_offset = offset;
15081
15082         if (parent_tree) {
15083                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15084                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo4);
15085         }
15086         
15087         offset = spoolss_dissect_element_SetPrinterInfo4_printername(tvb, offset, pinfo, tree, drep);
15088
15089         offset = spoolss_dissect_element_SetPrinterInfo4_servername(tvb, offset, pinfo, tree, drep);
15090
15091         offset = spoolss_dissect_element_SetPrinterInfo4_attributes(tvb, offset, pinfo, tree, drep);
15092
15093
15094         proto_item_set_len(item, offset-old_offset);
15095
15096
15097         if (di->call_data->flags & DCERPC_IS_NDR64) {
15098                 ALIGN_TO_5_BYTES;
15099         }
15100
15101         return offset;
15102 }
15103
15104
15105 /* IDL: struct { */
15106 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *printername; */
15107 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *portname; */
15108 /* IDL:         spoolss_PrinterAttributes attributes; */
15109 /* IDL:         uint32 device_not_selected_timeout; */
15110 /* IDL:         uint32 transmission_retry_timeout; */
15111 /* IDL: } */
15112
15113 static int
15114 spoolss_dissect_element_SetPrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15115 {
15116         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo5_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo5_printername);
15117
15118         return offset;
15119 }
15120
15121 static int
15122 spoolss_dissect_element_SetPrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15123 {
15124         char *data;
15125
15126         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo5_printername, FALSE, &data);
15127         proto_item_append_text(tree, ": %s", data);
15128
15129         return offset;
15130 }
15131
15132 static int
15133 spoolss_dissect_element_SetPrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15134 {
15135         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo5_portname_, NDR_POINTER_UNIQUE, "Pointer to Portname (uint16)",hf_spoolss_spoolss_SetPrinterInfo5_portname);
15136
15137         return offset;
15138 }
15139
15140 static int
15141 spoolss_dissect_element_SetPrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15142 {
15143         char *data;
15144
15145         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo5_portname, FALSE, &data);
15146         proto_item_append_text(tree, ": %s", data);
15147
15148         return offset;
15149 }
15150
15151 static int
15152 spoolss_dissect_element_SetPrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15153 {
15154         offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo5_attributes, 0);
15155
15156         return offset;
15157 }
15158
15159 static int
15160 spoolss_dissect_element_SetPrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15161 {
15162         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo5_device_not_selected_timeout, 0);
15163
15164         return offset;
15165 }
15166
15167 static int
15168 spoolss_dissect_element_SetPrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15169 {
15170         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo5_transmission_retry_timeout, 0);
15171
15172         return offset;
15173 }
15174
15175 int
15176 spoolss_dissect_struct_SetPrinterInfo5(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_)
15177 {
15178         proto_item *item = NULL;
15179         proto_tree *tree = NULL;
15180         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15181         int old_offset;
15182
15183         ALIGN_TO_5_BYTES;
15184
15185         old_offset = offset;
15186
15187         if (parent_tree) {
15188                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15189                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo5);
15190         }
15191         
15192         offset = spoolss_dissect_element_SetPrinterInfo5_printername(tvb, offset, pinfo, tree, drep);
15193
15194         offset = spoolss_dissect_element_SetPrinterInfo5_portname(tvb, offset, pinfo, tree, drep);
15195
15196         offset = spoolss_dissect_element_SetPrinterInfo5_attributes(tvb, offset, pinfo, tree, drep);
15197
15198         offset = spoolss_dissect_element_SetPrinterInfo5_device_not_selected_timeout(tvb, offset, pinfo, tree, drep);
15199
15200         offset = spoolss_dissect_element_SetPrinterInfo5_transmission_retry_timeout(tvb, offset, pinfo, tree, drep);
15201
15202
15203         proto_item_set_len(item, offset-old_offset);
15204
15205
15206         if (di->call_data->flags & DCERPC_IS_NDR64) {
15207                 ALIGN_TO_5_BYTES;
15208         }
15209
15210         return offset;
15211 }
15212
15213
15214 /* IDL: struct { */
15215 /* IDL:         spoolss_PrinterStatus status; */
15216 /* IDL: } */
15217
15218 static int
15219 spoolss_dissect_element_SetPrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15220 {
15221         offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo6_status, 0);
15222
15223         return offset;
15224 }
15225
15226 int
15227 spoolss_dissect_struct_SetPrinterInfo6(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_)
15228 {
15229         proto_item *item = NULL;
15230         proto_tree *tree = NULL;
15231         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15232         int old_offset;
15233
15234         ALIGN_TO_4_BYTES;
15235
15236         old_offset = offset;
15237
15238         if (parent_tree) {
15239                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15240                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo6);
15241         }
15242         
15243         offset = spoolss_dissect_element_SetPrinterInfo6_status(tvb, offset, pinfo, tree, drep);
15244
15245
15246         proto_item_set_len(item, offset-old_offset);
15247
15248
15249         if (di->call_data->flags & DCERPC_IS_NDR64) {
15250                 ALIGN_TO_4_BYTES;
15251         }
15252
15253         return offset;
15254 }
15255
15256
15257 /* IDL: struct { */
15258 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *guid; */
15259 /* IDL:         spoolss_DsPrintAction action; */
15260 /* IDL: } */
15261
15262 static int
15263 spoolss_dissect_element_SetPrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15264 {
15265         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo7_guid_, NDR_POINTER_UNIQUE, "Pointer to Guid (uint16)",hf_spoolss_spoolss_SetPrinterInfo7_guid);
15266
15267         return offset;
15268 }
15269
15270 static int
15271 spoolss_dissect_element_SetPrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15272 {
15273         char *data;
15274
15275         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo7_guid, FALSE, &data);
15276         proto_item_append_text(tree, ": %s", data);
15277
15278         return offset;
15279 }
15280
15281 static int
15282 spoolss_dissect_element_SetPrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15283 {
15284         offset = spoolss_dissect_bitmap_DsPrintAction(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo7_action, 0);
15285
15286         return offset;
15287 }
15288
15289 int
15290 spoolss_dissect_struct_SetPrinterInfo7(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_)
15291 {
15292         proto_item *item = NULL;
15293         proto_tree *tree = NULL;
15294         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15295         int old_offset;
15296
15297         ALIGN_TO_5_BYTES;
15298
15299         old_offset = offset;
15300
15301         if (parent_tree) {
15302                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15303                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo7);
15304         }
15305         
15306         offset = spoolss_dissect_element_SetPrinterInfo7_guid(tvb, offset, pinfo, tree, drep);
15307
15308         offset = spoolss_dissect_element_SetPrinterInfo7_action(tvb, offset, pinfo, tree, drep);
15309
15310
15311         proto_item_set_len(item, offset-old_offset);
15312
15313
15314         if (di->call_data->flags & DCERPC_IS_NDR64) {
15315                 ALIGN_TO_5_BYTES;
15316         }
15317
15318         return offset;
15319 }
15320
15321
15322 /* IDL: struct { */
15323 /* IDL:         [unique(1)] uint32 *devmode_ptr; */
15324 /* IDL: } */
15325
15326 static int
15327 spoolss_dissect_element_SetPrinterInfo8_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15328 {
15329         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo8_devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to Devmode Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr);
15330
15331         return offset;
15332 }
15333
15334 static int
15335 spoolss_dissect_element_SetPrinterInfo8_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15336 {
15337         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr, 0);
15338
15339         return offset;
15340 }
15341
15342 int
15343 spoolss_dissect_struct_SetPrinterInfo8(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_)
15344 {
15345         proto_item *item = NULL;
15346         proto_tree *tree = NULL;
15347         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15348         int old_offset;
15349
15350         ALIGN_TO_5_BYTES;
15351
15352         old_offset = offset;
15353
15354         if (parent_tree) {
15355                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15356                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo8);
15357         }
15358         
15359         offset = spoolss_dissect_element_SetPrinterInfo8_devmode_ptr(tvb, offset, pinfo, tree, drep);
15360
15361
15362         proto_item_set_len(item, offset-old_offset);
15363
15364
15365         if (di->call_data->flags & DCERPC_IS_NDR64) {
15366                 ALIGN_TO_5_BYTES;
15367         }
15368
15369         return offset;
15370 }
15371
15372
15373 /* IDL: struct { */
15374 /* IDL:         [unique(1)] uint32 *devmode_ptr; */
15375 /* IDL: } */
15376
15377 static int
15378 spoolss_dissect_element_SetPrinterInfo9_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15379 {
15380         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo9_devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to Devmode Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr);
15381
15382         return offset;
15383 }
15384
15385 static int
15386 spoolss_dissect_element_SetPrinterInfo9_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15387 {
15388         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr, 0);
15389
15390         return offset;
15391 }
15392
15393 int
15394 spoolss_dissect_struct_SetPrinterInfo9(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_)
15395 {
15396         proto_item *item = NULL;
15397         proto_tree *tree = NULL;
15398         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15399         int old_offset;
15400
15401         ALIGN_TO_5_BYTES;
15402
15403         old_offset = offset;
15404
15405         if (parent_tree) {
15406                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15407                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo9);
15408         }
15409         
15410         offset = spoolss_dissect_element_SetPrinterInfo9_devmode_ptr(tvb, offset, pinfo, tree, drep);
15411
15412
15413         proto_item_set_len(item, offset-old_offset);
15414
15415
15416         if (di->call_data->flags & DCERPC_IS_NDR64) {
15417                 ALIGN_TO_5_BYTES;
15418         }
15419
15420         return offset;
15421 }
15422
15423
15424 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
15425 /* IDL: [case(0)] [unique(1)] [case(0)] spoolss_SetPrinterInfo0 *info0; */
15426 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_SetPrinterInfo1 *info1; */
15427 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_SetPrinterInfo2 *info2; */
15428 /* IDL: [case(3)] [unique(1)] [case(3)] spoolss_SetPrinterInfo3 *info3; */
15429 /* IDL: [case(4)] [unique(1)] [case(4)] spoolss_SetPrinterInfo4 *info4; */
15430 /* IDL: [case(5)] [unique(1)] [case(5)] spoolss_SetPrinterInfo5 *info5; */
15431 /* IDL: [case(6)] [unique(1)] [case(6)] spoolss_SetPrinterInfo6 *info6; */
15432 /* IDL: [case(7)] [unique(1)] [case(7)] spoolss_SetPrinterInfo7 *info7; */
15433 /* IDL: [case(8)] [unique(1)] [case(8)] spoolss_SetPrinterInfo8 *info8; */
15434 /* IDL: [case(9)] [unique(1)] [case(9)] spoolss_SetPrinterInfo9 *info9; */
15435 /* IDL: [default] ; */
15436 /* IDL: } */
15437
15438 static int
15439 spoolss_dissect_element_SetPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15440 {
15441         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (spoolss_SetPrinterInfo0)",hf_spoolss_spoolss_SetPrinterInfo_info0);
15442
15443         return offset;
15444 }
15445
15446 static int
15447 spoolss_dissect_element_SetPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15448 {
15449         offset = spoolss_dissect_struct_SetPrinterInfo0(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info0,0);
15450
15451         return offset;
15452 }
15453
15454 static int
15455 spoolss_dissect_element_SetPrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15456 {
15457         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_SetPrinterInfo1)",hf_spoolss_spoolss_SetPrinterInfo_info1);
15458
15459         return offset;
15460 }
15461
15462 static int
15463 spoolss_dissect_element_SetPrinterInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15464 {
15465         offset = spoolss_dissect_struct_SetPrinterInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info1,0);
15466
15467         return offset;
15468 }
15469
15470 static int
15471 spoolss_dissect_element_SetPrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15472 {
15473         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_SetPrinterInfo2)",hf_spoolss_spoolss_SetPrinterInfo_info2);
15474
15475         return offset;
15476 }
15477
15478 static int
15479 spoolss_dissect_element_SetPrinterInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15480 {
15481         offset = spoolss_dissect_struct_SetPrinterInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info2,0);
15482
15483         return offset;
15484 }
15485
15486 static int
15487 spoolss_dissect_element_SetPrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15488 {
15489         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_SetPrinterInfo3)",hf_spoolss_spoolss_SetPrinterInfo_info3);
15490
15491         return offset;
15492 }
15493
15494 static int
15495 spoolss_dissect_element_SetPrinterInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15496 {
15497         offset = spoolss_dissect_struct_SetPrinterInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info3,0);
15498
15499         return offset;
15500 }
15501
15502 static int
15503 spoolss_dissect_element_SetPrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15504 {
15505         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (spoolss_SetPrinterInfo4)",hf_spoolss_spoolss_SetPrinterInfo_info4);
15506
15507         return offset;
15508 }
15509
15510 static int
15511 spoolss_dissect_element_SetPrinterInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15512 {
15513         offset = spoolss_dissect_struct_SetPrinterInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info4,0);
15514
15515         return offset;
15516 }
15517
15518 static int
15519 spoolss_dissect_element_SetPrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15520 {
15521         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info5_, NDR_POINTER_UNIQUE, "Pointer to Info5 (spoolss_SetPrinterInfo5)",hf_spoolss_spoolss_SetPrinterInfo_info5);
15522
15523         return offset;
15524 }
15525
15526 static int
15527 spoolss_dissect_element_SetPrinterInfo_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15528 {
15529         offset = spoolss_dissect_struct_SetPrinterInfo5(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info5,0);
15530
15531         return offset;
15532 }
15533
15534 static int
15535 spoolss_dissect_element_SetPrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15536 {
15537         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (spoolss_SetPrinterInfo6)",hf_spoolss_spoolss_SetPrinterInfo_info6);
15538
15539         return offset;
15540 }
15541
15542 static int
15543 spoolss_dissect_element_SetPrinterInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15544 {
15545         offset = spoolss_dissect_struct_SetPrinterInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info6,0);
15546
15547         return offset;
15548 }
15549
15550 static int
15551 spoolss_dissect_element_SetPrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15552 {
15553         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info7_, NDR_POINTER_UNIQUE, "Pointer to Info7 (spoolss_SetPrinterInfo7)",hf_spoolss_spoolss_SetPrinterInfo_info7);
15554
15555         return offset;
15556 }
15557
15558 static int
15559 spoolss_dissect_element_SetPrinterInfo_info7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15560 {
15561         offset = spoolss_dissect_struct_SetPrinterInfo7(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info7,0);
15562
15563         return offset;
15564 }
15565
15566 static int
15567 spoolss_dissect_element_SetPrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15568 {
15569         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info8_, NDR_POINTER_UNIQUE, "Pointer to Info8 (spoolss_SetPrinterInfo8)",hf_spoolss_spoolss_SetPrinterInfo_info8);
15570
15571         return offset;
15572 }
15573
15574 static int
15575 spoolss_dissect_element_SetPrinterInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15576 {
15577         offset = spoolss_dissect_struct_SetPrinterInfo8(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info8,0);
15578
15579         return offset;
15580 }
15581
15582 static int
15583 spoolss_dissect_element_SetPrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15584 {
15585         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info9_, NDR_POINTER_UNIQUE, "Pointer to Info9 (spoolss_SetPrinterInfo9)",hf_spoolss_spoolss_SetPrinterInfo_info9);
15586
15587         return offset;
15588 }
15589
15590 static int
15591 spoolss_dissect_element_SetPrinterInfo_info9_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15592 {
15593         offset = spoolss_dissect_struct_SetPrinterInfo9(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info9,0);
15594
15595         return offset;
15596 }
15597
15598 static int
15599 spoolss_dissect_SetPrinterInfo(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_)
15600 {
15601         proto_item *item = NULL;
15602         proto_tree *tree = NULL;
15603         int old_offset;
15604         guint32 level;
15605
15606         old_offset = offset;
15607         if (parent_tree) {
15608                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_SetPrinterInfo");
15609                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo);
15610         }
15611
15612         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
15613         ALIGN_TO_5_BYTES;
15614
15615         switch(level) {
15616                 case 0:
15617                         offset = spoolss_dissect_element_SetPrinterInfo_info0(tvb, offset, pinfo, tree, drep);
15618                 break;
15619
15620                 case 1:
15621                         offset = spoolss_dissect_element_SetPrinterInfo_info1(tvb, offset, pinfo, tree, drep);
15622                 break;
15623
15624                 case 2:
15625                         offset = spoolss_dissect_element_SetPrinterInfo_info2(tvb, offset, pinfo, tree, drep);
15626                 break;
15627
15628                 case 3:
15629                         offset = spoolss_dissect_element_SetPrinterInfo_info3(tvb, offset, pinfo, tree, drep);
15630                 break;
15631
15632                 case 4:
15633                         offset = spoolss_dissect_element_SetPrinterInfo_info4(tvb, offset, pinfo, tree, drep);
15634                 break;
15635
15636                 case 5:
15637                         offset = spoolss_dissect_element_SetPrinterInfo_info5(tvb, offset, pinfo, tree, drep);
15638                 break;
15639
15640                 case 6:
15641                         offset = spoolss_dissect_element_SetPrinterInfo_info6(tvb, offset, pinfo, tree, drep);
15642                 break;
15643
15644                 case 7:
15645                         offset = spoolss_dissect_element_SetPrinterInfo_info7(tvb, offset, pinfo, tree, drep);
15646                 break;
15647
15648                 case 8:
15649                         offset = spoolss_dissect_element_SetPrinterInfo_info8(tvb, offset, pinfo, tree, drep);
15650                 break;
15651
15652                 case 9:
15653                         offset = spoolss_dissect_element_SetPrinterInfo_info9(tvb, offset, pinfo, tree, drep);
15654                 break;
15655
15656                 default:
15657                 break;
15658         }
15659         proto_item_set_len(item, offset-old_offset);
15660
15661
15662         return offset;
15663 }
15664
15665 /* IDL: struct { */
15666 /* IDL:         uint32 level; */
15667 /* IDL:         [switch_is(level)] spoolss_SetPrinterInfo info; */
15668 /* IDL: } */
15669
15670 static int
15671 spoolss_dissect_element_SetPrinterInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
15672 {
15673         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfoCtr_level, level);
15674
15675         return offset;
15676 }
15677
15678 static int
15679 spoolss_dissect_element_SetPrinterInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
15680 {
15681         offset = spoolss_dissect_SetPrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfoCtr_info, *level);
15682
15683         return offset;
15684 }
15685
15686 int
15687 spoolss_dissect_struct_SetPrinterInfoCtr(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_)
15688 {
15689         g level;
15690         proto_item *item = NULL;
15691         proto_tree *tree = NULL;
15692         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15693         int old_offset;
15694
15695         ALIGN_TO_5_BYTES;
15696
15697         old_offset = offset;
15698
15699         if (parent_tree) {
15700                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15701                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfoCtr);
15702         }
15703         
15704         offset = spoolss_dissect_element_SetPrinterInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
15705
15706         offset = spoolss_dissect_element_SetPrinterInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
15707
15708
15709         proto_item_set_len(item, offset-old_offset);
15710
15711
15712         if (di->call_data->flags & DCERPC_IS_NDR64) {
15713                 ALIGN_TO_5_BYTES;
15714         }
15715
15716         return offset;
15717 }
15718
15719
15720 /* IDL: struct { */
15721 /* IDL:         [value((ndr_size_spoolss_StringArray(r,ndr->flags)-4)/2)] uint32 _ndr_size; */
15722 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array string; */
15723 /* IDL: } */
15724
15725 static int
15726 spoolss_dissect_element_StringArray__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15727 {
15728         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StringArray__ndr_size, 0);
15729
15730         return offset;
15731 }
15732
15733 static int
15734 spoolss_dissect_element_StringArray_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15735 {
15736         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_StringArray_string,0);
15737
15738         return offset;
15739 }
15740
15741 int
15742 spoolss_dissect_struct_StringArray(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_)
15743 {
15744         proto_item *item = NULL;
15745         proto_tree *tree = NULL;
15746         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15747         int old_offset;
15748
15749         ALIGN_TO_4_BYTES;
15750
15751         old_offset = offset;
15752
15753         if (parent_tree) {
15754                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15755                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_StringArray);
15756         }
15757         
15758         offset = spoolss_dissect_element_StringArray__ndr_size(tvb, offset, pinfo, tree, drep);
15759
15760         offset = spoolss_dissect_element_StringArray_string(tvb, offset, pinfo, tree, drep);
15761
15762
15763         proto_item_set_len(item, offset-old_offset);
15764
15765
15766         if (di->call_data->flags & DCERPC_IS_NDR64) {
15767                 ALIGN_TO_4_BYTES;
15768         }
15769
15770         return offset;
15771 }
15772
15773
15774 /* IDL: struct { */
15775 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
15776 /* IDL: } */
15777
15778 static int
15779 spoolss_dissect_element_AddDriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15780 {
15781         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo1_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo1_driver_name);
15782
15783         return offset;
15784 }
15785
15786 static int
15787 spoolss_dissect_element_AddDriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15788 {
15789         char *data;
15790
15791         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo1_driver_name, FALSE, &data);
15792         proto_item_append_text(tree, ": %s", data);
15793
15794         return offset;
15795 }
15796
15797 int
15798 spoolss_dissect_struct_AddDriverInfo1(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_)
15799 {
15800         proto_item *item = NULL;
15801         proto_tree *tree = NULL;
15802         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15803         int old_offset;
15804
15805         ALIGN_TO_5_BYTES;
15806
15807         old_offset = offset;
15808
15809         if (parent_tree) {
15810                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15811                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo1);
15812         }
15813         
15814         offset = spoolss_dissect_element_AddDriverInfo1_driver_name(tvb, offset, pinfo, tree, drep);
15815
15816
15817         proto_item_set_len(item, offset-old_offset);
15818
15819
15820         if (di->call_data->flags & DCERPC_IS_NDR64) {
15821                 ALIGN_TO_5_BYTES;
15822         }
15823
15824         return offset;
15825 }
15826
15827
15828 /* IDL: enum { */
15829 /* IDL:         SPOOLSS_DRIVER_VERSION_9X=0, */
15830 /* IDL:         SPOOLSS_DRIVER_VERSION_NT35=1, */
15831 /* IDL:         SPOOLSS_DRIVER_VERSION_NT4=2, */
15832 /* IDL:         SPOOLSS_DRIVER_VERSION_200X=3, */
15833 /* IDL:         SPOOLSS_DRIVER_VERSION_2012=4, */
15834 /* IDL: } */
15835
15836 int
15837 spoolss_dissect_enum_DriverOSVersion(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_)
15838 {
15839         guint32 parameter=0;
15840         if(param){
15841                 parameter=(guint32)*param;
15842         }
15843         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
15844         if(param){
15845                 *param=(guint32)parameter;
15846         }
15847         return offset;
15848 }
15849
15850
15851 /* IDL: struct { */
15852 /* IDL:         spoolss_DriverOSVersion version; */
15853 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
15854 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *architecture; */
15855 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_path; */
15856 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_file; */
15857 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *config_file; */
15858 /* IDL: } */
15859
15860 static int
15861 spoolss_dissect_element_AddDriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15862 {
15863         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo2_version, 0);
15864
15865         return offset;
15866 }
15867
15868 static int
15869 spoolss_dissect_element_AddDriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15870 {
15871         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo2_driver_name);
15872
15873         return offset;
15874 }
15875
15876 static int
15877 spoolss_dissect_element_AddDriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15878 {
15879         char *data;
15880
15881         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_driver_name, FALSE, &data);
15882         proto_item_append_text(tree, ": %s", data);
15883
15884         return offset;
15885 }
15886
15887 static int
15888 spoolss_dissect_element_AddDriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15889 {
15890         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo2_architecture);
15891
15892         return offset;
15893 }
15894
15895 static int
15896 spoolss_dissect_element_AddDriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15897 {
15898         char *data;
15899
15900         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_architecture, FALSE, &data);
15901         proto_item_append_text(tree, ": %s", data);
15902
15903         return offset;
15904 }
15905
15906 static int
15907 spoolss_dissect_element_AddDriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15908 {
15909         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo2_driver_path);
15910
15911         return offset;
15912 }
15913
15914 static int
15915 spoolss_dissect_element_AddDriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15916 {
15917         char *data;
15918
15919         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_driver_path, FALSE, &data);
15920         proto_item_append_text(tree, ": %s", data);
15921
15922         return offset;
15923 }
15924
15925 static int
15926 spoolss_dissect_element_AddDriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15927 {
15928         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo2_data_file);
15929
15930         return offset;
15931 }
15932
15933 static int
15934 spoolss_dissect_element_AddDriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15935 {
15936         char *data;
15937
15938         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_data_file, FALSE, &data);
15939         proto_item_append_text(tree, ": %s", data);
15940
15941         return offset;
15942 }
15943
15944 static int
15945 spoolss_dissect_element_AddDriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15946 {
15947         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo2_config_file);
15948
15949         return offset;
15950 }
15951
15952 static int
15953 spoolss_dissect_element_AddDriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
15954 {
15955         char *data;
15956
15957         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_config_file, FALSE, &data);
15958         proto_item_append_text(tree, ": %s", data);
15959
15960         return offset;
15961 }
15962
15963 int
15964 spoolss_dissect_struct_AddDriverInfo2(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_)
15965 {
15966         proto_item *item = NULL;
15967         proto_tree *tree = NULL;
15968         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
15969         int old_offset;
15970
15971         ALIGN_TO_5_BYTES;
15972
15973         old_offset = offset;
15974
15975         if (parent_tree) {
15976                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
15977                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo2);
15978         }
15979         
15980         offset = spoolss_dissect_element_AddDriverInfo2_version(tvb, offset, pinfo, tree, drep);
15981
15982         offset = spoolss_dissect_element_AddDriverInfo2_driver_name(tvb, offset, pinfo, tree, drep);
15983
15984         offset = spoolss_dissect_element_AddDriverInfo2_architecture(tvb, offset, pinfo, tree, drep);
15985
15986         offset = spoolss_dissect_element_AddDriverInfo2_driver_path(tvb, offset, pinfo, tree, drep);
15987
15988         offset = spoolss_dissect_element_AddDriverInfo2_data_file(tvb, offset, pinfo, tree, drep);
15989
15990         offset = spoolss_dissect_element_AddDriverInfo2_config_file(tvb, offset, pinfo, tree, drep);
15991
15992
15993         proto_item_set_len(item, offset-old_offset);
15994
15995
15996         if (di->call_data->flags & DCERPC_IS_NDR64) {
15997                 ALIGN_TO_5_BYTES;
15998         }
15999
16000         return offset;
16001 }
16002
16003
16004 /* IDL: struct { */
16005 /* IDL:         spoolss_DriverOSVersion version; */
16006 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
16007 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *architecture; */
16008 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_path; */
16009 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_file; */
16010 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *config_file; */
16011 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *help_file; */
16012 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
16013 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
16014 /* IDL:         [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
16015 /* IDL:         [unique(1)] spoolss_StringArray *dependent_files; */
16016 /* IDL: } */
16017
16018 static int
16019 spoolss_dissect_element_AddDriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16020 {
16021         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo3_version, 0);
16022
16023         return offset;
16024 }
16025
16026 static int
16027 spoolss_dissect_element_AddDriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16028 {
16029         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo3_driver_name);
16030
16031         return offset;
16032 }
16033
16034 static int
16035 spoolss_dissect_element_AddDriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16036 {
16037         char *data;
16038
16039         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_driver_name, FALSE, &data);
16040         proto_item_append_text(tree, ": %s", data);
16041
16042         return offset;
16043 }
16044
16045 static int
16046 spoolss_dissect_element_AddDriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16047 {
16048         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo3_architecture);
16049
16050         return offset;
16051 }
16052
16053 static int
16054 spoolss_dissect_element_AddDriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16055 {
16056         char *data;
16057
16058         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_architecture, FALSE, &data);
16059         proto_item_append_text(tree, ": %s", data);
16060
16061         return offset;
16062 }
16063
16064 static int
16065 spoolss_dissect_element_AddDriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16066 {
16067         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo3_driver_path);
16068
16069         return offset;
16070 }
16071
16072 static int
16073 spoolss_dissect_element_AddDriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16074 {
16075         char *data;
16076
16077         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_driver_path, FALSE, &data);
16078         proto_item_append_text(tree, ": %s", data);
16079
16080         return offset;
16081 }
16082
16083 static int
16084 spoolss_dissect_element_AddDriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16085 {
16086         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo3_data_file);
16087
16088         return offset;
16089 }
16090
16091 static int
16092 spoolss_dissect_element_AddDriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16093 {
16094         char *data;
16095
16096         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_data_file, FALSE, &data);
16097         proto_item_append_text(tree, ": %s", data);
16098
16099         return offset;
16100 }
16101
16102 static int
16103 spoolss_dissect_element_AddDriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16104 {
16105         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo3_config_file);
16106
16107         return offset;
16108 }
16109
16110 static int
16111 spoolss_dissect_element_AddDriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16112 {
16113         char *data;
16114
16115         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_config_file, FALSE, &data);
16116         proto_item_append_text(tree, ": %s", data);
16117
16118         return offset;
16119 }
16120
16121 static int
16122 spoolss_dissect_element_AddDriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16123 {
16124         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo3_help_file);
16125
16126         return offset;
16127 }
16128
16129 static int
16130 spoolss_dissect_element_AddDriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16131 {
16132         char *data;
16133
16134         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_help_file, FALSE, &data);
16135         proto_item_append_text(tree, ": %s", data);
16136
16137         return offset;
16138 }
16139
16140 static int
16141 spoolss_dissect_element_AddDriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16142 {
16143         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo3_monitor_name);
16144
16145         return offset;
16146 }
16147
16148 static int
16149 spoolss_dissect_element_AddDriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16150 {
16151         char *data;
16152
16153         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_monitor_name, FALSE, &data);
16154         proto_item_append_text(tree, ": %s", data);
16155
16156         return offset;
16157 }
16158
16159 static int
16160 spoolss_dissect_element_AddDriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16161 {
16162         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo3_default_datatype);
16163
16164         return offset;
16165 }
16166
16167 static int
16168 spoolss_dissect_element_AddDriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16169 {
16170         char *data;
16171
16172         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_default_datatype, FALSE, &data);
16173         proto_item_append_text(tree, ": %s", data);
16174
16175         return offset;
16176 }
16177
16178 static int
16179 spoolss_dissect_element_AddDriverInfo3__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16180 {
16181         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo3__ndr_size_dependent_files, 0);
16182
16183         return offset;
16184 }
16185
16186 static int
16187 spoolss_dissect_element_AddDriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16188 {
16189         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo3_dependent_files);
16190
16191         return offset;
16192 }
16193
16194 static int
16195 spoolss_dissect_element_AddDriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16196 {
16197         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo3_dependent_files,0);
16198
16199         return offset;
16200 }
16201
16202 int
16203 spoolss_dissect_struct_AddDriverInfo3(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_)
16204 {
16205         proto_item *item = NULL;
16206         proto_tree *tree = NULL;
16207         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
16208         int old_offset;
16209
16210         ALIGN_TO_5_BYTES;
16211
16212         old_offset = offset;
16213
16214         if (parent_tree) {
16215                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
16216                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo3);
16217         }
16218         
16219         offset = spoolss_dissect_element_AddDriverInfo3_version(tvb, offset, pinfo, tree, drep);
16220
16221         offset = spoolss_dissect_element_AddDriverInfo3_driver_name(tvb, offset, pinfo, tree, drep);
16222
16223         offset = spoolss_dissect_element_AddDriverInfo3_architecture(tvb, offset, pinfo, tree, drep);
16224
16225         offset = spoolss_dissect_element_AddDriverInfo3_driver_path(tvb, offset, pinfo, tree, drep);
16226
16227         offset = spoolss_dissect_element_AddDriverInfo3_data_file(tvb, offset, pinfo, tree, drep);
16228
16229         offset = spoolss_dissect_element_AddDriverInfo3_config_file(tvb, offset, pinfo, tree, drep);
16230
16231         offset = spoolss_dissect_element_AddDriverInfo3_help_file(tvb, offset, pinfo, tree, drep);
16232
16233         offset = spoolss_dissect_element_AddDriverInfo3_monitor_name(tvb, offset, pinfo, tree, drep);
16234
16235         offset = spoolss_dissect_element_AddDriverInfo3_default_datatype(tvb, offset, pinfo, tree, drep);
16236
16237         offset = spoolss_dissect_element_AddDriverInfo3__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
16238
16239         offset = spoolss_dissect_element_AddDriverInfo3_dependent_files(tvb, offset, pinfo, tree, drep);
16240
16241
16242         proto_item_set_len(item, offset-old_offset);
16243
16244
16245         if (di->call_data->flags & DCERPC_IS_NDR64) {
16246                 ALIGN_TO_5_BYTES;
16247         }
16248
16249         return offset;
16250 }
16251
16252
16253 /* IDL: struct { */
16254 /* IDL:         spoolss_DriverOSVersion version; */
16255 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
16256 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *architecture; */
16257 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_path; */
16258 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_file; */
16259 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *config_file; */
16260 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *help_file; */
16261 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
16262 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
16263 /* IDL:         [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
16264 /* IDL:         [unique(1)] spoolss_StringArray *dependent_files; */
16265 /* IDL:         [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] uint32 _ndr_size_previous_names; */
16266 /* IDL:         [unique(1)] spoolss_StringArray *previous_names; */
16267 /* IDL: } */
16268
16269 static int
16270 spoolss_dissect_element_AddDriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16271 {
16272         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo4_version, 0);
16273
16274         return offset;
16275 }
16276
16277 static int
16278 spoolss_dissect_element_AddDriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16279 {
16280         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo4_driver_name);
16281
16282         return offset;
16283 }
16284
16285 static int
16286 spoolss_dissect_element_AddDriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16287 {
16288         char *data;
16289
16290         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_driver_name, FALSE, &data);
16291         proto_item_append_text(tree, ": %s", data);
16292
16293         return offset;
16294 }
16295
16296 static int
16297 spoolss_dissect_element_AddDriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16298 {
16299         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo4_architecture);
16300
16301         return offset;
16302 }
16303
16304 static int
16305 spoolss_dissect_element_AddDriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16306 {
16307         char *data;
16308
16309         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_architecture, FALSE, &data);
16310         proto_item_append_text(tree, ": %s", data);
16311
16312         return offset;
16313 }
16314
16315 static int
16316 spoolss_dissect_element_AddDriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16317 {
16318         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo4_driver_path);
16319
16320         return offset;
16321 }
16322
16323 static int
16324 spoolss_dissect_element_AddDriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16325 {
16326         char *data;
16327
16328         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_driver_path, FALSE, &data);
16329         proto_item_append_text(tree, ": %s", data);
16330
16331         return offset;
16332 }
16333
16334 static int
16335 spoolss_dissect_element_AddDriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16336 {
16337         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo4_data_file);
16338
16339         return offset;
16340 }
16341
16342 static int
16343 spoolss_dissect_element_AddDriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16344 {
16345         char *data;
16346
16347         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_data_file, FALSE, &data);
16348         proto_item_append_text(tree, ": %s", data);
16349
16350         return offset;
16351 }
16352
16353 static int
16354 spoolss_dissect_element_AddDriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16355 {
16356         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo4_config_file);
16357
16358         return offset;
16359 }
16360
16361 static int
16362 spoolss_dissect_element_AddDriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16363 {
16364         char *data;
16365
16366         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_config_file, FALSE, &data);
16367         proto_item_append_text(tree, ": %s", data);
16368
16369         return offset;
16370 }
16371
16372 static int
16373 spoolss_dissect_element_AddDriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16374 {
16375         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo4_help_file);
16376
16377         return offset;
16378 }
16379
16380 static int
16381 spoolss_dissect_element_AddDriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16382 {
16383         char *data;
16384
16385         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_help_file, FALSE, &data);
16386         proto_item_append_text(tree, ": %s", data);
16387
16388         return offset;
16389 }
16390
16391 static int
16392 spoolss_dissect_element_AddDriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16393 {
16394         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo4_monitor_name);
16395
16396         return offset;
16397 }
16398
16399 static int
16400 spoolss_dissect_element_AddDriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16401 {
16402         char *data;
16403
16404         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_monitor_name, FALSE, &data);
16405         proto_item_append_text(tree, ": %s", data);
16406
16407         return offset;
16408 }
16409
16410 static int
16411 spoolss_dissect_element_AddDriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16412 {
16413         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo4_default_datatype);
16414
16415         return offset;
16416 }
16417
16418 static int
16419 spoolss_dissect_element_AddDriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16420 {
16421         char *data;
16422
16423         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_default_datatype, FALSE, &data);
16424         proto_item_append_text(tree, ": %s", data);
16425
16426         return offset;
16427 }
16428
16429 static int
16430 spoolss_dissect_element_AddDriverInfo4__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16431 {
16432         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo4__ndr_size_dependent_files, 0);
16433
16434         return offset;
16435 }
16436
16437 static int
16438 spoolss_dissect_element_AddDriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16439 {
16440         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo4_dependent_files);
16441
16442         return offset;
16443 }
16444
16445 static int
16446 spoolss_dissect_element_AddDriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16447 {
16448         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo4_dependent_files,0);
16449
16450         return offset;
16451 }
16452
16453 static int
16454 spoolss_dissect_element_AddDriverInfo4__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16455 {
16456         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo4__ndr_size_previous_names, 0);
16457
16458         return offset;
16459 }
16460
16461 static int
16462 spoolss_dissect_element_AddDriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16463 {
16464         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_previous_names_, NDR_POINTER_UNIQUE, "Pointer to Previous Names (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo4_previous_names);
16465
16466         return offset;
16467 }
16468
16469 static int
16470 spoolss_dissect_element_AddDriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16471 {
16472         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo4_previous_names,0);
16473
16474         return offset;
16475 }
16476
16477 int
16478 spoolss_dissect_struct_AddDriverInfo4(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_)
16479 {
16480         proto_item *item = NULL;
16481         proto_tree *tree = NULL;
16482         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
16483         int old_offset;
16484
16485         ALIGN_TO_5_BYTES;
16486
16487         old_offset = offset;
16488
16489         if (parent_tree) {
16490                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
16491                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo4);
16492         }
16493         
16494         offset = spoolss_dissect_element_AddDriverInfo4_version(tvb, offset, pinfo, tree, drep);
16495
16496         offset = spoolss_dissect_element_AddDriverInfo4_driver_name(tvb, offset, pinfo, tree, drep);
16497
16498         offset = spoolss_dissect_element_AddDriverInfo4_architecture(tvb, offset, pinfo, tree, drep);
16499
16500         offset = spoolss_dissect_element_AddDriverInfo4_driver_path(tvb, offset, pinfo, tree, drep);
16501
16502         offset = spoolss_dissect_element_AddDriverInfo4_data_file(tvb, offset, pinfo, tree, drep);
16503
16504         offset = spoolss_dissect_element_AddDriverInfo4_config_file(tvb, offset, pinfo, tree, drep);
16505
16506         offset = spoolss_dissect_element_AddDriverInfo4_help_file(tvb, offset, pinfo, tree, drep);
16507
16508         offset = spoolss_dissect_element_AddDriverInfo4_monitor_name(tvb, offset, pinfo, tree, drep);
16509
16510         offset = spoolss_dissect_element_AddDriverInfo4_default_datatype(tvb, offset, pinfo, tree, drep);
16511
16512         offset = spoolss_dissect_element_AddDriverInfo4__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
16513
16514         offset = spoolss_dissect_element_AddDriverInfo4_dependent_files(tvb, offset, pinfo, tree, drep);
16515
16516         offset = spoolss_dissect_element_AddDriverInfo4__ndr_size_previous_names(tvb, offset, pinfo, tree, drep);
16517
16518         offset = spoolss_dissect_element_AddDriverInfo4_previous_names(tvb, offset, pinfo, tree, drep);
16519
16520
16521         proto_item_set_len(item, offset-old_offset);
16522
16523
16524         if (di->call_data->flags & DCERPC_IS_NDR64) {
16525                 ALIGN_TO_5_BYTES;
16526         }
16527
16528         return offset;
16529 }
16530
16531
16532 /* IDL: bitmap { */
16533 /* IDL:         PRINTER_DRIVER_PACKAGE_AWARE =  0x00000001 , */
16534 /* IDL:         PRINTER_DRIVER_XPS =  0x00000002 , */
16535 /* IDL:         PRINTER_DRIVER_SANDBOX_ENABLED =  0x00000004 , */
16536 /* IDL:         PRINTER_DRIVER_CLASS =  0x00000008 , */
16537 /* IDL:         PRINTER_DRIVER_DERIVED =  0x00000010 , */
16538 /* IDL:         PRINTER_DRIVER_NOT_SHAREABLE =  0x00000020 , */
16539 /* IDL:         PRINTER_DRIVER_CATEGORY_FAX =  0x00000040 , */
16540 /* IDL:         PRINTER_DRIVER_CATEGORY_FILE =  0x00000080 , */
16541 /* IDL:         PRINTER_DRIVER_CATEGORY_VIRTUAL =  0x00000100 , */
16542 /* IDL:         PRINTER_DRIVER_CATEGORY_SERVICE =  0x00000200 , */
16543 /* IDL:         PRINTER_DRIVER_SOFT_RESET_REQUIRED =  0x00000400 , */
16544 /* IDL: } */
16545
16546 int
16547 spoolss_dissect_bitmap_DriverAttributes(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_)
16548 {
16549         proto_item *item = NULL;
16550         proto_tree *tree = NULL;
16551
16552         guint32 flags;
16553         ALIGN_TO_4_BYTES;
16554
16555         if (parent_tree) {
16556                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
16557                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DriverAttributes);
16558         }
16559
16560         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
16561         proto_item_append_text(item, ": ");
16562
16563         if (!flags)
16564                 proto_item_append_text(item, "(No values set)");
16565
16566         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE, tvb, offset-4, 4, flags);
16567         if (flags&( 0x00000001 )){
16568                 proto_item_append_text(item, "PRINTER_DRIVER_PACKAGE_AWARE");
16569                 if (flags & (~( 0x00000001 )))
16570                         proto_item_append_text(item, ", ");
16571         }
16572         flags&=(~( 0x00000001 ));
16573
16574         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_XPS, tvb, offset-4, 4, flags);
16575         if (flags&( 0x00000002 )){
16576                 proto_item_append_text(item, "PRINTER_DRIVER_XPS");
16577                 if (flags & (~( 0x00000002 )))
16578                         proto_item_append_text(item, ", ");
16579         }
16580         flags&=(~( 0x00000002 ));
16581
16582         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED, tvb, offset-4, 4, flags);
16583         if (flags&( 0x00000004 )){
16584                 proto_item_append_text(item, "PRINTER_DRIVER_SANDBOX_ENABLED");
16585                 if (flags & (~( 0x00000004 )))
16586                         proto_item_append_text(item, ", ");
16587         }
16588         flags&=(~( 0x00000004 ));
16589
16590         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CLASS, tvb, offset-4, 4, flags);
16591         if (flags&( 0x00000008 )){
16592                 proto_item_append_text(item, "PRINTER_DRIVER_CLASS");
16593                 if (flags & (~( 0x00000008 )))
16594                         proto_item_append_text(item, ", ");
16595         }
16596         flags&=(~( 0x00000008 ));
16597
16598         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED, tvb, offset-4, 4, flags);
16599         if (flags&( 0x00000010 )){
16600                 proto_item_append_text(item, "PRINTER_DRIVER_DERIVED");
16601                 if (flags & (~( 0x00000010 )))
16602                         proto_item_append_text(item, ", ");
16603         }
16604         flags&=(~( 0x00000010 ));
16605
16606         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE, tvb, offset-4, 4, flags);
16607         if (flags&( 0x00000020 )){
16608                 proto_item_append_text(item, "PRINTER_DRIVER_NOT_SHAREABLE");
16609                 if (flags & (~( 0x00000020 )))
16610                         proto_item_append_text(item, ", ");
16611         }
16612         flags&=(~( 0x00000020 ));
16613
16614         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX, tvb, offset-4, 4, flags);
16615         if (flags&( 0x00000040 )){
16616                 proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_FAX");
16617                 if (flags & (~( 0x00000040 )))
16618                         proto_item_append_text(item, ", ");
16619         }
16620         flags&=(~( 0x00000040 ));
16621
16622         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE, tvb, offset-4, 4, flags);
16623         if (flags&( 0x00000080 )){
16624                 proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_FILE");
16625                 if (flags & (~( 0x00000080 )))
16626                         proto_item_append_text(item, ", ");
16627         }
16628         flags&=(~( 0x00000080 ));
16629
16630         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL, tvb, offset-4, 4, flags);
16631         if (flags&( 0x00000100 )){
16632                 proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_VIRTUAL");
16633                 if (flags & (~( 0x00000100 )))
16634                         proto_item_append_text(item, ", ");
16635         }
16636         flags&=(~( 0x00000100 ));
16637
16638         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE, tvb, offset-4, 4, flags);
16639         if (flags&( 0x00000200 )){
16640                 proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_SERVICE");
16641                 if (flags & (~( 0x00000200 )))
16642                         proto_item_append_text(item, ", ");
16643         }
16644         flags&=(~( 0x00000200 ));
16645
16646         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED, tvb, offset-4, 4, flags);
16647         if (flags&( 0x00000400 )){
16648                 proto_item_append_text(item, "PRINTER_DRIVER_SOFT_RESET_REQUIRED");
16649                 if (flags & (~( 0x00000400 )))
16650                         proto_item_append_text(item, ", ");
16651         }
16652         flags&=(~( 0x00000400 ));
16653
16654         if (flags) {
16655                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
16656         }
16657
16658         return offset;
16659 }
16660
16661
16662 /* IDL: struct { */
16663 /* IDL:         spoolss_DriverOSVersion version; */
16664 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
16665 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *architecture; */
16666 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_path; */
16667 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_file; */
16668 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *config_file; */
16669 /* IDL:         spoolss_DriverAttributes driver_attributes; */
16670 /* IDL:         uint32 config_version; */
16671 /* IDL:         uint32 driver_version; */
16672 /* IDL: } */
16673
16674 static int
16675 spoolss_dissect_element_AddDriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16676 {
16677         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_version, 0);
16678
16679         return offset;
16680 }
16681
16682 static int
16683 spoolss_dissect_element_AddDriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16684 {
16685         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo5_driver_name);
16686
16687         return offset;
16688 }
16689
16690 static int
16691 spoolss_dissect_element_AddDriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16692 {
16693         char *data;
16694
16695         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_driver_name, FALSE, &data);
16696         proto_item_append_text(tree, ": %s", data);
16697
16698         return offset;
16699 }
16700
16701 static int
16702 spoolss_dissect_element_AddDriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16703 {
16704         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo5_architecture);
16705
16706         return offset;
16707 }
16708
16709 static int
16710 spoolss_dissect_element_AddDriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16711 {
16712         char *data;
16713
16714         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_architecture, FALSE, &data);
16715         proto_item_append_text(tree, ": %s", data);
16716
16717         return offset;
16718 }
16719
16720 static int
16721 spoolss_dissect_element_AddDriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16722 {
16723         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo5_driver_path);
16724
16725         return offset;
16726 }
16727
16728 static int
16729 spoolss_dissect_element_AddDriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16730 {
16731         char *data;
16732
16733         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_driver_path, FALSE, &data);
16734         proto_item_append_text(tree, ": %s", data);
16735
16736         return offset;
16737 }
16738
16739 static int
16740 spoolss_dissect_element_AddDriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16741 {
16742         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo5_data_file);
16743
16744         return offset;
16745 }
16746
16747 static int
16748 spoolss_dissect_element_AddDriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16749 {
16750         char *data;
16751
16752         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_data_file, FALSE, &data);
16753         proto_item_append_text(tree, ": %s", data);
16754
16755         return offset;
16756 }
16757
16758 static int
16759 spoolss_dissect_element_AddDriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16760 {
16761         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo5_config_file);
16762
16763         return offset;
16764 }
16765
16766 static int
16767 spoolss_dissect_element_AddDriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16768 {
16769         char *data;
16770
16771         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_config_file, FALSE, &data);
16772         proto_item_append_text(tree, ": %s", data);
16773
16774         return offset;
16775 }
16776
16777 static int
16778 spoolss_dissect_element_AddDriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16779 {
16780         offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_driver_attributes, 0);
16781
16782         return offset;
16783 }
16784
16785 static int
16786 spoolss_dissect_element_AddDriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16787 {
16788         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_config_version, 0);
16789
16790         return offset;
16791 }
16792
16793 static int
16794 spoolss_dissect_element_AddDriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16795 {
16796         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_driver_version, 0);
16797
16798         return offset;
16799 }
16800
16801 int
16802 spoolss_dissect_struct_AddDriverInfo5(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_)
16803 {
16804         proto_item *item = NULL;
16805         proto_tree *tree = NULL;
16806         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
16807         int old_offset;
16808
16809         ALIGN_TO_5_BYTES;
16810
16811         old_offset = offset;
16812
16813         if (parent_tree) {
16814                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
16815                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo5);
16816         }
16817         
16818         offset = spoolss_dissect_element_AddDriverInfo5_version(tvb, offset, pinfo, tree, drep);
16819
16820         offset = spoolss_dissect_element_AddDriverInfo5_driver_name(tvb, offset, pinfo, tree, drep);
16821
16822         offset = spoolss_dissect_element_AddDriverInfo5_architecture(tvb, offset, pinfo, tree, drep);
16823
16824         offset = spoolss_dissect_element_AddDriverInfo5_driver_path(tvb, offset, pinfo, tree, drep);
16825
16826         offset = spoolss_dissect_element_AddDriverInfo5_data_file(tvb, offset, pinfo, tree, drep);
16827
16828         offset = spoolss_dissect_element_AddDriverInfo5_config_file(tvb, offset, pinfo, tree, drep);
16829
16830         offset = spoolss_dissect_element_AddDriverInfo5_driver_attributes(tvb, offset, pinfo, tree, drep);
16831
16832         offset = spoolss_dissect_element_AddDriverInfo5_config_version(tvb, offset, pinfo, tree, drep);
16833
16834         offset = spoolss_dissect_element_AddDriverInfo5_driver_version(tvb, offset, pinfo, tree, drep);
16835
16836
16837         proto_item_set_len(item, offset-old_offset);
16838
16839
16840         if (di->call_data->flags & DCERPC_IS_NDR64) {
16841                 ALIGN_TO_5_BYTES;
16842         }
16843
16844         return offset;
16845 }
16846
16847
16848 /* IDL: struct { */
16849 /* IDL:         spoolss_DriverOSVersion version; */
16850 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
16851 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *architecture; */
16852 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_path; */
16853 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_file; */
16854 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *config_file; */
16855 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *help_file; */
16856 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
16857 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
16858 /* IDL:         [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
16859 /* IDL:         [unique(1)] spoolss_StringArray *dependent_files; */
16860 /* IDL:         [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] uint32 _ndr_size_previous_names; */
16861 /* IDL:         [unique(1)] spoolss_StringArray *previous_names; */
16862 /* IDL:         NTTIME driver_date; */
16863 /* IDL:         hyper driver_version; */
16864 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *manufacturer_name; */
16865 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *manufacturer_url; */
16866 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *hardware_id; */
16867 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *provider; */
16868 /* IDL: } */
16869
16870 static int
16871 spoolss_dissect_element_AddDriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16872 {
16873         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6_version, 0);
16874
16875         return offset;
16876 }
16877
16878 static int
16879 spoolss_dissect_element_AddDriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16880 {
16881         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo6_driver_name);
16882
16883         return offset;
16884 }
16885
16886 static int
16887 spoolss_dissect_element_AddDriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16888 {
16889         char *data;
16890
16891         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_driver_name, FALSE, &data);
16892         proto_item_append_text(tree, ": %s", data);
16893
16894         return offset;
16895 }
16896
16897 static int
16898 spoolss_dissect_element_AddDriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16899 {
16900         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo6_architecture);
16901
16902         return offset;
16903 }
16904
16905 static int
16906 spoolss_dissect_element_AddDriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16907 {
16908         char *data;
16909
16910         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_architecture, FALSE, &data);
16911         proto_item_append_text(tree, ": %s", data);
16912
16913         return offset;
16914 }
16915
16916 static int
16917 spoolss_dissect_element_AddDriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16918 {
16919         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo6_driver_path);
16920
16921         return offset;
16922 }
16923
16924 static int
16925 spoolss_dissect_element_AddDriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16926 {
16927         char *data;
16928
16929         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_driver_path, FALSE, &data);
16930         proto_item_append_text(tree, ": %s", data);
16931
16932         return offset;
16933 }
16934
16935 static int
16936 spoolss_dissect_element_AddDriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16937 {
16938         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo6_data_file);
16939
16940         return offset;
16941 }
16942
16943 static int
16944 spoolss_dissect_element_AddDriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16945 {
16946         char *data;
16947
16948         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_data_file, FALSE, &data);
16949         proto_item_append_text(tree, ": %s", data);
16950
16951         return offset;
16952 }
16953
16954 static int
16955 spoolss_dissect_element_AddDriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16956 {
16957         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo6_config_file);
16958
16959         return offset;
16960 }
16961
16962 static int
16963 spoolss_dissect_element_AddDriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16964 {
16965         char *data;
16966
16967         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_config_file, FALSE, &data);
16968         proto_item_append_text(tree, ": %s", data);
16969
16970         return offset;
16971 }
16972
16973 static int
16974 spoolss_dissect_element_AddDriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16975 {
16976         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo6_help_file);
16977
16978         return offset;
16979 }
16980
16981 static int
16982 spoolss_dissect_element_AddDriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16983 {
16984         char *data;
16985
16986         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_help_file, FALSE, &data);
16987         proto_item_append_text(tree, ": %s", data);
16988
16989         return offset;
16990 }
16991
16992 static int
16993 spoolss_dissect_element_AddDriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
16994 {
16995         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo6_monitor_name);
16996
16997         return offset;
16998 }
16999
17000 static int
17001 spoolss_dissect_element_AddDriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17002 {
17003         char *data;
17004
17005         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_monitor_name, FALSE, &data);
17006         proto_item_append_text(tree, ": %s", data);
17007
17008         return offset;
17009 }
17010
17011 static int
17012 spoolss_dissect_element_AddDriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17013 {
17014         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo6_default_datatype);
17015
17016         return offset;
17017 }
17018
17019 static int
17020 spoolss_dissect_element_AddDriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17021 {
17022         char *data;
17023
17024         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_default_datatype, FALSE, &data);
17025         proto_item_append_text(tree, ": %s", data);
17026
17027         return offset;
17028 }
17029
17030 static int
17031 spoolss_dissect_element_AddDriverInfo6__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17032 {
17033         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6__ndr_size_dependent_files, 0);
17034
17035         return offset;
17036 }
17037
17038 static int
17039 spoolss_dissect_element_AddDriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17040 {
17041         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo6_dependent_files);
17042
17043         return offset;
17044 }
17045
17046 static int
17047 spoolss_dissect_element_AddDriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17048 {
17049         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo6_dependent_files,0);
17050
17051         return offset;
17052 }
17053
17054 static int
17055 spoolss_dissect_element_AddDriverInfo6__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17056 {
17057         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6__ndr_size_previous_names, 0);
17058
17059         return offset;
17060 }
17061
17062 static int
17063 spoolss_dissect_element_AddDriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17064 {
17065         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_previous_names_, NDR_POINTER_UNIQUE, "Pointer to Previous Names (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo6_previous_names);
17066
17067         return offset;
17068 }
17069
17070 static int
17071 spoolss_dissect_element_AddDriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17072 {
17073         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo6_previous_names,0);
17074
17075         return offset;
17076 }
17077
17078 static int
17079 spoolss_dissect_element_AddDriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17080 {
17081         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6_driver_date);
17082
17083         return offset;
17084 }
17085
17086 static int
17087 spoolss_dissect_element_AddDriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17088 {
17089         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6_driver_version, NULL);
17090
17091         return offset;
17092 }
17093
17094 static int
17095 spoolss_dissect_element_AddDriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17096 {
17097         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_manufacturer_name_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Name (uint16)",hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name);
17098
17099         return offset;
17100 }
17101
17102 static int
17103 spoolss_dissect_element_AddDriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17104 {
17105         char *data;
17106
17107         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name, FALSE, &data);
17108         proto_item_append_text(tree, ": %s", data);
17109
17110         return offset;
17111 }
17112
17113 static int
17114 spoolss_dissect_element_AddDriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17115 {
17116         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_manufacturer_url_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Url (uint16)",hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url);
17117
17118         return offset;
17119 }
17120
17121 static int
17122 spoolss_dissect_element_AddDriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17123 {
17124         char *data;
17125
17126         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url, FALSE, &data);
17127         proto_item_append_text(tree, ": %s", data);
17128
17129         return offset;
17130 }
17131
17132 static int
17133 spoolss_dissect_element_AddDriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17134 {
17135         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_hardware_id_, NDR_POINTER_UNIQUE, "Pointer to Hardware Id (uint16)",hf_spoolss_spoolss_AddDriverInfo6_hardware_id);
17136
17137         return offset;
17138 }
17139
17140 static int
17141 spoolss_dissect_element_AddDriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17142 {
17143         char *data;
17144
17145         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_hardware_id, FALSE, &data);
17146         proto_item_append_text(tree, ": %s", data);
17147
17148         return offset;
17149 }
17150
17151 static int
17152 spoolss_dissect_element_AddDriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17153 {
17154         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_provider_, NDR_POINTER_UNIQUE, "Pointer to Provider (uint16)",hf_spoolss_spoolss_AddDriverInfo6_provider);
17155
17156         return offset;
17157 }
17158
17159 static int
17160 spoolss_dissect_element_AddDriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17161 {
17162         char *data;
17163
17164         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_provider, FALSE, &data);
17165         proto_item_append_text(tree, ": %s", data);
17166
17167         return offset;
17168 }
17169
17170 int
17171 spoolss_dissect_struct_AddDriverInfo6(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_)
17172 {
17173         proto_item *item = NULL;
17174         proto_tree *tree = NULL;
17175         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
17176         int old_offset;
17177
17178         ALIGN_TO_8_BYTES;
17179
17180         old_offset = offset;
17181
17182         if (parent_tree) {
17183                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
17184                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo6);
17185         }
17186         
17187         offset = spoolss_dissect_element_AddDriverInfo6_version(tvb, offset, pinfo, tree, drep);
17188
17189         offset = spoolss_dissect_element_AddDriverInfo6_driver_name(tvb, offset, pinfo, tree, drep);
17190
17191         offset = spoolss_dissect_element_AddDriverInfo6_architecture(tvb, offset, pinfo, tree, drep);
17192
17193         offset = spoolss_dissect_element_AddDriverInfo6_driver_path(tvb, offset, pinfo, tree, drep);
17194
17195         offset = spoolss_dissect_element_AddDriverInfo6_data_file(tvb, offset, pinfo, tree, drep);
17196
17197         offset = spoolss_dissect_element_AddDriverInfo6_config_file(tvb, offset, pinfo, tree, drep);
17198
17199         offset = spoolss_dissect_element_AddDriverInfo6_help_file(tvb, offset, pinfo, tree, drep);
17200
17201         offset = spoolss_dissect_element_AddDriverInfo6_monitor_name(tvb, offset, pinfo, tree, drep);
17202
17203         offset = spoolss_dissect_element_AddDriverInfo6_default_datatype(tvb, offset, pinfo, tree, drep);
17204
17205         offset = spoolss_dissect_element_AddDriverInfo6__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
17206
17207         offset = spoolss_dissect_element_AddDriverInfo6_dependent_files(tvb, offset, pinfo, tree, drep);
17208
17209         offset = spoolss_dissect_element_AddDriverInfo6__ndr_size_previous_names(tvb, offset, pinfo, tree, drep);
17210
17211         offset = spoolss_dissect_element_AddDriverInfo6_previous_names(tvb, offset, pinfo, tree, drep);
17212
17213         offset = spoolss_dissect_element_AddDriverInfo6_driver_date(tvb, offset, pinfo, tree, drep);
17214
17215         offset = spoolss_dissect_element_AddDriverInfo6_driver_version(tvb, offset, pinfo, tree, drep);
17216
17217         offset = spoolss_dissect_element_AddDriverInfo6_manufacturer_name(tvb, offset, pinfo, tree, drep);
17218
17219         offset = spoolss_dissect_element_AddDriverInfo6_manufacturer_url(tvb, offset, pinfo, tree, drep);
17220
17221         offset = spoolss_dissect_element_AddDriverInfo6_hardware_id(tvb, offset, pinfo, tree, drep);
17222
17223         offset = spoolss_dissect_element_AddDriverInfo6_provider(tvb, offset, pinfo, tree, drep);
17224
17225
17226         proto_item_set_len(item, offset-old_offset);
17227
17228
17229         if (di->call_data->flags & DCERPC_IS_NDR64) {
17230                 ALIGN_TO_8_BYTES;
17231         }
17232
17233         return offset;
17234 }
17235
17236
17237 /* IDL: struct { */
17238 /* IDL:         spoolss_DriverOSVersion version; */
17239 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_name; */
17240 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *architecture; */
17241 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *driver_path; */
17242 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *data_file; */
17243 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *config_file; */
17244 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *help_file; */
17245 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
17246 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
17247 /* IDL:         [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
17248 /* IDL:         [unique(1)] spoolss_StringArray *dependent_files; */
17249 /* IDL:         [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] uint32 _ndr_size_previous_names; */
17250 /* IDL:         [unique(1)] spoolss_StringArray *previous_names; */
17251 /* IDL:         NTTIME driver_date; */
17252 /* IDL:         hyper driver_version; */
17253 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *manufacturer_name; */
17254 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *manufacturer_url; */
17255 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *hardware_id; */
17256 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *provider; */
17257 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *print_processor; */
17258 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *vendor_setup; */
17259 /* IDL:         [value(((ndr_size_spoolss_StringArray(color_profiles,ndr->flags)-4)/2))] uint32 _ndr_size_color_profiles; */
17260 /* IDL:         [unique(1)] spoolss_StringArray *color_profiles; */
17261 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *inf_path; */
17262 /* IDL:         spoolss_DriverAttributes printer_driver_attributes; */
17263 /* IDL:         [value(((ndr_size_spoolss_StringArray(core_driver_dependencies,ndr->flags)-4)/2))] uint32 _ndr_size_core_driver_dependencies; */
17264 /* IDL:         [unique(1)] spoolss_StringArray *core_driver_dependencies; */
17265 /* IDL:         NTTIME min_inbox_driver_ver_date; */
17266 /* IDL:         hyper min_inbox_driver_ver_version; */
17267 /* IDL: } */
17268
17269 static int
17270 spoolss_dissect_element_AddDriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17271 {
17272         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_version, 0);
17273
17274         return offset;
17275 }
17276
17277 static int
17278 spoolss_dissect_element_AddDriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17279 {
17280         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo8_driver_name);
17281
17282         return offset;
17283 }
17284
17285 static int
17286 spoolss_dissect_element_AddDriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17287 {
17288         char *data;
17289
17290         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_driver_name, FALSE, &data);
17291         proto_item_append_text(tree, ": %s", data);
17292
17293         return offset;
17294 }
17295
17296 static int
17297 spoolss_dissect_element_AddDriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17298 {
17299         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo8_architecture);
17300
17301         return offset;
17302 }
17303
17304 static int
17305 spoolss_dissect_element_AddDriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17306 {
17307         char *data;
17308
17309         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_architecture, FALSE, &data);
17310         proto_item_append_text(tree, ": %s", data);
17311
17312         return offset;
17313 }
17314
17315 static int
17316 spoolss_dissect_element_AddDriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17317 {
17318         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo8_driver_path);
17319
17320         return offset;
17321 }
17322
17323 static int
17324 spoolss_dissect_element_AddDriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17325 {
17326         char *data;
17327
17328         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_driver_path, FALSE, &data);
17329         proto_item_append_text(tree, ": %s", data);
17330
17331         return offset;
17332 }
17333
17334 static int
17335 spoolss_dissect_element_AddDriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17336 {
17337         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo8_data_file);
17338
17339         return offset;
17340 }
17341
17342 static int
17343 spoolss_dissect_element_AddDriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17344 {
17345         char *data;
17346
17347         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_data_file, FALSE, &data);
17348         proto_item_append_text(tree, ": %s", data);
17349
17350         return offset;
17351 }
17352
17353 static int
17354 spoolss_dissect_element_AddDriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17355 {
17356         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo8_config_file);
17357
17358         return offset;
17359 }
17360
17361 static int
17362 spoolss_dissect_element_AddDriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17363 {
17364         char *data;
17365
17366         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_config_file, FALSE, &data);
17367         proto_item_append_text(tree, ": %s", data);
17368
17369         return offset;
17370 }
17371
17372 static int
17373 spoolss_dissect_element_AddDriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17374 {
17375         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo8_help_file);
17376
17377         return offset;
17378 }
17379
17380 static int
17381 spoolss_dissect_element_AddDriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17382 {
17383         char *data;
17384
17385         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_help_file, FALSE, &data);
17386         proto_item_append_text(tree, ": %s", data);
17387
17388         return offset;
17389 }
17390
17391 static int
17392 spoolss_dissect_element_AddDriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17393 {
17394         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo8_monitor_name);
17395
17396         return offset;
17397 }
17398
17399 static int
17400 spoolss_dissect_element_AddDriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17401 {
17402         char *data;
17403
17404         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_monitor_name, FALSE, &data);
17405         proto_item_append_text(tree, ": %s", data);
17406
17407         return offset;
17408 }
17409
17410 static int
17411 spoolss_dissect_element_AddDriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17412 {
17413         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo8_default_datatype);
17414
17415         return offset;
17416 }
17417
17418 static int
17419 spoolss_dissect_element_AddDriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17420 {
17421         char *data;
17422
17423         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_default_datatype, FALSE, &data);
17424         proto_item_append_text(tree, ": %s", data);
17425
17426         return offset;
17427 }
17428
17429 static int
17430 spoolss_dissect_element_AddDriverInfo8__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17431 {
17432         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_dependent_files, 0);
17433
17434         return offset;
17435 }
17436
17437 static int
17438 spoolss_dissect_element_AddDriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17439 {
17440         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_dependent_files);
17441
17442         return offset;
17443 }
17444
17445 static int
17446 spoolss_dissect_element_AddDriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17447 {
17448         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_dependent_files,0);
17449
17450         return offset;
17451 }
17452
17453 static int
17454 spoolss_dissect_element_AddDriverInfo8__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17455 {
17456         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_previous_names, 0);
17457
17458         return offset;
17459 }
17460
17461 static int
17462 spoolss_dissect_element_AddDriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17463 {
17464         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_previous_names_, NDR_POINTER_UNIQUE, "Pointer to Previous Names (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_previous_names);
17465
17466         return offset;
17467 }
17468
17469 static int
17470 spoolss_dissect_element_AddDriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17471 {
17472         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_previous_names,0);
17473
17474         return offset;
17475 }
17476
17477 static int
17478 spoolss_dissect_element_AddDriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17479 {
17480         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_driver_date);
17481
17482         return offset;
17483 }
17484
17485 static int
17486 spoolss_dissect_element_AddDriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17487 {
17488         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_driver_version, NULL);
17489
17490         return offset;
17491 }
17492
17493 static int
17494 spoolss_dissect_element_AddDriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17495 {
17496         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_manufacturer_name_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Name (uint16)",hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name);
17497
17498         return offset;
17499 }
17500
17501 static int
17502 spoolss_dissect_element_AddDriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17503 {
17504         char *data;
17505
17506         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name, FALSE, &data);
17507         proto_item_append_text(tree, ": %s", data);
17508
17509         return offset;
17510 }
17511
17512 static int
17513 spoolss_dissect_element_AddDriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17514 {
17515         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_manufacturer_url_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Url (uint16)",hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url);
17516
17517         return offset;
17518 }
17519
17520 static int
17521 spoolss_dissect_element_AddDriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17522 {
17523         char *data;
17524
17525         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url, FALSE, &data);
17526         proto_item_append_text(tree, ": %s", data);
17527
17528         return offset;
17529 }
17530
17531 static int
17532 spoolss_dissect_element_AddDriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17533 {
17534         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_hardware_id_, NDR_POINTER_UNIQUE, "Pointer to Hardware Id (uint16)",hf_spoolss_spoolss_AddDriverInfo8_hardware_id);
17535
17536         return offset;
17537 }
17538
17539 static int
17540 spoolss_dissect_element_AddDriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17541 {
17542         char *data;
17543
17544         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_hardware_id, FALSE, &data);
17545         proto_item_append_text(tree, ": %s", data);
17546
17547         return offset;
17548 }
17549
17550 static int
17551 spoolss_dissect_element_AddDriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17552 {
17553         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_provider_, NDR_POINTER_UNIQUE, "Pointer to Provider (uint16)",hf_spoolss_spoolss_AddDriverInfo8_provider);
17554
17555         return offset;
17556 }
17557
17558 static int
17559 spoolss_dissect_element_AddDriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17560 {
17561         char *data;
17562
17563         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_provider, FALSE, &data);
17564         proto_item_append_text(tree, ": %s", data);
17565
17566         return offset;
17567 }
17568
17569 static int
17570 spoolss_dissect_element_AddDriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17571 {
17572         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_print_processor_, NDR_POINTER_UNIQUE, "Pointer to Print Processor (uint16)",hf_spoolss_spoolss_AddDriverInfo8_print_processor);
17573
17574         return offset;
17575 }
17576
17577 static int
17578 spoolss_dissect_element_AddDriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17579 {
17580         char *data;
17581
17582         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_print_processor, FALSE, &data);
17583         proto_item_append_text(tree, ": %s", data);
17584
17585         return offset;
17586 }
17587
17588 static int
17589 spoolss_dissect_element_AddDriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17590 {
17591         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_vendor_setup_, NDR_POINTER_UNIQUE, "Pointer to Vendor Setup (uint16)",hf_spoolss_spoolss_AddDriverInfo8_vendor_setup);
17592
17593         return offset;
17594 }
17595
17596 static int
17597 spoolss_dissect_element_AddDriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17598 {
17599         char *data;
17600
17601         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_vendor_setup, FALSE, &data);
17602         proto_item_append_text(tree, ": %s", data);
17603
17604         return offset;
17605 }
17606
17607 static int
17608 spoolss_dissect_element_AddDriverInfo8__ndr_size_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17609 {
17610         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_color_profiles, 0);
17611
17612         return offset;
17613 }
17614
17615 static int
17616 spoolss_dissect_element_AddDriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17617 {
17618         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_color_profiles_, NDR_POINTER_UNIQUE, "Pointer to Color Profiles (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_color_profiles);
17619
17620         return offset;
17621 }
17622
17623 static int
17624 spoolss_dissect_element_AddDriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17625 {
17626         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_color_profiles,0);
17627
17628         return offset;
17629 }
17630
17631 static int
17632 spoolss_dissect_element_AddDriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17633 {
17634         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_inf_path_, NDR_POINTER_UNIQUE, "Pointer to Inf Path (uint16)",hf_spoolss_spoolss_AddDriverInfo8_inf_path);
17635
17636         return offset;
17637 }
17638
17639 static int
17640 spoolss_dissect_element_AddDriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17641 {
17642         char *data;
17643
17644         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_inf_path, FALSE, &data);
17645         proto_item_append_text(tree, ": %s", data);
17646
17647         return offset;
17648 }
17649
17650 static int
17651 spoolss_dissect_element_AddDriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17652 {
17653         offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_printer_driver_attributes, 0);
17654
17655         return offset;
17656 }
17657
17658 static int
17659 spoolss_dissect_element_AddDriverInfo8__ndr_size_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17660 {
17661         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_core_driver_dependencies, 0);
17662
17663         return offset;
17664 }
17665
17666 static int
17667 spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17668 {
17669         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Core Driver Dependencies (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies);
17670
17671         return offset;
17672 }
17673
17674 static int
17675 spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17676 {
17677         offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies,0);
17678
17679         return offset;
17680 }
17681
17682 static int
17683 spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17684 {
17685         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_date);
17686
17687         return offset;
17688 }
17689
17690 static int
17691 spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17692 {
17693         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_version, NULL);
17694
17695         return offset;
17696 }
17697
17698 int
17699 spoolss_dissect_struct_AddDriverInfo8(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_)
17700 {
17701         proto_item *item = NULL;
17702         proto_tree *tree = NULL;
17703         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
17704         int old_offset;
17705
17706         ALIGN_TO_8_BYTES;
17707
17708         old_offset = offset;
17709
17710         if (parent_tree) {
17711                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
17712                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo8);
17713         }
17714         
17715         offset = spoolss_dissect_element_AddDriverInfo8_version(tvb, offset, pinfo, tree, drep);
17716
17717         offset = spoolss_dissect_element_AddDriverInfo8_driver_name(tvb, offset, pinfo, tree, drep);
17718
17719         offset = spoolss_dissect_element_AddDriverInfo8_architecture(tvb, offset, pinfo, tree, drep);
17720
17721         offset = spoolss_dissect_element_AddDriverInfo8_driver_path(tvb, offset, pinfo, tree, drep);
17722
17723         offset = spoolss_dissect_element_AddDriverInfo8_data_file(tvb, offset, pinfo, tree, drep);
17724
17725         offset = spoolss_dissect_element_AddDriverInfo8_config_file(tvb, offset, pinfo, tree, drep);
17726
17727         offset = spoolss_dissect_element_AddDriverInfo8_help_file(tvb, offset, pinfo, tree, drep);
17728
17729         offset = spoolss_dissect_element_AddDriverInfo8_monitor_name(tvb, offset, pinfo, tree, drep);
17730
17731         offset = spoolss_dissect_element_AddDriverInfo8_default_datatype(tvb, offset, pinfo, tree, drep);
17732
17733         offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
17734
17735         offset = spoolss_dissect_element_AddDriverInfo8_dependent_files(tvb, offset, pinfo, tree, drep);
17736
17737         offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_previous_names(tvb, offset, pinfo, tree, drep);
17738
17739         offset = spoolss_dissect_element_AddDriverInfo8_previous_names(tvb, offset, pinfo, tree, drep);
17740
17741         offset = spoolss_dissect_element_AddDriverInfo8_driver_date(tvb, offset, pinfo, tree, drep);
17742
17743         offset = spoolss_dissect_element_AddDriverInfo8_driver_version(tvb, offset, pinfo, tree, drep);
17744
17745         offset = spoolss_dissect_element_AddDriverInfo8_manufacturer_name(tvb, offset, pinfo, tree, drep);
17746
17747         offset = spoolss_dissect_element_AddDriverInfo8_manufacturer_url(tvb, offset, pinfo, tree, drep);
17748
17749         offset = spoolss_dissect_element_AddDriverInfo8_hardware_id(tvb, offset, pinfo, tree, drep);
17750
17751         offset = spoolss_dissect_element_AddDriverInfo8_provider(tvb, offset, pinfo, tree, drep);
17752
17753         offset = spoolss_dissect_element_AddDriverInfo8_print_processor(tvb, offset, pinfo, tree, drep);
17754
17755         offset = spoolss_dissect_element_AddDriverInfo8_vendor_setup(tvb, offset, pinfo, tree, drep);
17756
17757         offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_color_profiles(tvb, offset, pinfo, tree, drep);
17758
17759         offset = spoolss_dissect_element_AddDriverInfo8_color_profiles(tvb, offset, pinfo, tree, drep);
17760
17761         offset = spoolss_dissect_element_AddDriverInfo8_inf_path(tvb, offset, pinfo, tree, drep);
17762
17763         offset = spoolss_dissect_element_AddDriverInfo8_printer_driver_attributes(tvb, offset, pinfo, tree, drep);
17764
17765         offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
17766
17767         offset = spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
17768
17769         offset = spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_date(tvb, offset, pinfo, tree, drep);
17770
17771         offset = spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_version(tvb, offset, pinfo, tree, drep);
17772
17773
17774         proto_item_set_len(item, offset-old_offset);
17775
17776
17777         if (di->call_data->flags & DCERPC_IS_NDR64) {
17778                 ALIGN_TO_8_BYTES;
17779         }
17780
17781         return offset;
17782 }
17783
17784
17785 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
17786 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_AddDriverInfo1 *info1; */
17787 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_AddDriverInfo2 *info2; */
17788 /* IDL: [case(3)] [unique(1)] [case(3)] spoolss_AddDriverInfo3 *info3; */
17789 /* IDL: [case(4)] [unique(1)] [case(4)] spoolss_AddDriverInfo4 *info4; */
17790 /* IDL: [case(6)] [unique(1)] [case(6)] spoolss_AddDriverInfo6 *info6; */
17791 /* IDL: [case(8)] [unique(1)] [case(8)] spoolss_AddDriverInfo8 *info8; */
17792 /* IDL: } */
17793
17794 static int
17795 spoolss_dissect_element_AddDriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17796 {
17797         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_AddDriverInfo1)",hf_spoolss_spoolss_AddDriverInfo_info1);
17798
17799         return offset;
17800 }
17801
17802 static int
17803 spoolss_dissect_element_AddDriverInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17804 {
17805         offset = spoolss_dissect_struct_AddDriverInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info1,0);
17806
17807         return offset;
17808 }
17809
17810 static int
17811 spoolss_dissect_element_AddDriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17812 {
17813         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_AddDriverInfo2)",hf_spoolss_spoolss_AddDriverInfo_info2);
17814
17815         return offset;
17816 }
17817
17818 static int
17819 spoolss_dissect_element_AddDriverInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17820 {
17821         offset = spoolss_dissect_struct_AddDriverInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info2,0);
17822
17823         return offset;
17824 }
17825
17826 static int
17827 spoolss_dissect_element_AddDriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17828 {
17829         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_AddDriverInfo3)",hf_spoolss_spoolss_AddDriverInfo_info3);
17830
17831         return offset;
17832 }
17833
17834 static int
17835 spoolss_dissect_element_AddDriverInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17836 {
17837         offset = spoolss_dissect_struct_AddDriverInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info3,0);
17838
17839         return offset;
17840 }
17841
17842 static int
17843 spoolss_dissect_element_AddDriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17844 {
17845         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (spoolss_AddDriverInfo4)",hf_spoolss_spoolss_AddDriverInfo_info4);
17846
17847         return offset;
17848 }
17849
17850 static int
17851 spoolss_dissect_element_AddDriverInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17852 {
17853         offset = spoolss_dissect_struct_AddDriverInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info4,0);
17854
17855         return offset;
17856 }
17857
17858 static int
17859 spoolss_dissect_element_AddDriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17860 {
17861         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (spoolss_AddDriverInfo6)",hf_spoolss_spoolss_AddDriverInfo_info6);
17862
17863         return offset;
17864 }
17865
17866 static int
17867 spoolss_dissect_element_AddDriverInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17868 {
17869         offset = spoolss_dissect_struct_AddDriverInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info6,0);
17870
17871         return offset;
17872 }
17873
17874 static int
17875 spoolss_dissect_element_AddDriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17876 {
17877         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info8_, NDR_POINTER_UNIQUE, "Pointer to Info8 (spoolss_AddDriverInfo8)",hf_spoolss_spoolss_AddDriverInfo_info8);
17878
17879         return offset;
17880 }
17881
17882 static int
17883 spoolss_dissect_element_AddDriverInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17884 {
17885         offset = spoolss_dissect_struct_AddDriverInfo8(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info8,0);
17886
17887         return offset;
17888 }
17889
17890 static int
17891 spoolss_dissect_AddDriverInfo(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_)
17892 {
17893         proto_item *item = NULL;
17894         proto_tree *tree = NULL;
17895         int old_offset;
17896         guint32 level;
17897
17898         old_offset = offset;
17899         if (parent_tree) {
17900                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_AddDriverInfo");
17901                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo);
17902         }
17903
17904         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
17905         ALIGN_TO_5_BYTES;
17906
17907         switch(level) {
17908                 case 1:
17909                         offset = spoolss_dissect_element_AddDriverInfo_info1(tvb, offset, pinfo, tree, drep);
17910                 break;
17911
17912                 case 2:
17913                         offset = spoolss_dissect_element_AddDriverInfo_info2(tvb, offset, pinfo, tree, drep);
17914                 break;
17915
17916                 case 3:
17917                         offset = spoolss_dissect_element_AddDriverInfo_info3(tvb, offset, pinfo, tree, drep);
17918                 break;
17919
17920                 case 4:
17921                         offset = spoolss_dissect_element_AddDriverInfo_info4(tvb, offset, pinfo, tree, drep);
17922                 break;
17923
17924                 case 6:
17925                         offset = spoolss_dissect_element_AddDriverInfo_info6(tvb, offset, pinfo, tree, drep);
17926                 break;
17927
17928                 case 8:
17929                         offset = spoolss_dissect_element_AddDriverInfo_info8(tvb, offset, pinfo, tree, drep);
17930                 break;
17931         }
17932         proto_item_set_len(item, offset-old_offset);
17933
17934
17935         return offset;
17936 }
17937
17938 /* IDL: struct { */
17939 /* IDL:         uint32 level; */
17940 /* IDL:         [switch_is(level)] spoolss_AddDriverInfo info; */
17941 /* IDL: } */
17942
17943 static int
17944 spoolss_dissect_element_AddDriverInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
17945 {
17946         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfoCtr_level, level);
17947
17948         return offset;
17949 }
17950
17951 static int
17952 spoolss_dissect_element_AddDriverInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
17953 {
17954         offset = spoolss_dissect_AddDriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfoCtr_info, *level);
17955
17956         return offset;
17957 }
17958
17959 int
17960 spoolss_dissect_struct_AddDriverInfoCtr(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_)
17961 {
17962         g level;
17963         proto_item *item = NULL;
17964         proto_tree *tree = NULL;
17965         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
17966         int old_offset;
17967
17968         ALIGN_TO_5_BYTES;
17969
17970         old_offset = offset;
17971
17972         if (parent_tree) {
17973                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
17974                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfoCtr);
17975         }
17976         
17977         offset = spoolss_dissect_element_AddDriverInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
17978
17979         offset = spoolss_dissect_element_AddDriverInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
17980
17981
17982         proto_item_set_len(item, offset-old_offset);
17983
17984
17985         if (di->call_data->flags & DCERPC_IS_NDR64) {
17986                 ALIGN_TO_5_BYTES;
17987         }
17988
17989         return offset;
17990 }
17991
17992
17993 /* IDL: struct { */
17994 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
17995 /* IDL: } */
17996
17997 static int
17998 spoolss_dissect_element_DriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
17999 {
18000         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo1_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo1_driver_name);
18001
18002         return offset;
18003 }
18004
18005 static int
18006 spoolss_dissect_element_DriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18007 {
18008         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo1_driver_name , 0);
18009
18010         return offset;
18011 }
18012
18013 int
18014 spoolss_dissect_struct_DriverInfo1(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_)
18015 {
18016         proto_item *item = NULL;
18017         proto_tree *tree = NULL;
18018         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
18019         int old_offset;
18020
18021         ALIGN_TO_5_BYTES;
18022
18023         old_offset = offset;
18024
18025         if (parent_tree) {
18026                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
18027                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo1);
18028         }
18029         
18030         offset = spoolss_dissect_element_DriverInfo1_driver_name(tvb, offset, pinfo, tree, drep);
18031
18032
18033         proto_item_set_len(item, offset-old_offset);
18034
18035
18036         if (di->call_data->flags & DCERPC_IS_NDR64) {
18037                 ALIGN_TO_5_BYTES;
18038         }
18039
18040         return offset;
18041 }
18042
18043
18044 /* IDL: struct { */
18045 /* IDL:         spoolss_DriverOSVersion version; */
18046 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
18047 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
18048 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
18049 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
18050 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
18051 /* IDL: } */
18052
18053 static int
18054 spoolss_dissect_element_DriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18055 {
18056         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_version, 0);
18057
18058         return offset;
18059 }
18060
18061 static int
18062 spoolss_dissect_element_DriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18063 {
18064         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo2_driver_name);
18065
18066         return offset;
18067 }
18068
18069 static int
18070 spoolss_dissect_element_DriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18071 {
18072         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_driver_name , 0);
18073
18074         return offset;
18075 }
18076
18077 static int
18078 spoolss_dissect_element_DriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18079 {
18080         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo2_architecture);
18081
18082         return offset;
18083 }
18084
18085 static int
18086 spoolss_dissect_element_DriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18087 {
18088         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_architecture , 0);
18089
18090         return offset;
18091 }
18092
18093 static int
18094 spoolss_dissect_element_DriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18095 {
18096         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo2_driver_path);
18097
18098         return offset;
18099 }
18100
18101 static int
18102 spoolss_dissect_element_DriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18103 {
18104         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_driver_path , 0);
18105
18106         return offset;
18107 }
18108
18109 static int
18110 spoolss_dissect_element_DriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18111 {
18112         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo2_data_file);
18113
18114         return offset;
18115 }
18116
18117 static int
18118 spoolss_dissect_element_DriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18119 {
18120         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_data_file , 0);
18121
18122         return offset;
18123 }
18124
18125 static int
18126 spoolss_dissect_element_DriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18127 {
18128         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo2_config_file);
18129
18130         return offset;
18131 }
18132
18133 static int
18134 spoolss_dissect_element_DriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18135 {
18136         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_config_file , 0);
18137
18138         return offset;
18139 }
18140
18141 int
18142 spoolss_dissect_struct_DriverInfo2(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_)
18143 {
18144         proto_item *item = NULL;
18145         proto_tree *tree = NULL;
18146         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
18147         int old_offset;
18148
18149         ALIGN_TO_5_BYTES;
18150
18151         old_offset = offset;
18152
18153         if (parent_tree) {
18154                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
18155                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo2);
18156         }
18157         
18158         offset = spoolss_dissect_element_DriverInfo2_version(tvb, offset, pinfo, tree, drep);
18159
18160         offset = spoolss_dissect_element_DriverInfo2_driver_name(tvb, offset, pinfo, tree, drep);
18161
18162         offset = spoolss_dissect_element_DriverInfo2_architecture(tvb, offset, pinfo, tree, drep);
18163
18164         offset = spoolss_dissect_element_DriverInfo2_driver_path(tvb, offset, pinfo, tree, drep);
18165
18166         offset = spoolss_dissect_element_DriverInfo2_data_file(tvb, offset, pinfo, tree, drep);
18167
18168         offset = spoolss_dissect_element_DriverInfo2_config_file(tvb, offset, pinfo, tree, drep);
18169
18170
18171         proto_item_set_len(item, offset-old_offset);
18172
18173
18174         if (di->call_data->flags & DCERPC_IS_NDR64) {
18175                 ALIGN_TO_5_BYTES;
18176         }
18177
18178         return offset;
18179 }
18180
18181
18182 /* IDL: struct { */
18183 /* IDL:         spoolss_DriverOSVersion version; */
18184 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
18185 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
18186 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
18187 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
18188 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
18189 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
18190 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
18191 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
18192 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
18193 /* IDL: } */
18194
18195 static int
18196 spoolss_dissect_element_DriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18197 {
18198         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_version, 0);
18199
18200         return offset;
18201 }
18202
18203 static int
18204 spoolss_dissect_element_DriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18205 {
18206         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo3_driver_name);
18207
18208         return offset;
18209 }
18210
18211 static int
18212 spoolss_dissect_element_DriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18213 {
18214         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_driver_name , 0);
18215
18216         return offset;
18217 }
18218
18219 static int
18220 spoolss_dissect_element_DriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18221 {
18222         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo3_architecture);
18223
18224         return offset;
18225 }
18226
18227 static int
18228 spoolss_dissect_element_DriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18229 {
18230         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_architecture , 0);
18231
18232         return offset;
18233 }
18234
18235 static int
18236 spoolss_dissect_element_DriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18237 {
18238         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo3_driver_path);
18239
18240         return offset;
18241 }
18242
18243 static int
18244 spoolss_dissect_element_DriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18245 {
18246         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_driver_path , 0);
18247
18248         return offset;
18249 }
18250
18251 static int
18252 spoolss_dissect_element_DriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18253 {
18254         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo3_data_file);
18255
18256         return offset;
18257 }
18258
18259 static int
18260 spoolss_dissect_element_DriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18261 {
18262         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_data_file , 0);
18263
18264         return offset;
18265 }
18266
18267 static int
18268 spoolss_dissect_element_DriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18269 {
18270         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo3_config_file);
18271
18272         return offset;
18273 }
18274
18275 static int
18276 spoolss_dissect_element_DriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18277 {
18278         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_config_file , 0);
18279
18280         return offset;
18281 }
18282
18283 static int
18284 spoolss_dissect_element_DriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18285 {
18286         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo3_help_file);
18287
18288         return offset;
18289 }
18290
18291 static int
18292 spoolss_dissect_element_DriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18293 {
18294         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_help_file , 0);
18295
18296         return offset;
18297 }
18298
18299 static int
18300 spoolss_dissect_element_DriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18301 {
18302         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo3_dependent_files);
18303
18304         return offset;
18305 }
18306
18307 static int
18308 spoolss_dissect_element_DriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18309 {
18310         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo3_dependent_files,0);
18311
18312         return offset;
18313 }
18314
18315 static int
18316 spoolss_dissect_element_DriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18317 {
18318         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo3_monitor_name);
18319
18320         return offset;
18321 }
18322
18323 static int
18324 spoolss_dissect_element_DriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18325 {
18326         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_monitor_name , 0);
18327
18328         return offset;
18329 }
18330
18331 static int
18332 spoolss_dissect_element_DriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18333 {
18334         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo3_default_datatype);
18335
18336         return offset;
18337 }
18338
18339 static int
18340 spoolss_dissect_element_DriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18341 {
18342         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_default_datatype , 0);
18343
18344         return offset;
18345 }
18346
18347 int
18348 spoolss_dissect_struct_DriverInfo3(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_)
18349 {
18350         proto_item *item = NULL;
18351         proto_tree *tree = NULL;
18352         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
18353         int old_offset;
18354
18355         ALIGN_TO_5_BYTES;
18356
18357         old_offset = offset;
18358
18359         if (parent_tree) {
18360                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
18361                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo3);
18362         }
18363         
18364         offset = spoolss_dissect_element_DriverInfo3_version(tvb, offset, pinfo, tree, drep);
18365
18366         offset = spoolss_dissect_element_DriverInfo3_driver_name(tvb, offset, pinfo, tree, drep);
18367
18368         offset = spoolss_dissect_element_DriverInfo3_architecture(tvb, offset, pinfo, tree, drep);
18369
18370         offset = spoolss_dissect_element_DriverInfo3_driver_path(tvb, offset, pinfo, tree, drep);
18371
18372         offset = spoolss_dissect_element_DriverInfo3_data_file(tvb, offset, pinfo, tree, drep);
18373
18374         offset = spoolss_dissect_element_DriverInfo3_config_file(tvb, offset, pinfo, tree, drep);
18375
18376         offset = spoolss_dissect_element_DriverInfo3_help_file(tvb, offset, pinfo, tree, drep);
18377
18378         offset = spoolss_dissect_element_DriverInfo3_dependent_files(tvb, offset, pinfo, tree, drep);
18379
18380         offset = spoolss_dissect_element_DriverInfo3_monitor_name(tvb, offset, pinfo, tree, drep);
18381
18382         offset = spoolss_dissect_element_DriverInfo3_default_datatype(tvb, offset, pinfo, tree, drep);
18383
18384
18385         proto_item_set_len(item, offset-old_offset);
18386
18387
18388         if (di->call_data->flags & DCERPC_IS_NDR64) {
18389                 ALIGN_TO_5_BYTES;
18390         }
18391
18392         return offset;
18393 }
18394
18395
18396 /* IDL: struct { */
18397 /* IDL:         spoolss_DriverOSVersion version; */
18398 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
18399 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
18400 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
18401 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
18402 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
18403 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
18404 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
18405 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
18406 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
18407 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
18408 /* IDL: } */
18409
18410 static int
18411 spoolss_dissect_element_DriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18412 {
18413         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_version, 0);
18414
18415         return offset;
18416 }
18417
18418 static int
18419 spoolss_dissect_element_DriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18420 {
18421         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo4_driver_name);
18422
18423         return offset;
18424 }
18425
18426 static int
18427 spoolss_dissect_element_DriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18428 {
18429         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_driver_name , 0);
18430
18431         return offset;
18432 }
18433
18434 static int
18435 spoolss_dissect_element_DriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18436 {
18437         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo4_architecture);
18438
18439         return offset;
18440 }
18441
18442 static int
18443 spoolss_dissect_element_DriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18444 {
18445         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_architecture , 0);
18446
18447         return offset;
18448 }
18449
18450 static int
18451 spoolss_dissect_element_DriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18452 {
18453         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo4_driver_path);
18454
18455         return offset;
18456 }
18457
18458 static int
18459 spoolss_dissect_element_DriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18460 {
18461         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_driver_path , 0);
18462
18463         return offset;
18464 }
18465
18466 static int
18467 spoolss_dissect_element_DriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18468 {
18469         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo4_data_file);
18470
18471         return offset;
18472 }
18473
18474 static int
18475 spoolss_dissect_element_DriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18476 {
18477         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_data_file , 0);
18478
18479         return offset;
18480 }
18481
18482 static int
18483 spoolss_dissect_element_DriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18484 {
18485         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo4_config_file);
18486
18487         return offset;
18488 }
18489
18490 static int
18491 spoolss_dissect_element_DriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18492 {
18493         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_config_file , 0);
18494
18495         return offset;
18496 }
18497
18498 static int
18499 spoolss_dissect_element_DriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18500 {
18501         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo4_help_file);
18502
18503         return offset;
18504 }
18505
18506 static int
18507 spoolss_dissect_element_DriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18508 {
18509         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_help_file , 0);
18510
18511         return offset;
18512 }
18513
18514 static int
18515 spoolss_dissect_element_DriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18516 {
18517         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo4_dependent_files);
18518
18519         return offset;
18520 }
18521
18522 static int
18523 spoolss_dissect_element_DriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18524 {
18525         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo4_dependent_files,0);
18526
18527         return offset;
18528 }
18529
18530 static int
18531 spoolss_dissect_element_DriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18532 {
18533         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo4_monitor_name);
18534
18535         return offset;
18536 }
18537
18538 static int
18539 spoolss_dissect_element_DriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18540 {
18541         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_monitor_name , 0);
18542
18543         return offset;
18544 }
18545
18546 static int
18547 spoolss_dissect_element_DriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18548 {
18549         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo4_default_datatype);
18550
18551         return offset;
18552 }
18553
18554 static int
18555 spoolss_dissect_element_DriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18556 {
18557         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_default_datatype , 0);
18558
18559         return offset;
18560 }
18561
18562 static int
18563 spoolss_dissect_element_DriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18564 {
18565         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo4_previous_names);
18566
18567         return offset;
18568 }
18569
18570 static int
18571 spoolss_dissect_element_DriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18572 {
18573         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo4_previous_names,0);
18574
18575         return offset;
18576 }
18577
18578 int
18579 spoolss_dissect_struct_DriverInfo4(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_)
18580 {
18581         proto_item *item = NULL;
18582         proto_tree *tree = NULL;
18583         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
18584         int old_offset;
18585
18586         ALIGN_TO_5_BYTES;
18587
18588         old_offset = offset;
18589
18590         if (parent_tree) {
18591                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
18592                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo4);
18593         }
18594         
18595         offset = spoolss_dissect_element_DriverInfo4_version(tvb, offset, pinfo, tree, drep);
18596
18597         offset = spoolss_dissect_element_DriverInfo4_driver_name(tvb, offset, pinfo, tree, drep);
18598
18599         offset = spoolss_dissect_element_DriverInfo4_architecture(tvb, offset, pinfo, tree, drep);
18600
18601         offset = spoolss_dissect_element_DriverInfo4_driver_path(tvb, offset, pinfo, tree, drep);
18602
18603         offset = spoolss_dissect_element_DriverInfo4_data_file(tvb, offset, pinfo, tree, drep);
18604
18605         offset = spoolss_dissect_element_DriverInfo4_config_file(tvb, offset, pinfo, tree, drep);
18606
18607         offset = spoolss_dissect_element_DriverInfo4_help_file(tvb, offset, pinfo, tree, drep);
18608
18609         offset = spoolss_dissect_element_DriverInfo4_dependent_files(tvb, offset, pinfo, tree, drep);
18610
18611         offset = spoolss_dissect_element_DriverInfo4_monitor_name(tvb, offset, pinfo, tree, drep);
18612
18613         offset = spoolss_dissect_element_DriverInfo4_default_datatype(tvb, offset, pinfo, tree, drep);
18614
18615         offset = spoolss_dissect_element_DriverInfo4_previous_names(tvb, offset, pinfo, tree, drep);
18616
18617
18618         proto_item_set_len(item, offset-old_offset);
18619
18620
18621         if (di->call_data->flags & DCERPC_IS_NDR64) {
18622                 ALIGN_TO_5_BYTES;
18623         }
18624
18625         return offset;
18626 }
18627
18628
18629 /* IDL: struct { */
18630 /* IDL:         spoolss_DriverOSVersion version; */
18631 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
18632 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
18633 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
18634 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
18635 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
18636 /* IDL:         spoolss_DriverAttributes driver_attributes; */
18637 /* IDL:         uint32 config_version; */
18638 /* IDL:         uint32 driver_version; */
18639 /* IDL: } */
18640
18641 static int
18642 spoolss_dissect_element_DriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18643 {
18644         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_version, 0);
18645
18646         return offset;
18647 }
18648
18649 static int
18650 spoolss_dissect_element_DriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18651 {
18652         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo5_driver_name);
18653
18654         return offset;
18655 }
18656
18657 static int
18658 spoolss_dissect_element_DriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18659 {
18660         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_name , 0);
18661
18662         return offset;
18663 }
18664
18665 static int
18666 spoolss_dissect_element_DriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18667 {
18668         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo5_architecture);
18669
18670         return offset;
18671 }
18672
18673 static int
18674 spoolss_dissect_element_DriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18675 {
18676         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_architecture , 0);
18677
18678         return offset;
18679 }
18680
18681 static int
18682 spoolss_dissect_element_DriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18683 {
18684         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo5_driver_path);
18685
18686         return offset;
18687 }
18688
18689 static int
18690 spoolss_dissect_element_DriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18691 {
18692         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_path , 0);
18693
18694         return offset;
18695 }
18696
18697 static int
18698 spoolss_dissect_element_DriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18699 {
18700         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo5_data_file);
18701
18702         return offset;
18703 }
18704
18705 static int
18706 spoolss_dissect_element_DriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18707 {
18708         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_data_file , 0);
18709
18710         return offset;
18711 }
18712
18713 static int
18714 spoolss_dissect_element_DriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18715 {
18716         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo5_config_file);
18717
18718         return offset;
18719 }
18720
18721 static int
18722 spoolss_dissect_element_DriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18723 {
18724         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_config_file , 0);
18725
18726         return offset;
18727 }
18728
18729 static int
18730 spoolss_dissect_element_DriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18731 {
18732         offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_attributes, 0);
18733
18734         return offset;
18735 }
18736
18737 static int
18738 spoolss_dissect_element_DriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18739 {
18740         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_config_version, 0);
18741
18742         return offset;
18743 }
18744
18745 static int
18746 spoolss_dissect_element_DriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18747 {
18748         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_version, 0);
18749
18750         return offset;
18751 }
18752
18753 int
18754 spoolss_dissect_struct_DriverInfo5(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_)
18755 {
18756         proto_item *item = NULL;
18757         proto_tree *tree = NULL;
18758         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
18759         int old_offset;
18760
18761         ALIGN_TO_5_BYTES;
18762
18763         old_offset = offset;
18764
18765         if (parent_tree) {
18766                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
18767                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo5);
18768         }
18769         
18770         offset = spoolss_dissect_element_DriverInfo5_version(tvb, offset, pinfo, tree, drep);
18771
18772         offset = spoolss_dissect_element_DriverInfo5_driver_name(tvb, offset, pinfo, tree, drep);
18773
18774         offset = spoolss_dissect_element_DriverInfo5_architecture(tvb, offset, pinfo, tree, drep);
18775
18776         offset = spoolss_dissect_element_DriverInfo5_driver_path(tvb, offset, pinfo, tree, drep);
18777
18778         offset = spoolss_dissect_element_DriverInfo5_data_file(tvb, offset, pinfo, tree, drep);
18779
18780         offset = spoolss_dissect_element_DriverInfo5_config_file(tvb, offset, pinfo, tree, drep);
18781
18782         offset = spoolss_dissect_element_DriverInfo5_driver_attributes(tvb, offset, pinfo, tree, drep);
18783
18784         offset = spoolss_dissect_element_DriverInfo5_config_version(tvb, offset, pinfo, tree, drep);
18785
18786         offset = spoolss_dissect_element_DriverInfo5_driver_version(tvb, offset, pinfo, tree, drep);
18787
18788
18789         proto_item_set_len(item, offset-old_offset);
18790
18791
18792         if (di->call_data->flags & DCERPC_IS_NDR64) {
18793                 ALIGN_TO_5_BYTES;
18794         }
18795
18796         return offset;
18797 }
18798
18799
18800 /* IDL: struct { */
18801 /* IDL:         spoolss_DriverOSVersion version; */
18802 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
18803 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
18804 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
18805 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
18806 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
18807 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
18808 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
18809 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
18810 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
18811 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
18812 /* IDL:         NTTIME driver_date; */
18813 /* IDL:         hyper driver_version; */
18814 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_name; */
18815 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_url; */
18816 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *hardware_id; */
18817 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *provider; */
18818 /* IDL: } */
18819
18820 static int
18821 spoolss_dissect_element_DriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18822 {
18823         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_version, 0);
18824
18825         return offset;
18826 }
18827
18828 static int
18829 spoolss_dissect_element_DriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18830 {
18831         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo6_driver_name);
18832
18833         return offset;
18834 }
18835
18836 static int
18837 spoolss_dissect_element_DriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18838 {
18839         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_name , 0);
18840
18841         return offset;
18842 }
18843
18844 static int
18845 spoolss_dissect_element_DriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18846 {
18847         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo6_architecture);
18848
18849         return offset;
18850 }
18851
18852 static int
18853 spoolss_dissect_element_DriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18854 {
18855         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_architecture , 0);
18856
18857         return offset;
18858 }
18859
18860 static int
18861 spoolss_dissect_element_DriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18862 {
18863         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo6_driver_path);
18864
18865         return offset;
18866 }
18867
18868 static int
18869 spoolss_dissect_element_DriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18870 {
18871         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_path , 0);
18872
18873         return offset;
18874 }
18875
18876 static int
18877 spoolss_dissect_element_DriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18878 {
18879         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo6_data_file);
18880
18881         return offset;
18882 }
18883
18884 static int
18885 spoolss_dissect_element_DriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18886 {
18887         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_data_file , 0);
18888
18889         return offset;
18890 }
18891
18892 static int
18893 spoolss_dissect_element_DriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18894 {
18895         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo6_config_file);
18896
18897         return offset;
18898 }
18899
18900 static int
18901 spoolss_dissect_element_DriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18902 {
18903         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_config_file , 0);
18904
18905         return offset;
18906 }
18907
18908 static int
18909 spoolss_dissect_element_DriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18910 {
18911         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo6_help_file);
18912
18913         return offset;
18914 }
18915
18916 static int
18917 spoolss_dissect_element_DriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18918 {
18919         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_help_file , 0);
18920
18921         return offset;
18922 }
18923
18924 static int
18925 spoolss_dissect_element_DriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18926 {
18927         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo6_dependent_files);
18928
18929         return offset;
18930 }
18931
18932 static int
18933 spoolss_dissect_element_DriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18934 {
18935         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo6_dependent_files,0);
18936
18937         return offset;
18938 }
18939
18940 static int
18941 spoolss_dissect_element_DriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18942 {
18943         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo6_monitor_name);
18944
18945         return offset;
18946 }
18947
18948 static int
18949 spoolss_dissect_element_DriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18950 {
18951         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_monitor_name , 0);
18952
18953         return offset;
18954 }
18955
18956 static int
18957 spoolss_dissect_element_DriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18958 {
18959         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo6_default_datatype);
18960
18961         return offset;
18962 }
18963
18964 static int
18965 spoolss_dissect_element_DriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18966 {
18967         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_default_datatype , 0);
18968
18969         return offset;
18970 }
18971
18972 static int
18973 spoolss_dissect_element_DriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18974 {
18975         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo6_previous_names);
18976
18977         return offset;
18978 }
18979
18980 static int
18981 spoolss_dissect_element_DriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18982 {
18983         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo6_previous_names,0);
18984
18985         return offset;
18986 }
18987
18988 static int
18989 spoolss_dissect_element_DriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18990 {
18991         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_date);
18992
18993         return offset;
18994 }
18995
18996 static int
18997 spoolss_dissect_element_DriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
18998 {
18999         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_version, NULL);
19000
19001         return offset;
19002 }
19003
19004 static int
19005 spoolss_dissect_element_DriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19006 {
19007         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_manufacturer_name_, , "Pointer to Manufacturer Name (string)",hf_spoolss_spoolss_DriverInfo6_manufacturer_name);
19008
19009         return offset;
19010 }
19011
19012 static int
19013 spoolss_dissect_element_DriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19014 {
19015         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_manufacturer_name , 0);
19016
19017         return offset;
19018 }
19019
19020 static int
19021 spoolss_dissect_element_DriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19022 {
19023         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_manufacturer_url_, , "Pointer to Manufacturer Url (string)",hf_spoolss_spoolss_DriverInfo6_manufacturer_url);
19024
19025         return offset;
19026 }
19027
19028 static int
19029 spoolss_dissect_element_DriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19030 {
19031         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_manufacturer_url , 0);
19032
19033         return offset;
19034 }
19035
19036 static int
19037 spoolss_dissect_element_DriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19038 {
19039         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_hardware_id_, , "Pointer to Hardware Id (string)",hf_spoolss_spoolss_DriverInfo6_hardware_id);
19040
19041         return offset;
19042 }
19043
19044 static int
19045 spoolss_dissect_element_DriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19046 {
19047         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_hardware_id , 0);
19048
19049         return offset;
19050 }
19051
19052 static int
19053 spoolss_dissect_element_DriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19054 {
19055         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_provider_, , "Pointer to Provider (string)",hf_spoolss_spoolss_DriverInfo6_provider);
19056
19057         return offset;
19058 }
19059
19060 static int
19061 spoolss_dissect_element_DriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19062 {
19063         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_provider , 0);
19064
19065         return offset;
19066 }
19067
19068 int
19069 spoolss_dissect_struct_DriverInfo6(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_)
19070 {
19071         proto_item *item = NULL;
19072         proto_tree *tree = NULL;
19073         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
19074         int old_offset;
19075
19076         ALIGN_TO_8_BYTES;
19077
19078         old_offset = offset;
19079
19080         if (parent_tree) {
19081                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
19082                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo6);
19083         }
19084         
19085         offset = spoolss_dissect_element_DriverInfo6_version(tvb, offset, pinfo, tree, drep);
19086
19087         offset = spoolss_dissect_element_DriverInfo6_driver_name(tvb, offset, pinfo, tree, drep);
19088
19089         offset = spoolss_dissect_element_DriverInfo6_architecture(tvb, offset, pinfo, tree, drep);
19090
19091         offset = spoolss_dissect_element_DriverInfo6_driver_path(tvb, offset, pinfo, tree, drep);
19092
19093         offset = spoolss_dissect_element_DriverInfo6_data_file(tvb, offset, pinfo, tree, drep);
19094
19095         offset = spoolss_dissect_element_DriverInfo6_config_file(tvb, offset, pinfo, tree, drep);
19096
19097         offset = spoolss_dissect_element_DriverInfo6_help_file(tvb, offset, pinfo, tree, drep);
19098
19099         offset = spoolss_dissect_element_DriverInfo6_dependent_files(tvb, offset, pinfo, tree, drep);
19100
19101         offset = spoolss_dissect_element_DriverInfo6_monitor_name(tvb, offset, pinfo, tree, drep);
19102
19103         offset = spoolss_dissect_element_DriverInfo6_default_datatype(tvb, offset, pinfo, tree, drep);
19104
19105         offset = spoolss_dissect_element_DriverInfo6_previous_names(tvb, offset, pinfo, tree, drep);
19106
19107         offset = spoolss_dissect_element_DriverInfo6_driver_date(tvb, offset, pinfo, tree, drep);
19108
19109         offset = spoolss_dissect_element_DriverInfo6_driver_version(tvb, offset, pinfo, tree, drep);
19110
19111         offset = spoolss_dissect_element_DriverInfo6_manufacturer_name(tvb, offset, pinfo, tree, drep);
19112
19113         offset = spoolss_dissect_element_DriverInfo6_manufacturer_url(tvb, offset, pinfo, tree, drep);
19114
19115         offset = spoolss_dissect_element_DriverInfo6_hardware_id(tvb, offset, pinfo, tree, drep);
19116
19117         offset = spoolss_dissect_element_DriverInfo6_provider(tvb, offset, pinfo, tree, drep);
19118
19119
19120         proto_item_set_len(item, offset-old_offset);
19121
19122
19123         if (di->call_data->flags & DCERPC_IS_NDR64) {
19124                 ALIGN_TO_8_BYTES;
19125         }
19126
19127         return offset;
19128 }
19129
19130
19131 /* IDL: struct { */
19132 /* IDL:         uint32 size; */
19133 /* IDL:         spoolss_DriverOSVersion version; */
19134 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
19135 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *inf_name; */
19136 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *install_source_root; */
19137 /* IDL: } */
19138
19139 static int
19140 spoolss_dissect_element_DriverInfo7_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19141 {
19142         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_size, 0);
19143
19144         return offset;
19145 }
19146
19147 static int
19148 spoolss_dissect_element_DriverInfo7_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19149 {
19150         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_version, 0);
19151
19152         return offset;
19153 }
19154
19155 static int
19156 spoolss_dissect_element_DriverInfo7_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19157 {
19158         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo7_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo7_driver_name);
19159
19160         return offset;
19161 }
19162
19163 static int
19164 spoolss_dissect_element_DriverInfo7_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19165 {
19166         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_driver_name , 0);
19167
19168         return offset;
19169 }
19170
19171 static int
19172 spoolss_dissect_element_DriverInfo7_inf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19173 {
19174         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo7_inf_name_, , "Pointer to Inf Name (string)",hf_spoolss_spoolss_DriverInfo7_inf_name);
19175
19176         return offset;
19177 }
19178
19179 static int
19180 spoolss_dissect_element_DriverInfo7_inf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19181 {
19182         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_inf_name , 0);
19183
19184         return offset;
19185 }
19186
19187 static int
19188 spoolss_dissect_element_DriverInfo7_install_source_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19189 {
19190         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo7_install_source_root_, , "Pointer to Install Source Root (string)",hf_spoolss_spoolss_DriverInfo7_install_source_root);
19191
19192         return offset;
19193 }
19194
19195 static int
19196 spoolss_dissect_element_DriverInfo7_install_source_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19197 {
19198         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_install_source_root , 0);
19199
19200         return offset;
19201 }
19202
19203 int
19204 spoolss_dissect_struct_DriverInfo7(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_)
19205 {
19206         proto_item *item = NULL;
19207         proto_tree *tree = NULL;
19208         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
19209         int old_offset;
19210
19211         ALIGN_TO_5_BYTES;
19212
19213         old_offset = offset;
19214
19215         if (parent_tree) {
19216                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
19217                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo7);
19218         }
19219         
19220         offset = spoolss_dissect_element_DriverInfo7_size(tvb, offset, pinfo, tree, drep);
19221
19222         offset = spoolss_dissect_element_DriverInfo7_version(tvb, offset, pinfo, tree, drep);
19223
19224         offset = spoolss_dissect_element_DriverInfo7_driver_name(tvb, offset, pinfo, tree, drep);
19225
19226         offset = spoolss_dissect_element_DriverInfo7_inf_name(tvb, offset, pinfo, tree, drep);
19227
19228         offset = spoolss_dissect_element_DriverInfo7_install_source_root(tvb, offset, pinfo, tree, drep);
19229
19230
19231         proto_item_set_len(item, offset-old_offset);
19232
19233
19234         if (di->call_data->flags & DCERPC_IS_NDR64) {
19235                 ALIGN_TO_5_BYTES;
19236         }
19237
19238         return offset;
19239 }
19240
19241
19242 /* IDL: struct { */
19243 /* IDL:         spoolss_DriverOSVersion version; */
19244 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
19245 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
19246 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
19247 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
19248 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
19249 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
19250 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
19251 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
19252 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
19253 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
19254 /* IDL:         NTTIME driver_date; */
19255 /* IDL:         hyper driver_version; */
19256 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_name; */
19257 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_url; */
19258 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *hardware_id; */
19259 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *provider; */
19260 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor; */
19261 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *vendor_setup; */
19262 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *color_profiles; */
19263 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *inf_path; */
19264 /* IDL:         spoolss_DriverAttributes printer_driver_attributes; */
19265 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *core_driver_dependencies; */
19266 /* IDL:         NTTIME min_inbox_driver_ver_date; */
19267 /* IDL:         hyper min_inbox_driver_ver_version; */
19268 /* IDL: } */
19269
19270 static int
19271 spoolss_dissect_element_DriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19272 {
19273         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_version, 0);
19274
19275         return offset;
19276 }
19277
19278 static int
19279 spoolss_dissect_element_DriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19280 {
19281         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo8_driver_name);
19282
19283         return offset;
19284 }
19285
19286 static int
19287 spoolss_dissect_element_DriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19288 {
19289         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_name , 0);
19290
19291         return offset;
19292 }
19293
19294 static int
19295 spoolss_dissect_element_DriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19296 {
19297         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo8_architecture);
19298
19299         return offset;
19300 }
19301
19302 static int
19303 spoolss_dissect_element_DriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19304 {
19305         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_architecture , 0);
19306
19307         return offset;
19308 }
19309
19310 static int
19311 spoolss_dissect_element_DriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19312 {
19313         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo8_driver_path);
19314
19315         return offset;
19316 }
19317
19318 static int
19319 spoolss_dissect_element_DriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19320 {
19321         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_path , 0);
19322
19323         return offset;
19324 }
19325
19326 static int
19327 spoolss_dissect_element_DriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19328 {
19329         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo8_data_file);
19330
19331         return offset;
19332 }
19333
19334 static int
19335 spoolss_dissect_element_DriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19336 {
19337         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_data_file , 0);
19338
19339         return offset;
19340 }
19341
19342 static int
19343 spoolss_dissect_element_DriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19344 {
19345         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo8_config_file);
19346
19347         return offset;
19348 }
19349
19350 static int
19351 spoolss_dissect_element_DriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19352 {
19353         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_config_file , 0);
19354
19355         return offset;
19356 }
19357
19358 static int
19359 spoolss_dissect_element_DriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19360 {
19361         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo8_help_file);
19362
19363         return offset;
19364 }
19365
19366 static int
19367 spoolss_dissect_element_DriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19368 {
19369         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_help_file , 0);
19370
19371         return offset;
19372 }
19373
19374 static int
19375 spoolss_dissect_element_DriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19376 {
19377         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo8_dependent_files);
19378
19379         return offset;
19380 }
19381
19382 static int
19383 spoolss_dissect_element_DriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19384 {
19385         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_dependent_files,0);
19386
19387         return offset;
19388 }
19389
19390 static int
19391 spoolss_dissect_element_DriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19392 {
19393         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo8_monitor_name);
19394
19395         return offset;
19396 }
19397
19398 static int
19399 spoolss_dissect_element_DriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19400 {
19401         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_monitor_name , 0);
19402
19403         return offset;
19404 }
19405
19406 static int
19407 spoolss_dissect_element_DriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19408 {
19409         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo8_default_datatype);
19410
19411         return offset;
19412 }
19413
19414 static int
19415 spoolss_dissect_element_DriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19416 {
19417         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_default_datatype , 0);
19418
19419         return offset;
19420 }
19421
19422 static int
19423 spoolss_dissect_element_DriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19424 {
19425         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo8_previous_names);
19426
19427         return offset;
19428 }
19429
19430 static int
19431 spoolss_dissect_element_DriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19432 {
19433         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_previous_names,0);
19434
19435         return offset;
19436 }
19437
19438 static int
19439 spoolss_dissect_element_DriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19440 {
19441         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_date);
19442
19443         return offset;
19444 }
19445
19446 static int
19447 spoolss_dissect_element_DriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19448 {
19449         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_version, NULL);
19450
19451         return offset;
19452 }
19453
19454 static int
19455 spoolss_dissect_element_DriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19456 {
19457         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_manufacturer_name_, , "Pointer to Manufacturer Name (string)",hf_spoolss_spoolss_DriverInfo8_manufacturer_name);
19458
19459         return offset;
19460 }
19461
19462 static int
19463 spoolss_dissect_element_DriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19464 {
19465         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_manufacturer_name , 0);
19466
19467         return offset;
19468 }
19469
19470 static int
19471 spoolss_dissect_element_DriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19472 {
19473         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_manufacturer_url_, , "Pointer to Manufacturer Url (string)",hf_spoolss_spoolss_DriverInfo8_manufacturer_url);
19474
19475         return offset;
19476 }
19477
19478 static int
19479 spoolss_dissect_element_DriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19480 {
19481         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_manufacturer_url , 0);
19482
19483         return offset;
19484 }
19485
19486 static int
19487 spoolss_dissect_element_DriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19488 {
19489         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_hardware_id_, , "Pointer to Hardware Id (string)",hf_spoolss_spoolss_DriverInfo8_hardware_id);
19490
19491         return offset;
19492 }
19493
19494 static int
19495 spoolss_dissect_element_DriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19496 {
19497         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_hardware_id , 0);
19498
19499         return offset;
19500 }
19501
19502 static int
19503 spoolss_dissect_element_DriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19504 {
19505         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_provider_, , "Pointer to Provider (string)",hf_spoolss_spoolss_DriverInfo8_provider);
19506
19507         return offset;
19508 }
19509
19510 static int
19511 spoolss_dissect_element_DriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19512 {
19513         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_provider , 0);
19514
19515         return offset;
19516 }
19517
19518 static int
19519 spoolss_dissect_element_DriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19520 {
19521         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_print_processor_, , "Pointer to Print Processor (string)",hf_spoolss_spoolss_DriverInfo8_print_processor);
19522
19523         return offset;
19524 }
19525
19526 static int
19527 spoolss_dissect_element_DriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19528 {
19529         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_print_processor , 0);
19530
19531         return offset;
19532 }
19533
19534 static int
19535 spoolss_dissect_element_DriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19536 {
19537         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_vendor_setup_, , "Pointer to Vendor Setup (string)",hf_spoolss_spoolss_DriverInfo8_vendor_setup);
19538
19539         return offset;
19540 }
19541
19542 static int
19543 spoolss_dissect_element_DriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19544 {
19545         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_vendor_setup , 0);
19546
19547         return offset;
19548 }
19549
19550 static int
19551 spoolss_dissect_element_DriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19552 {
19553         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_color_profiles_, , "Pointer to Color Profiles (string_array)",hf_spoolss_spoolss_DriverInfo8_color_profiles);
19554
19555         return offset;
19556 }
19557
19558 static int
19559 spoolss_dissect_element_DriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19560 {
19561         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_color_profiles,0);
19562
19563         return offset;
19564 }
19565
19566 static int
19567 spoolss_dissect_element_DriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19568 {
19569         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_inf_path_, , "Pointer to Inf Path (string)",hf_spoolss_spoolss_DriverInfo8_inf_path);
19570
19571         return offset;
19572 }
19573
19574 static int
19575 spoolss_dissect_element_DriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19576 {
19577         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_inf_path , 0);
19578
19579         return offset;
19580 }
19581
19582 static int
19583 spoolss_dissect_element_DriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19584 {
19585         offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_printer_driver_attributes, 0);
19586
19587         return offset;
19588 }
19589
19590 static int
19591 spoolss_dissect_element_DriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19592 {
19593         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_core_driver_dependencies_, , "Pointer to Core Driver Dependencies (string_array)",hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies);
19594
19595         return offset;
19596 }
19597
19598 static int
19599 spoolss_dissect_element_DriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19600 {
19601         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies,0);
19602
19603         return offset;
19604 }
19605
19606 static int
19607 spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19608 {
19609         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_date);
19610
19611         return offset;
19612 }
19613
19614 static int
19615 spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19616 {
19617         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_version, NULL);
19618
19619         return offset;
19620 }
19621
19622 int
19623 spoolss_dissect_struct_DriverInfo8(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_)
19624 {
19625         proto_item *item = NULL;
19626         proto_tree *tree = NULL;
19627         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
19628         int old_offset;
19629
19630         ALIGN_TO_8_BYTES;
19631
19632         old_offset = offset;
19633
19634         if (parent_tree) {
19635                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
19636                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo8);
19637         }
19638         
19639         offset = spoolss_dissect_element_DriverInfo8_version(tvb, offset, pinfo, tree, drep);
19640
19641         offset = spoolss_dissect_element_DriverInfo8_driver_name(tvb, offset, pinfo, tree, drep);
19642
19643         offset = spoolss_dissect_element_DriverInfo8_architecture(tvb, offset, pinfo, tree, drep);
19644
19645         offset = spoolss_dissect_element_DriverInfo8_driver_path(tvb, offset, pinfo, tree, drep);
19646
19647         offset = spoolss_dissect_element_DriverInfo8_data_file(tvb, offset, pinfo, tree, drep);
19648
19649         offset = spoolss_dissect_element_DriverInfo8_config_file(tvb, offset, pinfo, tree, drep);
19650
19651         offset = spoolss_dissect_element_DriverInfo8_help_file(tvb, offset, pinfo, tree, drep);
19652
19653         offset = spoolss_dissect_element_DriverInfo8_dependent_files(tvb, offset, pinfo, tree, drep);
19654
19655         offset = spoolss_dissect_element_DriverInfo8_monitor_name(tvb, offset, pinfo, tree, drep);
19656
19657         offset = spoolss_dissect_element_DriverInfo8_default_datatype(tvb, offset, pinfo, tree, drep);
19658
19659         offset = spoolss_dissect_element_DriverInfo8_previous_names(tvb, offset, pinfo, tree, drep);
19660
19661         offset = spoolss_dissect_element_DriverInfo8_driver_date(tvb, offset, pinfo, tree, drep);
19662
19663         offset = spoolss_dissect_element_DriverInfo8_driver_version(tvb, offset, pinfo, tree, drep);
19664
19665         offset = spoolss_dissect_element_DriverInfo8_manufacturer_name(tvb, offset, pinfo, tree, drep);
19666
19667         offset = spoolss_dissect_element_DriverInfo8_manufacturer_url(tvb, offset, pinfo, tree, drep);
19668
19669         offset = spoolss_dissect_element_DriverInfo8_hardware_id(tvb, offset, pinfo, tree, drep);
19670
19671         offset = spoolss_dissect_element_DriverInfo8_provider(tvb, offset, pinfo, tree, drep);
19672
19673         offset = spoolss_dissect_element_DriverInfo8_print_processor(tvb, offset, pinfo, tree, drep);
19674
19675         offset = spoolss_dissect_element_DriverInfo8_vendor_setup(tvb, offset, pinfo, tree, drep);
19676
19677         offset = spoolss_dissect_element_DriverInfo8_color_profiles(tvb, offset, pinfo, tree, drep);
19678
19679         offset = spoolss_dissect_element_DriverInfo8_inf_path(tvb, offset, pinfo, tree, drep);
19680
19681         offset = spoolss_dissect_element_DriverInfo8_printer_driver_attributes(tvb, offset, pinfo, tree, drep);
19682
19683         offset = spoolss_dissect_element_DriverInfo8_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
19684
19685         offset = spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_date(tvb, offset, pinfo, tree, drep);
19686
19687         offset = spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_version(tvb, offset, pinfo, tree, drep);
19688
19689
19690         proto_item_set_len(item, offset-old_offset);
19691
19692
19693         if (di->call_data->flags & DCERPC_IS_NDR64) {
19694                 ALIGN_TO_8_BYTES;
19695         }
19696
19697         return offset;
19698 }
19699
19700
19701 /* IDL: enum { */
19702 /* IDL:         SPOOLSS_DRIVER_FILE_TYPE_RENDERING=0x00000000, */
19703 /* IDL:         SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION=0x00000001, */
19704 /* IDL:         SPOOLSS_DRIVER_FILE_TYPE_DATA=0x00000002, */
19705 /* IDL:         SPOOLSS_DRIVER_FILE_TYPE_HELP=0x00000003, */
19706 /* IDL:         SPOOLSS_DRIVER_FILE_TYPE_OTHER=0x00000004, */
19707 /* IDL: } */
19708
19709 int
19710 spoolss_dissect_enum_DriverFileType(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_)
19711 {
19712         guint32 parameter=0;
19713         if(param){
19714                 parameter=(guint32)*param;
19715         }
19716         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
19717         if(param){
19718                 *param=(guint32)parameter;
19719         }
19720         return offset;
19721 }
19722
19723
19724 /* IDL: struct { */
19725 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *file_name; */
19726 /* IDL:         spoolss_DriverFileType file_type; */
19727 /* IDL:         uint32 file_version; */
19728 /* IDL: } */
19729
19730 static int
19731 spoolss_dissect_element_DriverFileInfo_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19732 {
19733         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverFileInfo_file_name_, , "Pointer to File Name (string)",hf_spoolss_spoolss_DriverFileInfo_file_name);
19734
19735         return offset;
19736 }
19737
19738 static int
19739 spoolss_dissect_element_DriverFileInfo_file_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19740 {
19741         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverFileInfo_file_name , 0);
19742
19743         return offset;
19744 }
19745
19746 static int
19747 spoolss_dissect_element_DriverFileInfo_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19748 {
19749         offset = spoolss_dissect_enum_DriverFileType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverFileInfo_file_type, 0);
19750
19751         return offset;
19752 }
19753
19754 static int
19755 spoolss_dissect_element_DriverFileInfo_file_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19756 {
19757         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverFileInfo_file_version, 0);
19758
19759         return offset;
19760 }
19761
19762 int
19763 spoolss_dissect_struct_DriverFileInfo(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_)
19764 {
19765         proto_item *item = NULL;
19766         proto_tree *tree = NULL;
19767         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
19768         int old_offset;
19769
19770         ALIGN_TO_5_BYTES;
19771
19772         old_offset = offset;
19773
19774         if (parent_tree) {
19775                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
19776                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverFileInfo);
19777         }
19778         
19779         offset = spoolss_dissect_element_DriverFileInfo_file_name(tvb, offset, pinfo, tree, drep);
19780
19781         offset = spoolss_dissect_element_DriverFileInfo_file_type(tvb, offset, pinfo, tree, drep);
19782
19783         offset = spoolss_dissect_element_DriverFileInfo_file_version(tvb, offset, pinfo, tree, drep);
19784
19785
19786         proto_item_set_len(item, offset-old_offset);
19787
19788
19789         if (di->call_data->flags & DCERPC_IS_NDR64) {
19790                 ALIGN_TO_5_BYTES;
19791         }
19792
19793         return offset;
19794 }
19795
19796
19797 /* IDL: struct { */
19798 /* IDL:         spoolss_DriverOSVersion version; */
19799 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
19800 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
19801 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_ALIGN4)] [size_is(file_count)] spoolss_DriverFileInfo *file_info; */
19802 /* IDL:         uint32 file_count; */
19803 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
19804 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
19805 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
19806 /* IDL:         NTTIME driver_date; */
19807 /* IDL:         hyper driver_version; */
19808 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_name; */
19809 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_url; */
19810 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *hardware_id; */
19811 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *provider; */
19812 /* IDL: } */
19813
19814 static int
19815 spoolss_dissect_element_DriverInfo101_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19816 {
19817         offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_version, 0);
19818
19819         return offset;
19820 }
19821
19822 static int
19823 spoolss_dissect_element_DriverInfo101_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19824 {
19825         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo101_driver_name);
19826
19827         return offset;
19828 }
19829
19830 static int
19831 spoolss_dissect_element_DriverInfo101_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19832 {
19833         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_driver_name , 0);
19834
19835         return offset;
19836 }
19837
19838 static int
19839 spoolss_dissect_element_DriverInfo101_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19840 {
19841         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo101_architecture);
19842
19843         return offset;
19844 }
19845
19846 static int
19847 spoolss_dissect_element_DriverInfo101_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19848 {
19849         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_architecture , 0);
19850
19851         return offset;
19852 }
19853
19854 static int
19855 spoolss_dissect_element_DriverInfo101_file_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19856 {
19857         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_file_info_, , "Pointer to File Info (spoolss_DriverFileInfo)",hf_spoolss_spoolss_DriverInfo101_file_info);
19858
19859         return offset;
19860 }
19861
19862 static int
19863 spoolss_dissect_element_DriverInfo101_file_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19864 {
19865         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_file_info__);
19866
19867         return offset;
19868 }
19869
19870 static int
19871 spoolss_dissect_element_DriverInfo101_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19872 {
19873         offset = spoolss_dissect_struct_DriverFileInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo101_file_info,0);
19874
19875         return offset;
19876 }
19877
19878 static int
19879 spoolss_dissect_element_DriverInfo101_file_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19880 {
19881         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_file_count, 0);
19882
19883         return offset;
19884 }
19885
19886 static int
19887 spoolss_dissect_element_DriverInfo101_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19888 {
19889         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo101_monitor_name);
19890
19891         return offset;
19892 }
19893
19894 static int
19895 spoolss_dissect_element_DriverInfo101_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19896 {
19897         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_monitor_name , 0);
19898
19899         return offset;
19900 }
19901
19902 static int
19903 spoolss_dissect_element_DriverInfo101_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19904 {
19905         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo101_default_datatype);
19906
19907         return offset;
19908 }
19909
19910 static int
19911 spoolss_dissect_element_DriverInfo101_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19912 {
19913         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_default_datatype , 0);
19914
19915         return offset;
19916 }
19917
19918 static int
19919 spoolss_dissect_element_DriverInfo101_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19920 {
19921         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo101_previous_names);
19922
19923         return offset;
19924 }
19925
19926 static int
19927 spoolss_dissect_element_DriverInfo101_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19928 {
19929         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo101_previous_names,0);
19930
19931         return offset;
19932 }
19933
19934 static int
19935 spoolss_dissect_element_DriverInfo101_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19936 {
19937         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_driver_date);
19938
19939         return offset;
19940 }
19941
19942 static int
19943 spoolss_dissect_element_DriverInfo101_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19944 {
19945         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_driver_version, NULL);
19946
19947         return offset;
19948 }
19949
19950 static int
19951 spoolss_dissect_element_DriverInfo101_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19952 {
19953         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_manufacturer_name_, , "Pointer to Manufacturer Name (string)",hf_spoolss_spoolss_DriverInfo101_manufacturer_name);
19954
19955         return offset;
19956 }
19957
19958 static int
19959 spoolss_dissect_element_DriverInfo101_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19960 {
19961         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_manufacturer_name , 0);
19962
19963         return offset;
19964 }
19965
19966 static int
19967 spoolss_dissect_element_DriverInfo101_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19968 {
19969         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_manufacturer_url_, , "Pointer to Manufacturer Url (string)",hf_spoolss_spoolss_DriverInfo101_manufacturer_url);
19970
19971         return offset;
19972 }
19973
19974 static int
19975 spoolss_dissect_element_DriverInfo101_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19976 {
19977         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_manufacturer_url , 0);
19978
19979         return offset;
19980 }
19981
19982 static int
19983 spoolss_dissect_element_DriverInfo101_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19984 {
19985         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_hardware_id_, , "Pointer to Hardware Id (string)",hf_spoolss_spoolss_DriverInfo101_hardware_id);
19986
19987         return offset;
19988 }
19989
19990 static int
19991 spoolss_dissect_element_DriverInfo101_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
19992 {
19993         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_hardware_id , 0);
19994
19995         return offset;
19996 }
19997
19998 static int
19999 spoolss_dissect_element_DriverInfo101_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20000 {
20001         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_provider_, , "Pointer to Provider (string)",hf_spoolss_spoolss_DriverInfo101_provider);
20002
20003         return offset;
20004 }
20005
20006 static int
20007 spoolss_dissect_element_DriverInfo101_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20008 {
20009         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_provider , 0);
20010
20011         return offset;
20012 }
20013
20014 int
20015 spoolss_dissect_struct_DriverInfo101(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_)
20016 {
20017         proto_item *item = NULL;
20018         proto_tree *tree = NULL;
20019         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20020         int old_offset;
20021
20022         ALIGN_TO_8_BYTES;
20023
20024         old_offset = offset;
20025
20026         if (parent_tree) {
20027                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20028                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo101);
20029         }
20030         
20031         offset = spoolss_dissect_element_DriverInfo101_version(tvb, offset, pinfo, tree, drep);
20032
20033         offset = spoolss_dissect_element_DriverInfo101_driver_name(tvb, offset, pinfo, tree, drep);
20034
20035         offset = spoolss_dissect_element_DriverInfo101_architecture(tvb, offset, pinfo, tree, drep);
20036
20037         offset = spoolss_dissect_element_DriverInfo101_file_info(tvb, offset, pinfo, tree, drep);
20038
20039         offset = spoolss_dissect_element_DriverInfo101_file_count(tvb, offset, pinfo, tree, drep);
20040
20041         offset = spoolss_dissect_element_DriverInfo101_monitor_name(tvb, offset, pinfo, tree, drep);
20042
20043         offset = spoolss_dissect_element_DriverInfo101_default_datatype(tvb, offset, pinfo, tree, drep);
20044
20045         offset = spoolss_dissect_element_DriverInfo101_previous_names(tvb, offset, pinfo, tree, drep);
20046
20047         offset = spoolss_dissect_element_DriverInfo101_driver_date(tvb, offset, pinfo, tree, drep);
20048
20049         offset = spoolss_dissect_element_DriverInfo101_driver_version(tvb, offset, pinfo, tree, drep);
20050
20051         offset = spoolss_dissect_element_DriverInfo101_manufacturer_name(tvb, offset, pinfo, tree, drep);
20052
20053         offset = spoolss_dissect_element_DriverInfo101_manufacturer_url(tvb, offset, pinfo, tree, drep);
20054
20055         offset = spoolss_dissect_element_DriverInfo101_hardware_id(tvb, offset, pinfo, tree, drep);
20056
20057         offset = spoolss_dissect_element_DriverInfo101_provider(tvb, offset, pinfo, tree, drep);
20058
20059
20060         proto_item_set_len(item, offset-old_offset);
20061
20062
20063         if (di->call_data->flags & DCERPC_IS_NDR64) {
20064                 ALIGN_TO_8_BYTES;
20065         }
20066
20067         return offset;
20068 }
20069
20070
20071 /* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
20072 /* IDL: [case(1)] [case(1)] spoolss_DriverInfo1 info1; */
20073 /* IDL: [case(2)] [case(2)] spoolss_DriverInfo2 info2; */
20074 /* IDL: [case(3)] [case(3)] spoolss_DriverInfo3 info3; */
20075 /* IDL: [case(4)] [case(4)] spoolss_DriverInfo4 info4; */
20076 /* IDL: [case(5)] [case(5)] spoolss_DriverInfo5 info5; */
20077 /* IDL: [case(6)] [case(6)] spoolss_DriverInfo6 info6; */
20078 /* IDL: [case(7)] [case(7)] spoolss_DriverInfo7 info7; */
20079 /* IDL: [case(8)] [case(8)] spoolss_DriverInfo8 info8; */
20080 /* IDL: [case(101)] [case(101)] spoolss_DriverInfo101 info101; */
20081 /* IDL: [default] ; */
20082 /* IDL: } */
20083
20084 static int
20085 spoolss_dissect_element_DriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20086 {
20087         offset = spoolss_dissect_struct_DriverInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info1,0);
20088
20089         return offset;
20090 }
20091
20092 static int
20093 spoolss_dissect_element_DriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20094 {
20095         offset = spoolss_dissect_struct_DriverInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info2,0);
20096
20097         return offset;
20098 }
20099
20100 static int
20101 spoolss_dissect_element_DriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20102 {
20103         offset = spoolss_dissect_struct_DriverInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info3,0);
20104
20105         return offset;
20106 }
20107
20108 static int
20109 spoolss_dissect_element_DriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20110 {
20111         offset = spoolss_dissect_struct_DriverInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info4,0);
20112
20113         return offset;
20114 }
20115
20116 static int
20117 spoolss_dissect_element_DriverInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20118 {
20119         offset = spoolss_dissect_struct_DriverInfo5(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info5,0);
20120
20121         return offset;
20122 }
20123
20124 static int
20125 spoolss_dissect_element_DriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20126 {
20127         offset = spoolss_dissect_struct_DriverInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info6,0);
20128
20129         return offset;
20130 }
20131
20132 static int
20133 spoolss_dissect_element_DriverInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20134 {
20135         offset = spoolss_dissect_struct_DriverInfo7(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info7,0);
20136
20137         return offset;
20138 }
20139
20140 static int
20141 spoolss_dissect_element_DriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20142 {
20143         offset = spoolss_dissect_struct_DriverInfo8(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info8,0);
20144
20145         return offset;
20146 }
20147
20148 static int
20149 spoolss_dissect_element_DriverInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20150 {
20151         offset = spoolss_dissect_struct_DriverInfo101(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info101,0);
20152
20153         return offset;
20154 }
20155
20156 static int
20157 spoolss_dissect_DriverInfo(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_)
20158 {
20159         proto_item *item = NULL;
20160         proto_tree *tree = NULL;
20161         int old_offset;
20162         guint32 level = param;
20163
20164         old_offset = offset;
20165         if (parent_tree) {
20166                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DriverInfo");
20167                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo);
20168         }
20169
20170         switch(level) {
20171                 case 1:
20172                         offset = spoolss_dissect_element_DriverInfo_info1(tvb, offset, pinfo, tree, drep);
20173                 break;
20174
20175                 case 2:
20176                         offset = spoolss_dissect_element_DriverInfo_info2(tvb, offset, pinfo, tree, drep);
20177                 break;
20178
20179                 case 3:
20180                         offset = spoolss_dissect_element_DriverInfo_info3(tvb, offset, pinfo, tree, drep);
20181                 break;
20182
20183                 case 4:
20184                         offset = spoolss_dissect_element_DriverInfo_info4(tvb, offset, pinfo, tree, drep);
20185                 break;
20186
20187                 case 5:
20188                         offset = spoolss_dissect_element_DriverInfo_info5(tvb, offset, pinfo, tree, drep);
20189                 break;
20190
20191                 case 6:
20192                         offset = spoolss_dissect_element_DriverInfo_info6(tvb, offset, pinfo, tree, drep);
20193                 break;
20194
20195                 case 7:
20196                         offset = spoolss_dissect_element_DriverInfo_info7(tvb, offset, pinfo, tree, drep);
20197                 break;
20198
20199                 case 8:
20200                         offset = spoolss_dissect_element_DriverInfo_info8(tvb, offset, pinfo, tree, drep);
20201                 break;
20202
20203                 case 101:
20204                         offset = spoolss_dissect_element_DriverInfo_info101(tvb, offset, pinfo, tree, drep);
20205                 break;
20206
20207                 default:
20208                 break;
20209         }
20210         proto_item_set_len(item, offset-old_offset);
20211
20212
20213         return offset;
20214 }
20215
20216 /* IDL: struct { */
20217 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string directory_name; */
20218 /* IDL: } */
20219
20220 static int
20221 spoolss_dissect_element_DriverDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20222 {
20223         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverDirectoryInfo1_directory_name , 0);
20224
20225         return offset;
20226 }
20227
20228 int
20229 spoolss_dissect_struct_DriverDirectoryInfo1(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_)
20230 {
20231         proto_item *item = NULL;
20232         proto_tree *tree = NULL;
20233         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20234         int old_offset;
20235
20236         ALIGN_TO_4_BYTES;
20237
20238         old_offset = offset;
20239
20240         if (parent_tree) {
20241                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20242                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverDirectoryInfo1);
20243         }
20244         
20245         offset = spoolss_dissect_element_DriverDirectoryInfo1_directory_name(tvb, offset, pinfo, tree, drep);
20246
20247
20248         proto_item_set_len(item, offset-old_offset);
20249
20250
20251         if (di->call_data->flags & DCERPC_IS_NDR64) {
20252                 ALIGN_TO_4_BYTES;
20253         }
20254
20255         return offset;
20256 }
20257
20258
20259 /* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
20260 /* IDL: [case(1)] [case(1)] spoolss_DriverDirectoryInfo1 info1; */
20261 /* IDL: [default] ; */
20262 /* IDL: } */
20263
20264 static int
20265 spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20266 {
20267         offset = spoolss_dissect_struct_DriverDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverDirectoryInfo_info1,0);
20268
20269         return offset;
20270 }
20271
20272 static int
20273 spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20274 {
20275         offset = spoolss_dissect_struct_DriverDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverDirectoryInfo_info1,0);
20276
20277         return offset;
20278 }
20279
20280 static int
20281 spoolss_dissect_DriverDirectoryInfo(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_)
20282 {
20283         proto_item *item = NULL;
20284         proto_tree *tree = NULL;
20285         int old_offset;
20286         guint32 level = param;
20287
20288         old_offset = offset;
20289         if (parent_tree) {
20290                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DriverDirectoryInfo");
20291                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverDirectoryInfo);
20292         }
20293
20294         switch(level) {
20295                 case 1:
20296                         offset = spoolss_dissect_element_DriverDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
20297                 break;
20298
20299                 default:
20300                         offset = spoolss_dissect_element_DriverDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
20301                 break;
20302         }
20303         proto_item_set_len(item, offset-old_offset);
20304
20305
20306         return offset;
20307 }
20308
20309 /* IDL: struct { */
20310 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor_name; */
20311 /* IDL: } */
20312
20313 static int
20314 spoolss_dissect_element_PrintProcessorInfo1_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20315 {
20316         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrintProcessorInfo1_print_processor_name_, , "Pointer to Print Processor Name (string)",hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name);
20317
20318         return offset;
20319 }
20320
20321 static int
20322 spoolss_dissect_element_PrintProcessorInfo1_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20323 {
20324         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name , 0);
20325
20326         return offset;
20327 }
20328
20329 int
20330 spoolss_dissect_struct_PrintProcessorInfo1(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_)
20331 {
20332         proto_item *item = NULL;
20333         proto_tree *tree = NULL;
20334         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20335         int old_offset;
20336
20337         ALIGN_TO_5_BYTES;
20338
20339         old_offset = offset;
20340
20341         if (parent_tree) {
20342                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20343                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorInfo1);
20344         }
20345         
20346         offset = spoolss_dissect_element_PrintProcessorInfo1_print_processor_name(tvb, offset, pinfo, tree, drep);
20347
20348
20349         proto_item_set_len(item, offset-old_offset);
20350
20351
20352         if (di->call_data->flags & DCERPC_IS_NDR64) {
20353                 ALIGN_TO_5_BYTES;
20354         }
20355
20356         return offset;
20357 }
20358
20359
20360 /* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
20361 /* IDL: [case(1)] [case(1)] spoolss_PrintProcessorInfo1 info1; */
20362 /* IDL: [default] ; */
20363 /* IDL: } */
20364
20365 static int
20366 spoolss_dissect_element_PrintProcessorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20367 {
20368         offset = spoolss_dissect_struct_PrintProcessorInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcessorInfo_info1,0);
20369
20370         return offset;
20371 }
20372
20373 static int
20374 spoolss_dissect_PrintProcessorInfo(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_)
20375 {
20376         proto_item *item = NULL;
20377         proto_tree *tree = NULL;
20378         int old_offset;
20379         guint32 level = param;
20380
20381         old_offset = offset;
20382         if (parent_tree) {
20383                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrintProcessorInfo");
20384                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorInfo);
20385         }
20386
20387         switch(level) {
20388                 case 1:
20389                         offset = spoolss_dissect_element_PrintProcessorInfo_info1(tvb, offset, pinfo, tree, drep);
20390                 break;
20391
20392                 default:
20393                 break;
20394         }
20395         proto_item_set_len(item, offset-old_offset);
20396
20397
20398         return offset;
20399 }
20400
20401 /* IDL: struct { */
20402 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string directory_name; */
20403 /* IDL: } */
20404
20405 static int
20406 spoolss_dissect_element_PrintProcessorDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20407 {
20408         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrintProcessorDirectoryInfo1_directory_name , 0);
20409
20410         return offset;
20411 }
20412
20413 int
20414 spoolss_dissect_struct_PrintProcessorDirectoryInfo1(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_)
20415 {
20416         proto_item *item = NULL;
20417         proto_tree *tree = NULL;
20418         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20419         int old_offset;
20420
20421         ALIGN_TO_4_BYTES;
20422
20423         old_offset = offset;
20424
20425         if (parent_tree) {
20426                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20427                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorDirectoryInfo1);
20428         }
20429         
20430         offset = spoolss_dissect_element_PrintProcessorDirectoryInfo1_directory_name(tvb, offset, pinfo, tree, drep);
20431
20432
20433         proto_item_set_len(item, offset-old_offset);
20434
20435
20436         if (di->call_data->flags & DCERPC_IS_NDR64) {
20437                 ALIGN_TO_4_BYTES;
20438         }
20439
20440         return offset;
20441 }
20442
20443
20444 /* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
20445 /* IDL: [case(1)] [case(1)] spoolss_PrintProcessorDirectoryInfo1 info1; */
20446 /* IDL: [default] ; */
20447 /* IDL: } */
20448
20449 static int
20450 spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20451 {
20452         offset = spoolss_dissect_struct_PrintProcessorDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1,0);
20453
20454         return offset;
20455 }
20456
20457 static int
20458 spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20459 {
20460         offset = spoolss_dissect_struct_PrintProcessorDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1,0);
20461
20462         return offset;
20463 }
20464
20465 static int
20466 spoolss_dissect_PrintProcessorDirectoryInfo(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_)
20467 {
20468         proto_item *item = NULL;
20469         proto_tree *tree = NULL;
20470         int old_offset;
20471         guint32 level = param;
20472
20473         old_offset = offset;
20474         if (parent_tree) {
20475                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrintProcessorDirectoryInfo");
20476                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorDirectoryInfo);
20477         }
20478
20479         switch(level) {
20480                 case 1:
20481                         offset = spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
20482                 break;
20483
20484                 default:
20485                         offset = spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
20486                 break;
20487         }
20488         proto_item_set_len(item, offset-old_offset);
20489
20490
20491         return offset;
20492 }
20493
20494 /* IDL: struct { */
20495 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *document_name; */
20496 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *output_file; */
20497 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *datatype; */
20498 /* IDL: } */
20499
20500 static int
20501 spoolss_dissect_element_DocumentInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20502 {
20503         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo1_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_DocumentInfo1_document_name);
20504
20505         return offset;
20506 }
20507
20508 static int
20509 spoolss_dissect_element_DocumentInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20510 {
20511         char *data;
20512
20513         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DocumentInfo1_document_name, FALSE, &data);
20514         proto_item_append_text(tree, ": %s", data);
20515
20516         return offset;
20517 }
20518
20519 static int
20520 spoolss_dissect_element_DocumentInfo1_output_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20521 {
20522         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo1_output_file_, NDR_POINTER_UNIQUE, "Pointer to Output File (uint16)",hf_spoolss_spoolss_DocumentInfo1_output_file);
20523
20524         return offset;
20525 }
20526
20527 static int
20528 spoolss_dissect_element_DocumentInfo1_output_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20529 {
20530         char *data;
20531
20532         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DocumentInfo1_output_file, FALSE, &data);
20533         proto_item_append_text(tree, ": %s", data);
20534
20535         return offset;
20536 }
20537
20538 static int
20539 spoolss_dissect_element_DocumentInfo1_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20540 {
20541         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo1_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_DocumentInfo1_datatype);
20542
20543         return offset;
20544 }
20545
20546 static int
20547 spoolss_dissect_element_DocumentInfo1_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20548 {
20549         char *data;
20550
20551         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DocumentInfo1_datatype, FALSE, &data);
20552         proto_item_append_text(tree, ": %s", data);
20553
20554         return offset;
20555 }
20556
20557 int
20558 spoolss_dissect_struct_DocumentInfo1(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_)
20559 {
20560         proto_item *item = NULL;
20561         proto_tree *tree = NULL;
20562         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20563         int old_offset;
20564
20565         ALIGN_TO_5_BYTES;
20566
20567         old_offset = offset;
20568
20569         if (parent_tree) {
20570                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20571                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DocumentInfo1);
20572         }
20573         
20574         offset = spoolss_dissect_element_DocumentInfo1_document_name(tvb, offset, pinfo, tree, drep);
20575
20576         offset = spoolss_dissect_element_DocumentInfo1_output_file(tvb, offset, pinfo, tree, drep);
20577
20578         offset = spoolss_dissect_element_DocumentInfo1_datatype(tvb, offset, pinfo, tree, drep);
20579
20580
20581         proto_item_set_len(item, offset-old_offset);
20582
20583
20584         if (di->call_data->flags & DCERPC_IS_NDR64) {
20585                 ALIGN_TO_5_BYTES;
20586         }
20587
20588         return offset;
20589 }
20590
20591
20592 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
20593 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_DocumentInfo1 *info1; */
20594 /* IDL: [case(2)] [case(2)] EMPTY ; */
20595 /* IDL: [case(3)] [case(3)] EMPTY ; */
20596 /* IDL: [default] ; */
20597 /* IDL: } */
20598
20599 static int
20600 spoolss_dissect_element_DocumentInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20601 {
20602         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_DocumentInfo1)",hf_spoolss_spoolss_DocumentInfo_info1);
20603
20604         return offset;
20605 }
20606
20607 static int
20608 spoolss_dissect_element_DocumentInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20609 {
20610         offset = spoolss_dissect_struct_DocumentInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DocumentInfo_info1,0);
20611
20612         return offset;
20613 }
20614
20615 static int
20616 spoolss_dissect_DocumentInfo(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_)
20617 {
20618         proto_item *item = NULL;
20619         proto_tree *tree = NULL;
20620         int old_offset;
20621         guint32 level;
20622
20623         old_offset = offset;
20624         if (parent_tree) {
20625                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DocumentInfo");
20626                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DocumentInfo);
20627         }
20628
20629         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
20630         ALIGN_TO_5_BYTES;
20631
20632         switch(level) {
20633                 case 1:
20634                         offset = spoolss_dissect_element_DocumentInfo_info1(tvb, offset, pinfo, tree, drep);
20635                 break;
20636
20637                 case 2:
20638                 break;
20639
20640                 case 3:
20641                 break;
20642
20643                 default:
20644                 break;
20645         }
20646         proto_item_set_len(item, offset-old_offset);
20647
20648
20649         return offset;
20650 }
20651
20652 /* IDL: struct { */
20653 /* IDL:         uint32 level; */
20654 /* IDL:         [switch_is(level)] spoolss_DocumentInfo info; */
20655 /* IDL: } */
20656
20657 static int
20658 spoolss_dissect_element_DocumentInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
20659 {
20660         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DocumentInfoCtr_level, level);
20661
20662         return offset;
20663 }
20664
20665 static int
20666 spoolss_dissect_element_DocumentInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
20667 {
20668         offset = spoolss_dissect_DocumentInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DocumentInfoCtr_info, *level);
20669
20670         return offset;
20671 }
20672
20673 int
20674 spoolss_dissect_struct_DocumentInfoCtr(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_)
20675 {
20676         g level;
20677         proto_item *item = NULL;
20678         proto_tree *tree = NULL;
20679         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20680         int old_offset;
20681
20682         ALIGN_TO_5_BYTES;
20683
20684         old_offset = offset;
20685
20686         if (parent_tree) {
20687                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20688                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DocumentInfoCtr);
20689         }
20690         
20691         offset = spoolss_dissect_element_DocumentInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
20692
20693         offset = spoolss_dissect_element_DocumentInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
20694
20695
20696         proto_item_set_len(item, offset-old_offset);
20697
20698
20699         if (di->call_data->flags & DCERPC_IS_NDR64) {
20700                 ALIGN_TO_5_BYTES;
20701         }
20702
20703         return offset;
20704 }
20705
20706
20707 /* IDL: struct { */
20708 /* IDL:         [value(ndr_size_spoolss_OSVersion(r,ndr->flags))] uint32 _ndr_size; */
20709 /* IDL:         uint32 major; */
20710 /* IDL:         uint32 minor; */
20711 /* IDL:         uint32 build; */
20712 /* IDL:         [value(2)] uint32 platform_id; */
20713 /* IDL:         [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string extra_string; */
20714 /* IDL: } */
20715
20716 static int
20717 spoolss_dissect_element_OSVersion__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20718 {
20719         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion__ndr_size, 0);
20720
20721         return offset;
20722 }
20723
20724 static int
20725 spoolss_dissect_element_OSVersion_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20726 {
20727         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_major, 0);
20728
20729         return offset;
20730 }
20731
20732 static int
20733 spoolss_dissect_element_OSVersion_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20734 {
20735         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_minor, 0);
20736
20737         return offset;
20738 }
20739
20740 static int
20741 spoolss_dissect_element_OSVersion_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20742 {
20743         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_build, 0);
20744
20745         return offset;
20746 }
20747
20748 static int
20749 spoolss_dissect_element_OSVersion_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20750 {
20751         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_platform_id, 0);
20752
20753         return offset;
20754 }
20755
20756 static int
20757 spoolss_dissect_element_OSVersion_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20758 {
20759         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
20760         guint0 size;
20761         int conformant = di->conformant_run;
20762         tvbuff_t *subtvb;
20763
20764         if (!conformant) {
20765                 guint32 saved_flags = di->call_data->flags;
20766                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_extra_string_, &size);
20767                 di->call_data->flags &= ~DCERPC_IS_NDR64;
20768                 subtvb = tvb_new_subset(tvb, offset, size, -1);
20769                 spoolss_dissect_element_OSVersion_extra_string_(subtvb, 0, pinfo, tree, drep);
20770                 offset += size;
20771                 di->call_data->flags = saved_flags;
20772         }
20773
20774         return offset;
20775 }
20776
20777 static int
20778 spoolss_dissect_element_OSVersion_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20779 {
20780         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_extra_string , 0);
20781
20782         return offset;
20783 }
20784
20785 int
20786 spoolss_dissect_struct_OSVersion(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_)
20787 {
20788         proto_item *item = NULL;
20789         proto_tree *tree = NULL;
20790         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20791         int old_offset;
20792
20793         ALIGN_TO_4_BYTES;
20794
20795         old_offset = offset;
20796
20797         if (parent_tree) {
20798                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20799                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_OSVersion);
20800         }
20801         
20802         offset = spoolss_dissect_element_OSVersion__ndr_size(tvb, offset, pinfo, tree, drep);
20803
20804         offset = spoolss_dissect_element_OSVersion_major(tvb, offset, pinfo, tree, drep);
20805
20806         offset = spoolss_dissect_element_OSVersion_minor(tvb, offset, pinfo, tree, drep);
20807
20808         offset = spoolss_dissect_element_OSVersion_build(tvb, offset, pinfo, tree, drep);
20809
20810         offset = spoolss_dissect_element_OSVersion_platform_id(tvb, offset, pinfo, tree, drep);
20811
20812         offset = spoolss_dissect_element_OSVersion_extra_string(tvb, offset, pinfo, tree, drep);
20813
20814
20815         proto_item_set_len(item, offset-old_offset);
20816
20817
20818         if (di->call_data->flags & DCERPC_IS_NDR64) {
20819                 ALIGN_TO_4_BYTES;
20820         }
20821
20822         return offset;
20823 }
20824
20825
20826 /* IDL: struct { */
20827 /* IDL:         [value(ndr_size_spoolss_OSVersionEx(r,ndr->flags))] uint32 _ndr_size; */
20828 /* IDL:         uint32 major; */
20829 /* IDL:         uint32 minor; */
20830 /* IDL:         uint32 build; */
20831 /* IDL:         [value(2)] uint32 platform_id; */
20832 /* IDL:         [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string extra_string; */
20833 /* IDL:         uint16 service_pack_major; */
20834 /* IDL:         uint16 service_pack_minor; */
20835 /* IDL:         uint16 suite_mask; */
20836 /* IDL:         uint8 product_type; */
20837 /* IDL:         uint8 reserved; */
20838 /* IDL: } */
20839
20840 static int
20841 spoolss_dissect_element_OSVersionEx__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20842 {
20843         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx__ndr_size, 0);
20844
20845         return offset;
20846 }
20847
20848 static int
20849 spoolss_dissect_element_OSVersionEx_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20850 {
20851         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_major, 0);
20852
20853         return offset;
20854 }
20855
20856 static int
20857 spoolss_dissect_element_OSVersionEx_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20858 {
20859         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_minor, 0);
20860
20861         return offset;
20862 }
20863
20864 static int
20865 spoolss_dissect_element_OSVersionEx_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20866 {
20867         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_build, 0);
20868
20869         return offset;
20870 }
20871
20872 static int
20873 spoolss_dissect_element_OSVersionEx_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20874 {
20875         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_platform_id, 0);
20876
20877         return offset;
20878 }
20879
20880 static int
20881 spoolss_dissect_element_OSVersionEx_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20882 {
20883         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
20884         guint0 size;
20885         int conformant = di->conformant_run;
20886         tvbuff_t *subtvb;
20887
20888         if (!conformant) {
20889                 guint32 saved_flags = di->call_data->flags;
20890                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_extra_string_, &size);
20891                 di->call_data->flags &= ~DCERPC_IS_NDR64;
20892                 subtvb = tvb_new_subset(tvb, offset, size, -1);
20893                 spoolss_dissect_element_OSVersionEx_extra_string_(subtvb, 0, pinfo, tree, drep);
20894                 offset += size;
20895                 di->call_data->flags = saved_flags;
20896         }
20897
20898         return offset;
20899 }
20900
20901 static int
20902 spoolss_dissect_element_OSVersionEx_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20903 {
20904         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_extra_string , 0);
20905
20906         return offset;
20907 }
20908
20909 static int
20910 spoolss_dissect_element_OSVersionEx_service_pack_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20911 {
20912         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_service_pack_major, 0);
20913
20914         return offset;
20915 }
20916
20917 static int
20918 spoolss_dissect_element_OSVersionEx_service_pack_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20919 {
20920         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_service_pack_minor, 0);
20921
20922         return offset;
20923 }
20924
20925 static int
20926 spoolss_dissect_element_OSVersionEx_suite_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20927 {
20928         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_suite_mask, 0);
20929
20930         return offset;
20931 }
20932
20933 static int
20934 spoolss_dissect_element_OSVersionEx_product_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20935 {
20936         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_product_type, 0);
20937
20938         return offset;
20939 }
20940
20941 static int
20942 spoolss_dissect_element_OSVersionEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
20943 {
20944         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_reserved, 0);
20945
20946         return offset;
20947 }
20948
20949 int
20950 spoolss_dissect_struct_OSVersionEx(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_)
20951 {
20952         proto_item *item = NULL;
20953         proto_tree *tree = NULL;
20954         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
20955         int old_offset;
20956
20957         ALIGN_TO_4_BYTES;
20958
20959         old_offset = offset;
20960
20961         if (parent_tree) {
20962                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
20963                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_OSVersionEx);
20964         }
20965         
20966         offset = spoolss_dissect_element_OSVersionEx__ndr_size(tvb, offset, pinfo, tree, drep);
20967
20968         offset = spoolss_dissect_element_OSVersionEx_major(tvb, offset, pinfo, tree, drep);
20969
20970         offset = spoolss_dissect_element_OSVersionEx_minor(tvb, offset, pinfo, tree, drep);
20971
20972         offset = spoolss_dissect_element_OSVersionEx_build(tvb, offset, pinfo, tree, drep);
20973
20974         offset = spoolss_dissect_element_OSVersionEx_platform_id(tvb, offset, pinfo, tree, drep);
20975
20976         offset = spoolss_dissect_element_OSVersionEx_extra_string(tvb, offset, pinfo, tree, drep);
20977
20978         offset = spoolss_dissect_element_OSVersionEx_service_pack_major(tvb, offset, pinfo, tree, drep);
20979
20980         offset = spoolss_dissect_element_OSVersionEx_service_pack_minor(tvb, offset, pinfo, tree, drep);
20981
20982         offset = spoolss_dissect_element_OSVersionEx_suite_mask(tvb, offset, pinfo, tree, drep);
20983
20984         offset = spoolss_dissect_element_OSVersionEx_product_type(tvb, offset, pinfo, tree, drep);
20985
20986         offset = spoolss_dissect_element_OSVersionEx_reserved(tvb, offset, pinfo, tree, drep);
20987
20988
20989         proto_item_set_len(item, offset-old_offset);
20990
20991
20992         if (di->call_data->flags & DCERPC_IS_NDR64) {
20993                 ALIGN_TO_4_BYTES;
20994         }
20995
20996         return offset;
20997 }
20998
20999
21000 /* IDL: [nodiscriminant(1)] [public(1)] union { */
21001 /* IDL: [case(REG_NONE)] [case(REG_NONE)] EMPTY ; */
21002 /* IDL: [case(REG_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_SZ)] string string; */
21003 /* IDL: [case(REG_BINARY)] [flag(LIBNDR_FLAG_REMAINING)] [case(REG_BINARY)] DATA_BLOB binary; */
21004 /* IDL: [case(REG_DWORD)] [case(REG_DWORD)] uint32 value; */
21005 /* IDL: [case(REG_MULTI_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_MULTI_SZ)] string_array string_array; */
21006 /* IDL: [default] ; */
21007 /* IDL: } */
21008
21009 static int
21010 spoolss_dissect_element_PrinterData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21011 {
21012         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_string , 0);
21013
21014         return offset;
21015 }
21016
21017 static int
21018 spoolss_dissect_element_PrinterData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21019 {
21020         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_binary, 1);
21021
21022         return offset;
21023 }
21024
21025 static int
21026 spoolss_dissect_element_PrinterData_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21027 {
21028         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_value, 0);
21029
21030         return offset;
21031 }
21032
21033 static int
21034 spoolss_dissect_element_PrinterData_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21035 {
21036         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterData_string_array,0);
21037
21038         return offset;
21039 }
21040
21041 static int
21042 spoolss_dissect_element_PrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21043 {
21044         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_data, 1);
21045
21046         return offset;
21047 }
21048
21049 static int
21050 spoolss_dissect_PrinterData(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_)
21051 {
21052         proto_item *item = NULL;
21053         proto_tree *tree = NULL;
21054         int old_offset;
21055         guint32 level = param;
21056
21057         old_offset = offset;
21058         if (parent_tree) {
21059                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrinterData");
21060                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterData);
21061         }
21062
21063         switch(level) {
21064                 case REG_NONE:
21065                 break;
21066
21067                 case REG_SZ:
21068                         offset = spoolss_dissect_element_PrinterData_string(tvb, offset, pinfo, tree, drep);
21069                 break;
21070
21071                 case REG_BINARY:
21072                         offset = spoolss_dissect_element_PrinterData_binary(tvb, offset, pinfo, tree, drep);
21073                 break;
21074
21075                 case REG_DWORD:
21076                         offset = spoolss_dissect_element_PrinterData_value(tvb, offset, pinfo, tree, drep);
21077                 break;
21078
21079                 case REG_MULTI_SZ:
21080                         offset = spoolss_dissect_element_PrinterData_string_array(tvb, offset, pinfo, tree, drep);
21081                 break;
21082
21083                 default:
21084                         offset = spoolss_dissect_element_PrinterData_data(tvb, offset, pinfo, tree, drep);
21085                 break;
21086         }
21087         proto_item_set_len(item, offset-old_offset);
21088
21089
21090         return offset;
21091 }
21092
21093 /* IDL: enum { */
21094 /* IDL:         SPOOLSS_FORM_USER=0, */
21095 /* IDL:         SPOOLSS_FORM_BUILTIN=1, */
21096 /* IDL:         SPOOLSS_FORM_PRINTER=2, */
21097 /* IDL: } */
21098
21099 int
21100 spoolss_dissect_enum_FormFlags(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_)
21101 {
21102         guint32 parameter=0;
21103         if(param){
21104                 parameter=(guint32)*param;
21105         }
21106         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
21107         if(param){
21108                 *param=(guint32)parameter;
21109         }
21110         return offset;
21111 }
21112
21113
21114 /* IDL: struct { */
21115 /* IDL:         uint32 width; */
21116 /* IDL:         uint32 height; */
21117 /* IDL: } */
21118
21119 static int
21120 spoolss_dissect_element_FormSize_width(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21121 {
21122         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormSize_width, 0);
21123
21124         return offset;
21125 }
21126
21127 static int
21128 spoolss_dissect_element_FormSize_height(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21129 {
21130         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormSize_height, 0);
21131
21132         return offset;
21133 }
21134
21135 int
21136 spoolss_dissect_struct_FormSize(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_)
21137 {
21138         proto_item *item = NULL;
21139         proto_tree *tree = NULL;
21140         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21141         int old_offset;
21142
21143         ALIGN_TO_4_BYTES;
21144
21145         old_offset = offset;
21146
21147         if (parent_tree) {
21148                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
21149                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormSize);
21150         }
21151         
21152         offset = spoolss_dissect_element_FormSize_width(tvb, offset, pinfo, tree, drep);
21153
21154         offset = spoolss_dissect_element_FormSize_height(tvb, offset, pinfo, tree, drep);
21155
21156
21157         proto_item_set_len(item, offset-old_offset);
21158
21159
21160         if (di->call_data->flags & DCERPC_IS_NDR64) {
21161                 ALIGN_TO_4_BYTES;
21162         }
21163
21164         return offset;
21165 }
21166
21167
21168 /* IDL: struct { */
21169 /* IDL:         uint32 left; */
21170 /* IDL:         uint32 top; */
21171 /* IDL:         uint32 right; */
21172 /* IDL:         uint32 bottom; */
21173 /* IDL: } */
21174
21175 static int
21176 spoolss_dissect_element_FormArea_left(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21177 {
21178         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_left, 0);
21179
21180         return offset;
21181 }
21182
21183 static int
21184 spoolss_dissect_element_FormArea_top(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21185 {
21186         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_top, 0);
21187
21188         return offset;
21189 }
21190
21191 static int
21192 spoolss_dissect_element_FormArea_right(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21193 {
21194         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_right, 0);
21195
21196         return offset;
21197 }
21198
21199 static int
21200 spoolss_dissect_element_FormArea_bottom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21201 {
21202         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_bottom, 0);
21203
21204         return offset;
21205 }
21206
21207 int
21208 spoolss_dissect_struct_FormArea(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_)
21209 {
21210         proto_item *item = NULL;
21211         proto_tree *tree = NULL;
21212         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21213         int old_offset;
21214
21215         ALIGN_TO_4_BYTES;
21216
21217         old_offset = offset;
21218
21219         if (parent_tree) {
21220                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
21221                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormArea);
21222         }
21223         
21224         offset = spoolss_dissect_element_FormArea_left(tvb, offset, pinfo, tree, drep);
21225
21226         offset = spoolss_dissect_element_FormArea_top(tvb, offset, pinfo, tree, drep);
21227
21228         offset = spoolss_dissect_element_FormArea_right(tvb, offset, pinfo, tree, drep);
21229
21230         offset = spoolss_dissect_element_FormArea_bottom(tvb, offset, pinfo, tree, drep);
21231
21232
21233         proto_item_set_len(item, offset-old_offset);
21234
21235
21236         if (di->call_data->flags & DCERPC_IS_NDR64) {
21237                 ALIGN_TO_4_BYTES;
21238         }
21239
21240         return offset;
21241 }
21242
21243
21244 /* IDL: struct { */
21245 /* IDL:         spoolss_FormFlags flags; */
21246 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *form_name; */
21247 /* IDL:         spoolss_FormSize size; */
21248 /* IDL:         spoolss_FormArea area; */
21249 /* IDL: } */
21250
21251 static int
21252 spoolss_dissect_element_FormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21253 {
21254         offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo1_flags, 0);
21255
21256         return offset;
21257 }
21258
21259 static int
21260 spoolss_dissect_element_FormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21261 {
21262         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo1_form_name_, , "Pointer to Form Name (string)",hf_spoolss_spoolss_FormInfo1_form_name);
21263
21264         return offset;
21265 }
21266
21267 static int
21268 spoolss_dissect_element_FormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21269 {
21270         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo1_form_name , 0);
21271
21272         return offset;
21273 }
21274
21275 static int
21276 spoolss_dissect_element_FormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21277 {
21278         offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo1_size,0);
21279
21280         return offset;
21281 }
21282
21283 static int
21284 spoolss_dissect_element_FormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21285 {
21286         offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo1_area,0);
21287
21288         return offset;
21289 }
21290
21291 int
21292 spoolss_dissect_struct_FormInfo1(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_)
21293 {
21294         proto_item *item = NULL;
21295         proto_tree *tree = NULL;
21296         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21297         int old_offset;
21298
21299         ALIGN_TO_5_BYTES;
21300
21301         old_offset = offset;
21302
21303         if (parent_tree) {
21304                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
21305                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormInfo1);
21306         }
21307         
21308         offset = spoolss_dissect_element_FormInfo1_flags(tvb, offset, pinfo, tree, drep);
21309
21310         offset = spoolss_dissect_element_FormInfo1_form_name(tvb, offset, pinfo, tree, drep);
21311
21312         offset = spoolss_dissect_element_FormInfo1_size(tvb, offset, pinfo, tree, drep);
21313
21314         offset = spoolss_dissect_element_FormInfo1_area(tvb, offset, pinfo, tree, drep);
21315
21316
21317         proto_item_set_len(item, offset-old_offset);
21318
21319
21320         if (di->call_data->flags & DCERPC_IS_NDR64) {
21321                 ALIGN_TO_5_BYTES;
21322         }
21323
21324         return offset;
21325 }
21326
21327
21328 /* IDL: bitmap { */
21329 /* IDL:         SPOOLSS_FORM_STRING_TYPE_NONE =  0x00000001 , */
21330 /* IDL:         SPOOLSS_FORM_STRING_TYPE_MUI_DLL =  0x00000002 , */
21331 /* IDL:         SPOOLSS_FORM_STRING_TYPE_LANG_PAIR =  0x00000004 , */
21332 /* IDL: } */
21333
21334 int
21335 spoolss_dissect_bitmap_FormStringType(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_)
21336 {
21337         proto_item *item = NULL;
21338         proto_tree *tree = NULL;
21339
21340         guint32 flags;
21341         ALIGN_TO_4_BYTES;
21342
21343         if (parent_tree) {
21344                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
21345                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_FormStringType);
21346         }
21347
21348         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
21349         proto_item_append_text(item, ": ");
21350
21351         if (!flags)
21352                 proto_item_append_text(item, "(No values set)");
21353
21354         proto_tree_add_boolean(tree, hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE, tvb, offset-4, 4, flags);
21355         if (flags&( 0x00000001 )){
21356                 proto_item_append_text(item, "SPOOLSS_FORM_STRING_TYPE_NONE");
21357                 if (flags & (~( 0x00000001 )))
21358                         proto_item_append_text(item, ", ");
21359         }
21360         flags&=(~( 0x00000001 ));
21361
21362         proto_tree_add_boolean(tree, hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL, tvb, offset-4, 4, flags);
21363         if (flags&( 0x00000002 )){
21364                 proto_item_append_text(item, "SPOOLSS_FORM_STRING_TYPE_MUI_DLL");
21365                 if (flags & (~( 0x00000002 )))
21366                         proto_item_append_text(item, ", ");
21367         }
21368         flags&=(~( 0x00000002 ));
21369
21370         proto_tree_add_boolean(tree, hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, tvb, offset-4, 4, flags);
21371         if (flags&( 0x00000004 )){
21372                 proto_item_append_text(item, "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR");
21373                 if (flags & (~( 0x00000004 )))
21374                         proto_item_append_text(item, ", ");
21375         }
21376         flags&=(~( 0x00000004 ));
21377
21378         if (flags) {
21379                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
21380         }
21381
21382         return offset;
21383 }
21384
21385
21386 /* IDL: struct { */
21387 /* IDL:         spoolss_FormFlags flags; */
21388 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *form_name; */
21389 /* IDL:         spoolss_FormSize size; */
21390 /* IDL:         spoolss_FormArea area; */
21391 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string *keyword; */
21392 /* IDL:         spoolss_FormStringType string_type; */
21393 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *mui_dll; */
21394 /* IDL:         uint32 ressource_id; */
21395 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *display_name; */
21396 /* IDL:         uint16 lang_id; */
21397 /* IDL:         uint16 unused; */
21398 /* IDL: } */
21399
21400 static int
21401 spoolss_dissect_element_FormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21402 {
21403         offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_flags, 0);
21404
21405         return offset;
21406 }
21407
21408 static int
21409 spoolss_dissect_element_FormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21410 {
21411         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_form_name_, , "Pointer to Form Name (string)",hf_spoolss_spoolss_FormInfo2_form_name);
21412
21413         return offset;
21414 }
21415
21416 static int
21417 spoolss_dissect_element_FormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21418 {
21419         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_form_name , 0);
21420
21421         return offset;
21422 }
21423
21424 static int
21425 spoolss_dissect_element_FormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21426 {
21427         offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo2_size,0);
21428
21429         return offset;
21430 }
21431
21432 static int
21433 spoolss_dissect_element_FormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21434 {
21435         offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo2_area,0);
21436
21437         return offset;
21438 }
21439
21440 static int
21441 spoolss_dissect_element_FormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21442 {
21443         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_keyword_, , "Pointer to Keyword (string)",hf_spoolss_spoolss_FormInfo2_keyword);
21444
21445         return offset;
21446 }
21447
21448 static int
21449 spoolss_dissect_element_FormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21450 {
21451         offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_keyword , 0);
21452
21453         return offset;
21454 }
21455
21456 static int
21457 spoolss_dissect_element_FormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21458 {
21459         offset = spoolss_dissect_bitmap_FormStringType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_string_type, 0);
21460
21461         return offset;
21462 }
21463
21464 static int
21465 spoolss_dissect_element_FormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21466 {
21467         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_mui_dll_, , "Pointer to Mui Dll (string)",hf_spoolss_spoolss_FormInfo2_mui_dll);
21468
21469         return offset;
21470 }
21471
21472 static int
21473 spoolss_dissect_element_FormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21474 {
21475         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_mui_dll , 0);
21476
21477         return offset;
21478 }
21479
21480 static int
21481 spoolss_dissect_element_FormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21482 {
21483         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_ressource_id, 0);
21484
21485         return offset;
21486 }
21487
21488 static int
21489 spoolss_dissect_element_FormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21490 {
21491         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_display_name_, , "Pointer to Display Name (string)",hf_spoolss_spoolss_FormInfo2_display_name);
21492
21493         return offset;
21494 }
21495
21496 static int
21497 spoolss_dissect_element_FormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21498 {
21499         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_display_name , 0);
21500
21501         return offset;
21502 }
21503
21504 static int
21505 spoolss_dissect_element_FormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21506 {
21507         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_lang_id, 0);
21508
21509         return offset;
21510 }
21511
21512 static int
21513 spoolss_dissect_element_FormInfo2_unused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21514 {
21515         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_unused, 0);
21516
21517         return offset;
21518 }
21519
21520 int
21521 spoolss_dissect_struct_FormInfo2(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_)
21522 {
21523         proto_item *item = NULL;
21524         proto_tree *tree = NULL;
21525         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21526         int old_offset;
21527
21528         ALIGN_TO_5_BYTES;
21529
21530         old_offset = offset;
21531
21532         if (parent_tree) {
21533                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
21534                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormInfo2);
21535         }
21536         
21537         offset = spoolss_dissect_element_FormInfo2_flags(tvb, offset, pinfo, tree, drep);
21538
21539         offset = spoolss_dissect_element_FormInfo2_form_name(tvb, offset, pinfo, tree, drep);
21540
21541         offset = spoolss_dissect_element_FormInfo2_size(tvb, offset, pinfo, tree, drep);
21542
21543         offset = spoolss_dissect_element_FormInfo2_area(tvb, offset, pinfo, tree, drep);
21544
21545         offset = spoolss_dissect_element_FormInfo2_keyword(tvb, offset, pinfo, tree, drep);
21546
21547         offset = spoolss_dissect_element_FormInfo2_string_type(tvb, offset, pinfo, tree, drep);
21548
21549         offset = spoolss_dissect_element_FormInfo2_mui_dll(tvb, offset, pinfo, tree, drep);
21550
21551         offset = spoolss_dissect_element_FormInfo2_ressource_id(tvb, offset, pinfo, tree, drep);
21552
21553         offset = spoolss_dissect_element_FormInfo2_display_name(tvb, offset, pinfo, tree, drep);
21554
21555         offset = spoolss_dissect_element_FormInfo2_lang_id(tvb, offset, pinfo, tree, drep);
21556
21557         offset = spoolss_dissect_element_FormInfo2_unused(tvb, offset, pinfo, tree, drep);
21558
21559
21560         proto_item_set_len(item, offset-old_offset);
21561
21562
21563         if (di->call_data->flags & DCERPC_IS_NDR64) {
21564                 ALIGN_TO_5_BYTES;
21565         }
21566
21567         return offset;
21568 }
21569
21570
21571 /* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
21572 /* IDL: [case(1)] [case(1)] spoolss_FormInfo1 info1; */
21573 /* IDL: [case(2)] [case(2)] spoolss_FormInfo2 info2; */
21574 /* IDL: [default] ; */
21575 /* IDL: } */
21576
21577 static int
21578 spoolss_dissect_element_FormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21579 {
21580         offset = spoolss_dissect_struct_FormInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo_info1,0);
21581
21582         return offset;
21583 }
21584
21585 static int
21586 spoolss_dissect_element_FormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21587 {
21588         offset = spoolss_dissect_struct_FormInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo_info2,0);
21589
21590         return offset;
21591 }
21592
21593 static int
21594 spoolss_dissect_FormInfo(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_)
21595 {
21596         proto_item *item = NULL;
21597         proto_tree *tree = NULL;
21598         int old_offset;
21599         guint32 level = param;
21600
21601         old_offset = offset;
21602         if (parent_tree) {
21603                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_FormInfo");
21604                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormInfo);
21605         }
21606
21607         switch(level) {
21608                 case 1:
21609                         offset = spoolss_dissect_element_FormInfo_info1(tvb, offset, pinfo, tree, drep);
21610                 break;
21611
21612                 case 2:
21613                         offset = spoolss_dissect_element_FormInfo_info2(tvb, offset, pinfo, tree, drep);
21614                 break;
21615
21616                 default:
21617                 break;
21618         }
21619         proto_item_set_len(item, offset-old_offset);
21620
21621
21622         return offset;
21623 }
21624
21625 /* IDL: struct { */
21626 /* IDL:         spoolss_FormFlags flags; */
21627 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *form_name; */
21628 /* IDL:         spoolss_FormSize size; */
21629 /* IDL:         spoolss_FormArea area; */
21630 /* IDL: } */
21631
21632 static int
21633 spoolss_dissect_element_AddFormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21634 {
21635         offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo1_flags, 0);
21636
21637         return offset;
21638 }
21639
21640 static int
21641 spoolss_dissect_element_AddFormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21642 {
21643         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo1_form_name_, NDR_POINTER_UNIQUE, "Pointer to Form Name (uint16)",hf_spoolss_spoolss_AddFormInfo1_form_name);
21644
21645         return offset;
21646 }
21647
21648 static int
21649 spoolss_dissect_element_AddFormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21650 {
21651         char *data;
21652
21653         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo1_form_name, FALSE, &data);
21654         proto_item_append_text(tree, ": %s", data);
21655
21656         return offset;
21657 }
21658
21659 static int
21660 spoolss_dissect_element_AddFormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21661 {
21662         offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo1_size,0);
21663
21664         return offset;
21665 }
21666
21667 static int
21668 spoolss_dissect_element_AddFormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21669 {
21670         offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo1_area,0);
21671
21672         return offset;
21673 }
21674
21675 int
21676 spoolss_dissect_struct_AddFormInfo1(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_)
21677 {
21678         proto_item *item = NULL;
21679         proto_tree *tree = NULL;
21680         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21681         int old_offset;
21682
21683         ALIGN_TO_5_BYTES;
21684
21685         old_offset = offset;
21686
21687         if (parent_tree) {
21688                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
21689                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfo1);
21690         }
21691         
21692         offset = spoolss_dissect_element_AddFormInfo1_flags(tvb, offset, pinfo, tree, drep);
21693
21694         offset = spoolss_dissect_element_AddFormInfo1_form_name(tvb, offset, pinfo, tree, drep);
21695
21696         offset = spoolss_dissect_element_AddFormInfo1_size(tvb, offset, pinfo, tree, drep);
21697
21698         offset = spoolss_dissect_element_AddFormInfo1_area(tvb, offset, pinfo, tree, drep);
21699
21700
21701         proto_item_set_len(item, offset-old_offset);
21702
21703
21704         if (di->call_data->flags & DCERPC_IS_NDR64) {
21705                 ALIGN_TO_5_BYTES;
21706         }
21707
21708         return offset;
21709 }
21710
21711
21712 /* IDL: struct { */
21713 /* IDL:         spoolss_FormFlags flags; */
21714 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *form_name; */
21715 /* IDL:         spoolss_FormSize size; */
21716 /* IDL:         spoolss_FormArea area; */
21717 /* IDL:         [unique(1)] [charset(DOS)] uint8 *keyword; */
21718 /* IDL:         spoolss_FormStringType string_type; */
21719 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *mui_dll; */
21720 /* IDL:         uint32 ressource_id; */
21721 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *display_name; */
21722 /* IDL:         uint32 lang_id; */
21723 /* IDL: } */
21724
21725 static int
21726 spoolss_dissect_element_AddFormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21727 {
21728         offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_flags, 0);
21729
21730         return offset;
21731 }
21732
21733 static int
21734 spoolss_dissect_element_AddFormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21735 {
21736         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_form_name_, NDR_POINTER_UNIQUE, "Pointer to Form Name (uint16)",hf_spoolss_spoolss_AddFormInfo2_form_name);
21737
21738         return offset;
21739 }
21740
21741 static int
21742 spoolss_dissect_element_AddFormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21743 {
21744         char *data;
21745
21746         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo2_form_name, FALSE, &data);
21747         proto_item_append_text(tree, ": %s", data);
21748
21749         return offset;
21750 }
21751
21752 static int
21753 spoolss_dissect_element_AddFormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21754 {
21755         offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo2_size,0);
21756
21757         return offset;
21758 }
21759
21760 static int
21761 spoolss_dissect_element_AddFormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21762 {
21763         offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo2_area,0);
21764
21765         return offset;
21766 }
21767
21768 static int
21769 spoolss_dissect_element_AddFormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21770 {
21771         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_keyword_, NDR_POINTER_UNIQUE, "Pointer to Keyword (uint8)",hf_spoolss_spoolss_AddFormInfo2_keyword);
21772
21773         return offset;
21774 }
21775
21776 static int
21777 spoolss_dissect_element_AddFormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21778 {
21779         char *data;
21780
21781         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_spoolss_spoolss_AddFormInfo2_keyword, FALSE, &data);
21782         proto_item_append_text(tree, ": %s", data);
21783
21784         return offset;
21785 }
21786
21787 static int
21788 spoolss_dissect_element_AddFormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21789 {
21790         offset = spoolss_dissect_bitmap_FormStringType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_string_type, 0);
21791
21792         return offset;
21793 }
21794
21795 static int
21796 spoolss_dissect_element_AddFormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21797 {
21798         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_mui_dll_, NDR_POINTER_UNIQUE, "Pointer to Mui Dll (uint16)",hf_spoolss_spoolss_AddFormInfo2_mui_dll);
21799
21800         return offset;
21801 }
21802
21803 static int
21804 spoolss_dissect_element_AddFormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21805 {
21806         char *data;
21807
21808         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo2_mui_dll, FALSE, &data);
21809         proto_item_append_text(tree, ": %s", data);
21810
21811         return offset;
21812 }
21813
21814 static int
21815 spoolss_dissect_element_AddFormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21816 {
21817         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_ressource_id, 0);
21818
21819         return offset;
21820 }
21821
21822 static int
21823 spoolss_dissect_element_AddFormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21824 {
21825         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_spoolss_spoolss_AddFormInfo2_display_name);
21826
21827         return offset;
21828 }
21829
21830 static int
21831 spoolss_dissect_element_AddFormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21832 {
21833         char *data;
21834
21835         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo2_display_name, FALSE, &data);
21836         proto_item_append_text(tree, ": %s", data);
21837
21838         return offset;
21839 }
21840
21841 static int
21842 spoolss_dissect_element_AddFormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21843 {
21844         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_lang_id, 0);
21845
21846         return offset;
21847 }
21848
21849 int
21850 spoolss_dissect_struct_AddFormInfo2(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_)
21851 {
21852         proto_item *item = NULL;
21853         proto_tree *tree = NULL;
21854         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21855         int old_offset;
21856
21857         ALIGN_TO_5_BYTES;
21858
21859         old_offset = offset;
21860
21861         if (parent_tree) {
21862                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
21863                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfo2);
21864         }
21865         
21866         offset = spoolss_dissect_element_AddFormInfo2_flags(tvb, offset, pinfo, tree, drep);
21867
21868         offset = spoolss_dissect_element_AddFormInfo2_form_name(tvb, offset, pinfo, tree, drep);
21869
21870         offset = spoolss_dissect_element_AddFormInfo2_size(tvb, offset, pinfo, tree, drep);
21871
21872         offset = spoolss_dissect_element_AddFormInfo2_area(tvb, offset, pinfo, tree, drep);
21873
21874         offset = spoolss_dissect_element_AddFormInfo2_keyword(tvb, offset, pinfo, tree, drep);
21875
21876         offset = spoolss_dissect_element_AddFormInfo2_string_type(tvb, offset, pinfo, tree, drep);
21877
21878         offset = spoolss_dissect_element_AddFormInfo2_mui_dll(tvb, offset, pinfo, tree, drep);
21879
21880         offset = spoolss_dissect_element_AddFormInfo2_ressource_id(tvb, offset, pinfo, tree, drep);
21881
21882         offset = spoolss_dissect_element_AddFormInfo2_display_name(tvb, offset, pinfo, tree, drep);
21883
21884         offset = spoolss_dissect_element_AddFormInfo2_lang_id(tvb, offset, pinfo, tree, drep);
21885
21886
21887         proto_item_set_len(item, offset-old_offset);
21888
21889
21890         if (di->call_data->flags & DCERPC_IS_NDR64) {
21891                 ALIGN_TO_5_BYTES;
21892         }
21893
21894         return offset;
21895 }
21896
21897
21898 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
21899 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_AddFormInfo1 *info1; */
21900 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_AddFormInfo2 *info2; */
21901 /* IDL: } */
21902
21903 static int
21904 spoolss_dissect_element_AddFormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21905 {
21906         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_AddFormInfo1)",hf_spoolss_spoolss_AddFormInfo_info1);
21907
21908         return offset;
21909 }
21910
21911 static int
21912 spoolss_dissect_element_AddFormInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21913 {
21914         offset = spoolss_dissect_struct_AddFormInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo_info1,0);
21915
21916         return offset;
21917 }
21918
21919 static int
21920 spoolss_dissect_element_AddFormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21921 {
21922         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_AddFormInfo2)",hf_spoolss_spoolss_AddFormInfo_info2);
21923
21924         return offset;
21925 }
21926
21927 static int
21928 spoolss_dissect_element_AddFormInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
21929 {
21930         offset = spoolss_dissect_struct_AddFormInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo_info2,0);
21931
21932         return offset;
21933 }
21934
21935 static int
21936 spoolss_dissect_AddFormInfo(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_)
21937 {
21938         proto_item *item = NULL;
21939         proto_tree *tree = NULL;
21940         int old_offset;
21941         guint32 level;
21942
21943         old_offset = offset;
21944         if (parent_tree) {
21945                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_AddFormInfo");
21946                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfo);
21947         }
21948
21949         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
21950         ALIGN_TO_5_BYTES;
21951
21952         switch(level) {
21953                 case 1:
21954                         offset = spoolss_dissect_element_AddFormInfo_info1(tvb, offset, pinfo, tree, drep);
21955                 break;
21956
21957                 case 2:
21958                         offset = spoolss_dissect_element_AddFormInfo_info2(tvb, offset, pinfo, tree, drep);
21959                 break;
21960         }
21961         proto_item_set_len(item, offset-old_offset);
21962
21963
21964         return offset;
21965 }
21966
21967 /* IDL: struct { */
21968 /* IDL:         uint32 level; */
21969 /* IDL:         [switch_is(level)] spoolss_AddFormInfo info; */
21970 /* IDL: } */
21971
21972 static int
21973 spoolss_dissect_element_AddFormInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
21974 {
21975         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfoCtr_level, level);
21976
21977         return offset;
21978 }
21979
21980 static int
21981 spoolss_dissect_element_AddFormInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
21982 {
21983         offset = spoolss_dissect_AddFormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfoCtr_info, *level);
21984
21985         return offset;
21986 }
21987
21988 int
21989 spoolss_dissect_struct_AddFormInfoCtr(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_)
21990 {
21991         g level;
21992         proto_item *item = NULL;
21993         proto_tree *tree = NULL;
21994         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
21995         int old_offset;
21996
21997         ALIGN_TO_5_BYTES;
21998
21999         old_offset = offset;
22000
22001         if (parent_tree) {
22002                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22003                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfoCtr);
22004         }
22005         
22006         offset = spoolss_dissect_element_AddFormInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
22007
22008         offset = spoolss_dissect_element_AddFormInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
22009
22010
22011         proto_item_set_len(item, offset-old_offset);
22012
22013
22014         if (di->call_data->flags & DCERPC_IS_NDR64) {
22015                 ALIGN_TO_5_BYTES;
22016         }
22017
22018         return offset;
22019 }
22020
22021
22022 /* IDL: struct { */
22023 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *port_name; */
22024 /* IDL: } */
22025
22026 static int
22027 spoolss_dissect_element_PortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22028 {
22029         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo1_port_name_, , "Pointer to Port Name (string)",hf_spoolss_spoolss_PortInfo1_port_name);
22030
22031         return offset;
22032 }
22033
22034 static int
22035 spoolss_dissect_element_PortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22036 {
22037         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo1_port_name , 0);
22038
22039         return offset;
22040 }
22041
22042 int
22043 spoolss_dissect_struct_PortInfo1(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_)
22044 {
22045         proto_item *item = NULL;
22046         proto_tree *tree = NULL;
22047         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22048         int old_offset;
22049
22050         ALIGN_TO_5_BYTES;
22051
22052         old_offset = offset;
22053
22054         if (parent_tree) {
22055                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22056                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo1);
22057         }
22058         
22059         offset = spoolss_dissect_element_PortInfo1_port_name(tvb, offset, pinfo, tree, drep);
22060
22061
22062         proto_item_set_len(item, offset-old_offset);
22063
22064
22065         if (di->call_data->flags & DCERPC_IS_NDR64) {
22066                 ALIGN_TO_5_BYTES;
22067         }
22068
22069         return offset;
22070 }
22071
22072
22073 /* IDL: bitmap { */
22074 /* IDL:         SPOOLSS_PORT_TYPE_WRITE =  0x00000001 , */
22075 /* IDL:         SPOOLSS_PORT_TYPE_READ =  0x00000002 , */
22076 /* IDL:         SPOOLSS_PORT_TYPE_REDIRECTED =  0x00000004 , */
22077 /* IDL:         SPOOLSS_PORT_TYPE_NET_ATTACHED =  0x00000008 , */
22078 /* IDL: } */
22079
22080 int
22081 spoolss_dissect_bitmap_PortType(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_)
22082 {
22083         proto_item *item = NULL;
22084         proto_tree *tree = NULL;
22085
22086         guint32 flags;
22087         ALIGN_TO_4_BYTES;
22088
22089         if (parent_tree) {
22090                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
22091                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PortType);
22092         }
22093
22094         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
22095         proto_item_append_text(item, ": ");
22096
22097         if (!flags)
22098                 proto_item_append_text(item, "(No values set)");
22099
22100         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE, tvb, offset-4, 4, flags);
22101         if (flags&( 0x00000001 )){
22102                 proto_item_append_text(item, "SPOOLSS_PORT_TYPE_WRITE");
22103                 if (flags & (~( 0x00000001 )))
22104                         proto_item_append_text(item, ", ");
22105         }
22106         flags&=(~( 0x00000001 ));
22107
22108         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_READ, tvb, offset-4, 4, flags);
22109         if (flags&( 0x00000002 )){
22110                 proto_item_append_text(item, "SPOOLSS_PORT_TYPE_READ");
22111                 if (flags & (~( 0x00000002 )))
22112                         proto_item_append_text(item, ", ");
22113         }
22114         flags&=(~( 0x00000002 ));
22115
22116         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED, tvb, offset-4, 4, flags);
22117         if (flags&( 0x00000004 )){
22118                 proto_item_append_text(item, "SPOOLSS_PORT_TYPE_REDIRECTED");
22119                 if (flags & (~( 0x00000004 )))
22120                         proto_item_append_text(item, ", ");
22121         }
22122         flags&=(~( 0x00000004 ));
22123
22124         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED, tvb, offset-4, 4, flags);
22125         if (flags&( 0x00000008 )){
22126                 proto_item_append_text(item, "SPOOLSS_PORT_TYPE_NET_ATTACHED");
22127                 if (flags & (~( 0x00000008 )))
22128                         proto_item_append_text(item, ", ");
22129         }
22130         flags&=(~( 0x00000008 ));
22131
22132         if (flags) {
22133                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
22134         }
22135
22136         return offset;
22137 }
22138
22139
22140 /* IDL: struct { */
22141 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *port_name; */
22142 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
22143 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *description; */
22144 /* IDL:         spoolss_PortType port_type; */
22145 /* IDL:         uint32 reserved; */
22146 /* IDL: } */
22147
22148 static int
22149 spoolss_dissect_element_PortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22150 {
22151         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo2_port_name_, , "Pointer to Port Name (string)",hf_spoolss_spoolss_PortInfo2_port_name);
22152
22153         return offset;
22154 }
22155
22156 static int
22157 spoolss_dissect_element_PortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22158 {
22159         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_port_name , 0);
22160
22161         return offset;
22162 }
22163
22164 static int
22165 spoolss_dissect_element_PortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22166 {
22167         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo2_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_PortInfo2_monitor_name);
22168
22169         return offset;
22170 }
22171
22172 static int
22173 spoolss_dissect_element_PortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22174 {
22175         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_monitor_name , 0);
22176
22177         return offset;
22178 }
22179
22180 static int
22181 spoolss_dissect_element_PortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22182 {
22183         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo2_description_, , "Pointer to Description (string)",hf_spoolss_spoolss_PortInfo2_description);
22184
22185         return offset;
22186 }
22187
22188 static int
22189 spoolss_dissect_element_PortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22190 {
22191         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_description , 0);
22192
22193         return offset;
22194 }
22195
22196 static int
22197 spoolss_dissect_element_PortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22198 {
22199         offset = spoolss_dissect_bitmap_PortType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_port_type, 0);
22200
22201         return offset;
22202 }
22203
22204 static int
22205 spoolss_dissect_element_PortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22206 {
22207         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_reserved, 0);
22208
22209         return offset;
22210 }
22211
22212 int
22213 spoolss_dissect_struct_PortInfo2(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_)
22214 {
22215         proto_item *item = NULL;
22216         proto_tree *tree = NULL;
22217         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22218         int old_offset;
22219
22220         ALIGN_TO_5_BYTES;
22221
22222         old_offset = offset;
22223
22224         if (parent_tree) {
22225                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22226                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo2);
22227         }
22228         
22229         offset = spoolss_dissect_element_PortInfo2_port_name(tvb, offset, pinfo, tree, drep);
22230
22231         offset = spoolss_dissect_element_PortInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
22232
22233         offset = spoolss_dissect_element_PortInfo2_description(tvb, offset, pinfo, tree, drep);
22234
22235         offset = spoolss_dissect_element_PortInfo2_port_type(tvb, offset, pinfo, tree, drep);
22236
22237         offset = spoolss_dissect_element_PortInfo2_reserved(tvb, offset, pinfo, tree, drep);
22238
22239
22240         proto_item_set_len(item, offset-old_offset);
22241
22242
22243         if (di->call_data->flags & DCERPC_IS_NDR64) {
22244                 ALIGN_TO_5_BYTES;
22245         }
22246
22247         return offset;
22248 }
22249
22250
22251 /* IDL: enum { */
22252 /* IDL:         PORT_STATUS_CLEAR=0x00000000, */
22253 /* IDL:         PORT_STATUS_OFFLINE=0x00000001, */
22254 /* IDL:         PORT_STATUS_PAPER_JAM=0x00000002, */
22255 /* IDL:         PORT_STATUS_PAPER_OUT=0x00000003, */
22256 /* IDL:         PORT_STATUS_OUTPUT_BIN_FULL=0x00000004, */
22257 /* IDL:         PORT_STATUS_PAPER_PROBLEM=0x00000005, */
22258 /* IDL:         PORT_STATUS_NO_TONER=0x00000006, */
22259 /* IDL:         PORT_STATUS_DOOR_OPEN=0x00000007, */
22260 /* IDL:         PORT_STATUS_USER_INTERVENTION=0x00000008, */
22261 /* IDL:         PORT_STATUS_OUT_OF_MEMORY=0x00000009, */
22262 /* IDL:         PORT_STATUS_TONER_LOW=0x0000000A, */
22263 /* IDL:         PORT_STATUS_WARMING_UP=0x0000000B, */
22264 /* IDL:         PORT_STATUS_POWER_SAVE=0x0000000C, */
22265 /* IDL: } */
22266
22267 int
22268 spoolss_dissect_enum_PortStatus(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_)
22269 {
22270         guint32 parameter=0;
22271         if(param){
22272                 parameter=(guint32)*param;
22273         }
22274         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
22275         if(param){
22276                 *param=(guint32)parameter;
22277         }
22278         return offset;
22279 }
22280
22281
22282 /* IDL: enum { */
22283 /* IDL:         PORT_STATUS_TYPE_ERROR=0x00000001, */
22284 /* IDL:         PORT_STATUS_TYPE_WARNING=0x00000002, */
22285 /* IDL:         PORT_STATUS_TYPE_INFO=0x00000003, */
22286 /* IDL: } */
22287
22288 int
22289 spoolss_dissect_enum_PortSeverity(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_)
22290 {
22291         guint32 parameter=0;
22292         if(param){
22293                 parameter=(guint32)*param;
22294         }
22295         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
22296         if(param){
22297                 *param=(guint32)parameter;
22298         }
22299         return offset;
22300 }
22301
22302
22303 /* IDL: struct { */
22304 /* IDL:         spoolss_PortStatus status; */
22305 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *status_string; */
22306 /* IDL:         spoolss_PortSeverity severity; */
22307 /* IDL: } */
22308
22309 static int
22310 spoolss_dissect_element_PortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22311 {
22312         offset = spoolss_dissect_enum_PortStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo3_status, 0);
22313
22314         return offset;
22315 }
22316
22317 static int
22318 spoolss_dissect_element_PortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22319 {
22320         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo3_status_string_, , "Pointer to Status String (string)",hf_spoolss_spoolss_PortInfo3_status_string);
22321
22322         return offset;
22323 }
22324
22325 static int
22326 spoolss_dissect_element_PortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22327 {
22328         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo3_status_string , 0);
22329
22330         return offset;
22331 }
22332
22333 static int
22334 spoolss_dissect_element_PortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22335 {
22336         offset = spoolss_dissect_enum_PortSeverity(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo3_severity, 0);
22337
22338         return offset;
22339 }
22340
22341 int
22342 spoolss_dissect_struct_PortInfo3(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_)
22343 {
22344         proto_item *item = NULL;
22345         proto_tree *tree = NULL;
22346         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22347         int old_offset;
22348
22349         ALIGN_TO_5_BYTES;
22350
22351         old_offset = offset;
22352
22353         if (parent_tree) {
22354                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22355                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo3);
22356         }
22357         
22358         offset = spoolss_dissect_element_PortInfo3_status(tvb, offset, pinfo, tree, drep);
22359
22360         offset = spoolss_dissect_element_PortInfo3_status_string(tvb, offset, pinfo, tree, drep);
22361
22362         offset = spoolss_dissect_element_PortInfo3_severity(tvb, offset, pinfo, tree, drep);
22363
22364
22365         proto_item_set_len(item, offset-old_offset);
22366
22367
22368         if (di->call_data->flags & DCERPC_IS_NDR64) {
22369                 ALIGN_TO_5_BYTES;
22370         }
22371
22372         return offset;
22373 }
22374
22375
22376 /* IDL: struct { */
22377 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *port_name; */
22378 /* IDL:         DATA_BLOB monitor_data; */
22379 /* IDL: } */
22380
22381 static int
22382 spoolss_dissect_element_PortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22383 {
22384         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfoFF_port_name_, , "Pointer to Port Name (string)",hf_spoolss_spoolss_PortInfoFF_port_name);
22385
22386         return offset;
22387 }
22388
22389 static int
22390 spoolss_dissect_element_PortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22391 {
22392         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfoFF_port_name , 0);
22393
22394         return offset;
22395 }
22396
22397 static int
22398 spoolss_dissect_element_PortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22399 {
22400         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfoFF_monitor_data, 0);
22401
22402         return offset;
22403 }
22404
22405 int
22406 spoolss_dissect_struct_PortInfoFF(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_)
22407 {
22408         proto_item *item = NULL;
22409         proto_tree *tree = NULL;
22410         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22411         int old_offset;
22412
22413         ALIGN_TO_5_BYTES;
22414
22415         old_offset = offset;
22416
22417         if (parent_tree) {
22418                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22419                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfoFF);
22420         }
22421         
22422         offset = spoolss_dissect_element_PortInfoFF_port_name(tvb, offset, pinfo, tree, drep);
22423
22424         offset = spoolss_dissect_element_PortInfoFF_monitor_data(tvb, offset, pinfo, tree, drep);
22425
22426
22427         proto_item_set_len(item, offset-old_offset);
22428
22429
22430         if (di->call_data->flags & DCERPC_IS_NDR64) {
22431                 ALIGN_TO_5_BYTES;
22432         }
22433
22434         return offset;
22435 }
22436
22437
22438 /* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
22439 /* IDL: [case(1)] [case(1)] spoolss_PortInfo1 info1; */
22440 /* IDL: [case(2)] [case(2)] spoolss_PortInfo2 info2; */
22441 /* IDL: [case(3)] [case(3)] spoolss_PortInfo3 info3; */
22442 /* IDL: [case(0xff)] [case(0xff)] spoolss_PortInfoFF infoFF; */
22443 /* IDL: [default] ; */
22444 /* IDL: } */
22445
22446 static int
22447 spoolss_dissect_element_PortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22448 {
22449         offset = spoolss_dissect_struct_PortInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_info1,0);
22450
22451         return offset;
22452 }
22453
22454 static int
22455 spoolss_dissect_element_PortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22456 {
22457         offset = spoolss_dissect_struct_PortInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_info2,0);
22458
22459         return offset;
22460 }
22461
22462 static int
22463 spoolss_dissect_element_PortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22464 {
22465         offset = spoolss_dissect_struct_PortInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_info3,0);
22466
22467         return offset;
22468 }
22469
22470 static int
22471 spoolss_dissect_element_PortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22472 {
22473         offset = spoolss_dissect_struct_PortInfoFF(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_infoFF,0);
22474
22475         return offset;
22476 }
22477
22478 static int
22479 spoolss_dissect_PortInfo(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_)
22480 {
22481         proto_item *item = NULL;
22482         proto_tree *tree = NULL;
22483         int old_offset;
22484         guint32 level = param;
22485
22486         old_offset = offset;
22487         if (parent_tree) {
22488                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PortInfo");
22489                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo);
22490         }
22491
22492         switch(level) {
22493                 case 1:
22494                         offset = spoolss_dissect_element_PortInfo_info1(tvb, offset, pinfo, tree, drep);
22495                 break;
22496
22497                 case 2:
22498                         offset = spoolss_dissect_element_PortInfo_info2(tvb, offset, pinfo, tree, drep);
22499                 break;
22500
22501                 case 3:
22502                         offset = spoolss_dissect_element_PortInfo_info3(tvb, offset, pinfo, tree, drep);
22503                 break;
22504
22505                 case 0xff:
22506                         offset = spoolss_dissect_element_PortInfo_infoFF(tvb, offset, pinfo, tree, drep);
22507                 break;
22508
22509                 default:
22510                 break;
22511         }
22512         proto_item_set_len(item, offset-old_offset);
22513
22514
22515         return offset;
22516 }
22517
22518 /* IDL: struct { */
22519 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
22520 /* IDL: } */
22521
22522 static int
22523 spoolss_dissect_element_MonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22524 {
22525         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo1_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_MonitorInfo1_monitor_name);
22526
22527         return offset;
22528 }
22529
22530 static int
22531 spoolss_dissect_element_MonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22532 {
22533         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo1_monitor_name , 0);
22534
22535         return offset;
22536 }
22537
22538 int
22539 spoolss_dissect_struct_MonitorInfo1(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_)
22540 {
22541         proto_item *item = NULL;
22542         proto_tree *tree = NULL;
22543         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22544         int old_offset;
22545
22546         ALIGN_TO_5_BYTES;
22547
22548         old_offset = offset;
22549
22550         if (parent_tree) {
22551                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22552                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorInfo1);
22553         }
22554         
22555         offset = spoolss_dissect_element_MonitorInfo1_monitor_name(tvb, offset, pinfo, tree, drep);
22556
22557
22558         proto_item_set_len(item, offset-old_offset);
22559
22560
22561         if (di->call_data->flags & DCERPC_IS_NDR64) {
22562                 ALIGN_TO_5_BYTES;
22563         }
22564
22565         return offset;
22566 }
22567
22568
22569 /* IDL: struct { */
22570 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
22571 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *environment; */
22572 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *dll_name; */
22573 /* IDL: } */
22574
22575 static int
22576 spoolss_dissect_element_MonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22577 {
22578         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo2_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_MonitorInfo2_monitor_name);
22579
22580         return offset;
22581 }
22582
22583 static int
22584 spoolss_dissect_element_MonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22585 {
22586         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo2_monitor_name , 0);
22587
22588         return offset;
22589 }
22590
22591 static int
22592 spoolss_dissect_element_MonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22593 {
22594         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo2_environment_, , "Pointer to Environment (string)",hf_spoolss_spoolss_MonitorInfo2_environment);
22595
22596         return offset;
22597 }
22598
22599 static int
22600 spoolss_dissect_element_MonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22601 {
22602         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo2_environment , 0);
22603
22604         return offset;
22605 }
22606
22607 static int
22608 spoolss_dissect_element_MonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22609 {
22610         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo2_dll_name_, , "Pointer to Dll Name (string)",hf_spoolss_spoolss_MonitorInfo2_dll_name);
22611
22612         return offset;
22613 }
22614
22615 static int
22616 spoolss_dissect_element_MonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22617 {
22618         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo2_dll_name , 0);
22619
22620         return offset;
22621 }
22622
22623 int
22624 spoolss_dissect_struct_MonitorInfo2(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_)
22625 {
22626         proto_item *item = NULL;
22627         proto_tree *tree = NULL;
22628         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22629         int old_offset;
22630
22631         ALIGN_TO_5_BYTES;
22632
22633         old_offset = offset;
22634
22635         if (parent_tree) {
22636                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22637                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorInfo2);
22638         }
22639         
22640         offset = spoolss_dissect_element_MonitorInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
22641
22642         offset = spoolss_dissect_element_MonitorInfo2_environment(tvb, offset, pinfo, tree, drep);
22643
22644         offset = spoolss_dissect_element_MonitorInfo2_dll_name(tvb, offset, pinfo, tree, drep);
22645
22646
22647         proto_item_set_len(item, offset-old_offset);
22648
22649
22650         if (di->call_data->flags & DCERPC_IS_NDR64) {
22651                 ALIGN_TO_5_BYTES;
22652         }
22653
22654         return offset;
22655 }
22656
22657
22658 /* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
22659 /* IDL: [case(1)] [case(1)] spoolss_MonitorInfo1 info1; */
22660 /* IDL: [case(2)] [case(2)] spoolss_MonitorInfo2 info2; */
22661 /* IDL: [default] ; */
22662 /* IDL: } */
22663
22664 static int
22665 spoolss_dissect_element_MonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22666 {
22667         offset = spoolss_dissect_struct_MonitorInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_MonitorInfo_info1,0);
22668
22669         return offset;
22670 }
22671
22672 static int
22673 spoolss_dissect_element_MonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22674 {
22675         offset = spoolss_dissect_struct_MonitorInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_MonitorInfo_info2,0);
22676
22677         return offset;
22678 }
22679
22680 static int
22681 spoolss_dissect_MonitorInfo(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_)
22682 {
22683         proto_item *item = NULL;
22684         proto_tree *tree = NULL;
22685         int old_offset;
22686         guint32 level = param;
22687
22688         old_offset = offset;
22689         if (parent_tree) {
22690                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_MonitorInfo");
22691                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorInfo);
22692         }
22693
22694         switch(level) {
22695                 case 1:
22696                         offset = spoolss_dissect_element_MonitorInfo_info1(tvb, offset, pinfo, tree, drep);
22697                 break;
22698
22699                 case 2:
22700                         offset = spoolss_dissect_element_MonitorInfo_info2(tvb, offset, pinfo, tree, drep);
22701                 break;
22702
22703                 default:
22704                 break;
22705         }
22706         proto_item_set_len(item, offset-old_offset);
22707
22708
22709         return offset;
22710 }
22711
22712 /* IDL: struct { */
22713 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *port_name; */
22714 /* IDL: } */
22715
22716 static int
22717 spoolss_dissect_element_SetPortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22718 {
22719         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo1_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPortInfo1_port_name);
22720
22721         return offset;
22722 }
22723
22724 static int
22725 spoolss_dissect_element_SetPortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22726 {
22727         char *data;
22728
22729         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo1_port_name, FALSE, &data);
22730         proto_item_append_text(tree, ": %s", data);
22731
22732         return offset;
22733 }
22734
22735 int
22736 spoolss_dissect_struct_SetPortInfo1(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_)
22737 {
22738         proto_item *item = NULL;
22739         proto_tree *tree = NULL;
22740         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22741         int old_offset;
22742
22743         ALIGN_TO_5_BYTES;
22744
22745         old_offset = offset;
22746
22747         if (parent_tree) {
22748                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22749                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo1);
22750         }
22751         
22752         offset = spoolss_dissect_element_SetPortInfo1_port_name(tvb, offset, pinfo, tree, drep);
22753
22754
22755         proto_item_set_len(item, offset-old_offset);
22756
22757
22758         if (di->call_data->flags & DCERPC_IS_NDR64) {
22759                 ALIGN_TO_5_BYTES;
22760         }
22761
22762         return offset;
22763 }
22764
22765
22766 /* IDL: struct { */
22767 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *port_name; */
22768 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
22769 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *description; */
22770 /* IDL:         spoolss_PortType port_type; */
22771 /* IDL:         uint32 reserved; */
22772 /* IDL: } */
22773
22774 static int
22775 spoolss_dissect_element_SetPortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22776 {
22777         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo2_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPortInfo2_port_name);
22778
22779         return offset;
22780 }
22781
22782 static int
22783 spoolss_dissect_element_SetPortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22784 {
22785         char *data;
22786
22787         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo2_port_name, FALSE, &data);
22788         proto_item_append_text(tree, ": %s", data);
22789
22790         return offset;
22791 }
22792
22793 static int
22794 spoolss_dissect_element_SetPortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22795 {
22796         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo2_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_SetPortInfo2_monitor_name);
22797
22798         return offset;
22799 }
22800
22801 static int
22802 spoolss_dissect_element_SetPortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22803 {
22804         char *data;
22805
22806         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo2_monitor_name, FALSE, &data);
22807         proto_item_append_text(tree, ": %s", data);
22808
22809         return offset;
22810 }
22811
22812 static int
22813 spoolss_dissect_element_SetPortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22814 {
22815         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo2_description_, NDR_POINTER_UNIQUE, "Pointer to Description (uint16)",hf_spoolss_spoolss_SetPortInfo2_description);
22816
22817         return offset;
22818 }
22819
22820 static int
22821 spoolss_dissect_element_SetPortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22822 {
22823         char *data;
22824
22825         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo2_description, FALSE, &data);
22826         proto_item_append_text(tree, ": %s", data);
22827
22828         return offset;
22829 }
22830
22831 static int
22832 spoolss_dissect_element_SetPortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22833 {
22834         offset = spoolss_dissect_bitmap_PortType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo2_port_type, 0);
22835
22836         return offset;
22837 }
22838
22839 static int
22840 spoolss_dissect_element_SetPortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22841 {
22842         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo2_reserved, 0);
22843
22844         return offset;
22845 }
22846
22847 int
22848 spoolss_dissect_struct_SetPortInfo2(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_)
22849 {
22850         proto_item *item = NULL;
22851         proto_tree *tree = NULL;
22852         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22853         int old_offset;
22854
22855         ALIGN_TO_5_BYTES;
22856
22857         old_offset = offset;
22858
22859         if (parent_tree) {
22860                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22861                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo2);
22862         }
22863         
22864         offset = spoolss_dissect_element_SetPortInfo2_port_name(tvb, offset, pinfo, tree, drep);
22865
22866         offset = spoolss_dissect_element_SetPortInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
22867
22868         offset = spoolss_dissect_element_SetPortInfo2_description(tvb, offset, pinfo, tree, drep);
22869
22870         offset = spoolss_dissect_element_SetPortInfo2_port_type(tvb, offset, pinfo, tree, drep);
22871
22872         offset = spoolss_dissect_element_SetPortInfo2_reserved(tvb, offset, pinfo, tree, drep);
22873
22874
22875         proto_item_set_len(item, offset-old_offset);
22876
22877
22878         if (di->call_data->flags & DCERPC_IS_NDR64) {
22879                 ALIGN_TO_5_BYTES;
22880         }
22881
22882         return offset;
22883 }
22884
22885
22886 /* IDL: struct { */
22887 /* IDL:         spoolss_PortStatus status; */
22888 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *status_string; */
22889 /* IDL:         spoolss_PortSeverity severity; */
22890 /* IDL: } */
22891
22892 static int
22893 spoolss_dissect_element_SetPortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22894 {
22895         offset = spoolss_dissect_enum_PortStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo3_status, 0);
22896
22897         return offset;
22898 }
22899
22900 static int
22901 spoolss_dissect_element_SetPortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22902 {
22903         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo3_status_string_, NDR_POINTER_UNIQUE, "Pointer to Status String (uint16)",hf_spoolss_spoolss_SetPortInfo3_status_string);
22904
22905         return offset;
22906 }
22907
22908 static int
22909 spoolss_dissect_element_SetPortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22910 {
22911         char *data;
22912
22913         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo3_status_string, FALSE, &data);
22914         proto_item_append_text(tree, ": %s", data);
22915
22916         return offset;
22917 }
22918
22919 static int
22920 spoolss_dissect_element_SetPortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22921 {
22922         offset = spoolss_dissect_enum_PortSeverity(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo3_severity, 0);
22923
22924         return offset;
22925 }
22926
22927 int
22928 spoolss_dissect_struct_SetPortInfo3(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_)
22929 {
22930         proto_item *item = NULL;
22931         proto_tree *tree = NULL;
22932         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
22933         int old_offset;
22934
22935         ALIGN_TO_5_BYTES;
22936
22937         old_offset = offset;
22938
22939         if (parent_tree) {
22940                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
22941                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo3);
22942         }
22943         
22944         offset = spoolss_dissect_element_SetPortInfo3_status(tvb, offset, pinfo, tree, drep);
22945
22946         offset = spoolss_dissect_element_SetPortInfo3_status_string(tvb, offset, pinfo, tree, drep);
22947
22948         offset = spoolss_dissect_element_SetPortInfo3_severity(tvb, offset, pinfo, tree, drep);
22949
22950
22951         proto_item_set_len(item, offset-old_offset);
22952
22953
22954         if (di->call_data->flags & DCERPC_IS_NDR64) {
22955                 ALIGN_TO_5_BYTES;
22956         }
22957
22958         return offset;
22959 }
22960
22961
22962 /* IDL: struct { */
22963 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *port_name; */
22964 /* IDL:         DATA_BLOB monitor_data; */
22965 /* IDL: } */
22966
22967 static int
22968 spoolss_dissect_element_SetPortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22969 {
22970         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfoFF_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPortInfoFF_port_name);
22971
22972         return offset;
22973 }
22974
22975 static int
22976 spoolss_dissect_element_SetPortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22977 {
22978         char *data;
22979
22980         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfoFF_port_name, FALSE, &data);
22981         proto_item_append_text(tree, ": %s", data);
22982
22983         return offset;
22984 }
22985
22986 static int
22987 spoolss_dissect_element_SetPortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
22988 {
22989         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfoFF_monitor_data, 0);
22990
22991         return offset;
22992 }
22993
22994 int
22995 spoolss_dissect_struct_SetPortInfoFF(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_)
22996 {
22997         proto_item *item = NULL;
22998         proto_tree *tree = NULL;
22999         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23000         int old_offset;
23001
23002         ALIGN_TO_5_BYTES;
23003
23004         old_offset = offset;
23005
23006         if (parent_tree) {
23007                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23008                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfoFF);
23009         }
23010         
23011         offset = spoolss_dissect_element_SetPortInfoFF_port_name(tvb, offset, pinfo, tree, drep);
23012
23013         offset = spoolss_dissect_element_SetPortInfoFF_monitor_data(tvb, offset, pinfo, tree, drep);
23014
23015
23016         proto_item_set_len(item, offset-old_offset);
23017
23018
23019         if (di->call_data->flags & DCERPC_IS_NDR64) {
23020                 ALIGN_TO_5_BYTES;
23021         }
23022
23023         return offset;
23024 }
23025
23026
23027 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
23028 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_SetPortInfo1 *info1; */
23029 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_SetPortInfo2 *info2; */
23030 /* IDL: [case(3)] [unique(1)] [case(3)] spoolss_SetPortInfo3 *info3; */
23031 /* IDL: [case(0xff)] [unique(1)] [case(0xff)] spoolss_SetPortInfoFF *infoFF; */
23032 /* IDL: } */
23033
23034 static int
23035 spoolss_dissect_element_SetPortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23036 {
23037         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_SetPortInfo1)",hf_spoolss_spoolss_SetPortInfo_info1);
23038
23039         return offset;
23040 }
23041
23042 static int
23043 spoolss_dissect_element_SetPortInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23044 {
23045         offset = spoolss_dissect_struct_SetPortInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_info1,0);
23046
23047         return offset;
23048 }
23049
23050 static int
23051 spoolss_dissect_element_SetPortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23052 {
23053         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_SetPortInfo2)",hf_spoolss_spoolss_SetPortInfo_info2);
23054
23055         return offset;
23056 }
23057
23058 static int
23059 spoolss_dissect_element_SetPortInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23060 {
23061         offset = spoolss_dissect_struct_SetPortInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_info2,0);
23062
23063         return offset;
23064 }
23065
23066 static int
23067 spoolss_dissect_element_SetPortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23068 {
23069         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_SetPortInfo3)",hf_spoolss_spoolss_SetPortInfo_info3);
23070
23071         return offset;
23072 }
23073
23074 static int
23075 spoolss_dissect_element_SetPortInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23076 {
23077         offset = spoolss_dissect_struct_SetPortInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_info3,0);
23078
23079         return offset;
23080 }
23081
23082 static int
23083 spoolss_dissect_element_SetPortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23084 {
23085         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_infoFF_, NDR_POINTER_UNIQUE, "Pointer to Infoff (spoolss_SetPortInfoFF)",hf_spoolss_spoolss_SetPortInfo_infoFF);
23086
23087         return offset;
23088 }
23089
23090 static int
23091 spoolss_dissect_element_SetPortInfo_infoFF_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23092 {
23093         offset = spoolss_dissect_struct_SetPortInfoFF(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_infoFF,0);
23094
23095         return offset;
23096 }
23097
23098 static int
23099 spoolss_dissect_SetPortInfo(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_)
23100 {
23101         proto_item *item = NULL;
23102         proto_tree *tree = NULL;
23103         int old_offset;
23104         guint32 level;
23105
23106         old_offset = offset;
23107         if (parent_tree) {
23108                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_SetPortInfo");
23109                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo);
23110         }
23111
23112         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
23113         ALIGN_TO_5_BYTES;
23114
23115         switch(level) {
23116                 case 1:
23117                         offset = spoolss_dissect_element_SetPortInfo_info1(tvb, offset, pinfo, tree, drep);
23118                 break;
23119
23120                 case 2:
23121                         offset = spoolss_dissect_element_SetPortInfo_info2(tvb, offset, pinfo, tree, drep);
23122                 break;
23123
23124                 case 3:
23125                         offset = spoolss_dissect_element_SetPortInfo_info3(tvb, offset, pinfo, tree, drep);
23126                 break;
23127
23128                 case 0xff:
23129                         offset = spoolss_dissect_element_SetPortInfo_infoFF(tvb, offset, pinfo, tree, drep);
23130                 break;
23131         }
23132         proto_item_set_len(item, offset-old_offset);
23133
23134
23135         return offset;
23136 }
23137
23138 /* IDL: struct { */
23139 /* IDL:         uint32 level; */
23140 /* IDL:         [switch_is(level)] spoolss_SetPrinterInfo info; */
23141 /* IDL: } */
23142
23143 static int
23144 spoolss_dissect_element_SetPortInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
23145 {
23146         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfoContainer_level, level);
23147
23148         return offset;
23149 }
23150
23151 static int
23152 spoolss_dissect_element_SetPortInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
23153 {
23154         offset = spoolss_dissect_SetPrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfoContainer_info, *level);
23155
23156         return offset;
23157 }
23158
23159 int
23160 spoolss_dissect_struct_SetPortInfoContainer(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_)
23161 {
23162         g level;
23163         proto_item *item = NULL;
23164         proto_tree *tree = NULL;
23165         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23166         int old_offset;
23167
23168         ALIGN_TO_5_BYTES;
23169
23170         old_offset = offset;
23171
23172         if (parent_tree) {
23173                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23174                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfoContainer);
23175         }
23176         
23177         offset = spoolss_dissect_element_SetPortInfoContainer_level(tvb, offset, pinfo, tree, drep, &level);
23178
23179         offset = spoolss_dissect_element_SetPortInfoContainer_info(tvb, offset, pinfo, tree, drep, &level);
23180
23181
23182         proto_item_set_len(item, offset-old_offset);
23183
23184
23185         if (di->call_data->flags & DCERPC_IS_NDR64) {
23186                 ALIGN_TO_5_BYTES;
23187         }
23188
23189         return offset;
23190 }
23191
23192
23193 /* IDL: struct { */
23194 /* IDL:         uint32 Checksum; */
23195 /* IDL:         uint32 Index; */
23196 /* IDL: } */
23197
23198 static int
23199 spoolss_dissect_element_UNIVERSAL_FONT_ID_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23200 {
23201         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_UNIVERSAL_FONT_ID_Checksum, 0);
23202
23203         return offset;
23204 }
23205
23206 static int
23207 spoolss_dissect_element_UNIVERSAL_FONT_ID_Index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23208 {
23209         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_UNIVERSAL_FONT_ID_Index, 0);
23210
23211         return offset;
23212 }
23213
23214 int
23215 spoolss_dissect_struct_UNIVERSAL_FONT_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_)
23216 {
23217         proto_item *item = NULL;
23218         proto_tree *tree = NULL;
23219         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23220         int old_offset;
23221
23222         ALIGN_TO_4_BYTES;
23223
23224         old_offset = offset;
23225
23226         if (parent_tree) {
23227                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23228                 tree = proto_item_add_subtree(item, ett_spoolss_UNIVERSAL_FONT_ID);
23229         }
23230         
23231         offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_Checksum(tvb, offset, pinfo, tree, drep);
23232
23233         offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_Index(tvb, offset, pinfo, tree, drep);
23234
23235
23236         proto_item_set_len(item, offset-old_offset);
23237
23238
23239         if (di->call_data->flags & DCERPC_IS_NDR64) {
23240                 ALIGN_TO_4_BYTES;
23241         }
23242
23243         return offset;
23244 }
23245
23246
23247 /* IDL: struct { */
23248 /* IDL:         uint32 count; */
23249 /* IDL:         UNIVERSAL_FONT_ID fonts[count]; */
23250 /* IDL: } */
23251
23252 static int
23253 spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23254 {
23255         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_UNIVERSAL_FONT_ID_ctr_count, 0);
23256
23257         return offset;
23258 }
23259
23260 static int
23261 spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23262 {
23263
23264         return offset;
23265 }
23266
23267 static int
23268 spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23269 {
23270         offset = spoolss_dissect_struct_UNIVERSAL_FONT_ID(tvb,offset,pinfo,tree,drep,hf_spoolss_UNIVERSAL_FONT_ID_ctr_fonts,0);
23271
23272         return offset;
23273 }
23274
23275 int
23276 spoolss_dissect_struct_UNIVERSAL_FONT_ID_ctr(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_)
23277 {
23278         proto_item *item = NULL;
23279         proto_tree *tree = NULL;
23280         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23281         int old_offset;
23282
23283         ALIGN_TO_4_BYTES;
23284
23285         old_offset = offset;
23286
23287         if (parent_tree) {
23288                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23289                 tree = proto_item_add_subtree(item, ett_spoolss_UNIVERSAL_FONT_ID_ctr);
23290         }
23291         
23292         offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_count(tvb, offset, pinfo, tree, drep);
23293
23294         offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts(tvb, offset, pinfo, tree, drep);
23295
23296
23297         proto_item_set_len(item, offset-old_offset);
23298
23299
23300         if (di->call_data->flags & DCERPC_IS_NDR64) {
23301                 ALIGN_TO_4_BYTES;
23302         }
23303
23304         return offset;
23305 }
23306
23307
23308 /* IDL: struct { */
23309 /* IDL:         [unique(1)] [charset(URF16)] uint16 *monitor_name; */
23310 /* IDL: } */
23311
23312 static int
23313 spoolss_dissect_element_AddMonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23314 {
23315         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo1_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddMonitorInfo1_monitor_name);
23316
23317         return offset;
23318 }
23319
23320 static int
23321 spoolss_dissect_element_AddMonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23322 {
23323         char *data;
23324
23325         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo1_monitor_name, FALSE, &data);
23326         proto_item_append_text(tree, ": %s", data);
23327
23328         return offset;
23329 }
23330
23331 int
23332 spoolss_dissect_struct_AddMonitorInfo1(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_)
23333 {
23334         proto_item *item = NULL;
23335         proto_tree *tree = NULL;
23336         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23337         int old_offset;
23338
23339         ALIGN_TO_5_BYTES;
23340
23341         old_offset = offset;
23342
23343         if (parent_tree) {
23344                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23345                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddMonitorInfo1);
23346         }
23347         
23348         offset = spoolss_dissect_element_AddMonitorInfo1_monitor_name(tvb, offset, pinfo, tree, drep);
23349
23350
23351         proto_item_set_len(item, offset-old_offset);
23352
23353
23354         if (di->call_data->flags & DCERPC_IS_NDR64) {
23355                 ALIGN_TO_5_BYTES;
23356         }
23357
23358         return offset;
23359 }
23360
23361
23362 /* IDL: struct { */
23363 /* IDL:         [unique(1)] [charset(URF16)] uint16 *monitor_name; */
23364 /* IDL:         [unique(1)] [charset(URF16)] uint16 *environment; */
23365 /* IDL:         [unique(1)] [charset(URF16)] uint16 *dll_name; */
23366 /* IDL: } */
23367
23368 static int
23369 spoolss_dissect_element_AddMonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23370 {
23371         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo2_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddMonitorInfo2_monitor_name);
23372
23373         return offset;
23374 }
23375
23376 static int
23377 spoolss_dissect_element_AddMonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23378 {
23379         char *data;
23380
23381         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo2_monitor_name, FALSE, &data);
23382         proto_item_append_text(tree, ": %s", data);
23383
23384         return offset;
23385 }
23386
23387 static int
23388 spoolss_dissect_element_AddMonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23389 {
23390         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo2_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_AddMonitorInfo2_environment);
23391
23392         return offset;
23393 }
23394
23395 static int
23396 spoolss_dissect_element_AddMonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23397 {
23398         char *data;
23399
23400         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo2_environment, FALSE, &data);
23401         proto_item_append_text(tree, ": %s", data);
23402
23403         return offset;
23404 }
23405
23406 static int
23407 spoolss_dissect_element_AddMonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23408 {
23409         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo2_dll_name_, NDR_POINTER_UNIQUE, "Pointer to Dll Name (uint16)",hf_spoolss_spoolss_AddMonitorInfo2_dll_name);
23410
23411         return offset;
23412 }
23413
23414 static int
23415 spoolss_dissect_element_AddMonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23416 {
23417         char *data;
23418
23419         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo2_dll_name, FALSE, &data);
23420         proto_item_append_text(tree, ": %s", data);
23421
23422         return offset;
23423 }
23424
23425 int
23426 spoolss_dissect_struct_AddMonitorInfo2(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_)
23427 {
23428         proto_item *item = NULL;
23429         proto_tree *tree = NULL;
23430         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23431         int old_offset;
23432
23433         ALIGN_TO_5_BYTES;
23434
23435         old_offset = offset;
23436
23437         if (parent_tree) {
23438                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23439                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddMonitorInfo2);
23440         }
23441         
23442         offset = spoolss_dissect_element_AddMonitorInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
23443
23444         offset = spoolss_dissect_element_AddMonitorInfo2_environment(tvb, offset, pinfo, tree, drep);
23445
23446         offset = spoolss_dissect_element_AddMonitorInfo2_dll_name(tvb, offset, pinfo, tree, drep);
23447
23448
23449         proto_item_set_len(item, offset-old_offset);
23450
23451
23452         if (di->call_data->flags & DCERPC_IS_NDR64) {
23453                 ALIGN_TO_5_BYTES;
23454         }
23455
23456         return offset;
23457 }
23458
23459
23460 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
23461 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_AddMonitorInfo1 *info1; */
23462 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_AddMonitorInfo2 *info2; */
23463 /* IDL: } */
23464
23465 static int
23466 spoolss_dissect_element_AddMonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23467 {
23468         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_AddMonitorInfo1)",hf_spoolss_spoolss_AddMonitorInfo_info1);
23469
23470         return offset;
23471 }
23472
23473 static int
23474 spoolss_dissect_element_AddMonitorInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23475 {
23476         offset = spoolss_dissect_struct_AddMonitorInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddMonitorInfo_info1,0);
23477
23478         return offset;
23479 }
23480
23481 static int
23482 spoolss_dissect_element_AddMonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23483 {
23484         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_AddMonitorInfo2)",hf_spoolss_spoolss_AddMonitorInfo_info2);
23485
23486         return offset;
23487 }
23488
23489 static int
23490 spoolss_dissect_element_AddMonitorInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23491 {
23492         offset = spoolss_dissect_struct_AddMonitorInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddMonitorInfo_info2,0);
23493
23494         return offset;
23495 }
23496
23497 static int
23498 spoolss_dissect_AddMonitorInfo(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_)
23499 {
23500         proto_item *item = NULL;
23501         proto_tree *tree = NULL;
23502         int old_offset;
23503         guint32 level;
23504
23505         old_offset = offset;
23506         if (parent_tree) {
23507                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_AddMonitorInfo");
23508                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddMonitorInfo);
23509         }
23510
23511         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
23512         ALIGN_TO_5_BYTES;
23513
23514         switch(level) {
23515                 case 1:
23516                         offset = spoolss_dissect_element_AddMonitorInfo_info1(tvb, offset, pinfo, tree, drep);
23517                 break;
23518
23519                 case 2:
23520                         offset = spoolss_dissect_element_AddMonitorInfo_info2(tvb, offset, pinfo, tree, drep);
23521                 break;
23522         }
23523         proto_item_set_len(item, offset-old_offset);
23524
23525
23526         return offset;
23527 }
23528
23529 /* IDL: struct { */
23530 /* IDL:         uint32 level; */
23531 /* IDL:         [switch_is(level)] spoolss_MonitorInfo info; */
23532 /* IDL: } */
23533
23534 static int
23535 spoolss_dissect_element_MonitorContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
23536 {
23537         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorContainer_level, level);
23538
23539         return offset;
23540 }
23541
23542 static int
23543 spoolss_dissect_element_MonitorContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
23544 {
23545         offset = spoolss_dissect_MonitorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorContainer_info, *level);
23546
23547         return offset;
23548 }
23549
23550 int
23551 spoolss_dissect_struct_MonitorContainer(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_)
23552 {
23553         g level;
23554         proto_item *item = NULL;
23555         proto_tree *tree = NULL;
23556         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23557         int old_offset;
23558
23559         ALIGN_TO_5_BYTES;
23560
23561         old_offset = offset;
23562
23563         if (parent_tree) {
23564                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23565                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorContainer);
23566         }
23567         
23568         offset = spoolss_dissect_element_MonitorContainer_level(tvb, offset, pinfo, tree, drep, &level);
23569
23570         offset = spoolss_dissect_element_MonitorContainer_info(tvb, offset, pinfo, tree, drep, &level);
23571
23572
23573         proto_item_set_len(item, offset-old_offset);
23574
23575
23576         if (di->call_data->flags & DCERPC_IS_NDR64) {
23577                 ALIGN_TO_5_BYTES;
23578         }
23579
23580         return offset;
23581 }
23582
23583
23584 /* IDL: struct { */
23585 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *name_array; */
23586 /* IDL: } */
23587
23588 static int
23589 spoolss_dissect_element_PrintProcDataTypesInfo1_name_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23590 {
23591         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrintProcDataTypesInfo1_name_array_, , "Pointer to Name Array (string)",hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array);
23592
23593         return offset;
23594 }
23595
23596 static int
23597 spoolss_dissect_element_PrintProcDataTypesInfo1_name_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23598 {
23599         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array , 0);
23600
23601         return offset;
23602 }
23603
23604 int
23605 spoolss_dissect_struct_PrintProcDataTypesInfo1(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_)
23606 {
23607         proto_item *item = NULL;
23608         proto_tree *tree = NULL;
23609         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23610         int old_offset;
23611
23612         ALIGN_TO_5_BYTES;
23613
23614         old_offset = offset;
23615
23616         if (parent_tree) {
23617                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23618                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcDataTypesInfo1);
23619         }
23620         
23621         offset = spoolss_dissect_element_PrintProcDataTypesInfo1_name_array(tvb, offset, pinfo, tree, drep);
23622
23623
23624         proto_item_set_len(item, offset-old_offset);
23625
23626
23627         if (di->call_data->flags & DCERPC_IS_NDR64) {
23628                 ALIGN_TO_5_BYTES;
23629         }
23630
23631         return offset;
23632 }
23633
23634
23635 /* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
23636 /* IDL: [case(1)] [case(1)] spoolss_PrintProcDataTypesInfo1 info1; */
23637 /* IDL: [default] ; */
23638 /* IDL: } */
23639
23640 static int
23641 spoolss_dissect_element_PrintProcDataTypesInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23642 {
23643         offset = spoolss_dissect_struct_PrintProcDataTypesInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcDataTypesInfo_info1,0);
23644
23645         return offset;
23646 }
23647
23648 static int
23649 spoolss_dissect_PrintProcDataTypesInfo(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_)
23650 {
23651         proto_item *item = NULL;
23652         proto_tree *tree = NULL;
23653         int old_offset;
23654         guint32 level = param;
23655
23656         old_offset = offset;
23657         if (parent_tree) {
23658                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrintProcDataTypesInfo");
23659                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcDataTypesInfo);
23660         }
23661
23662         switch(level) {
23663                 case 1:
23664                         offset = spoolss_dissect_element_PrintProcDataTypesInfo_info1(tvb, offset, pinfo, tree, drep);
23665                 break;
23666
23667                 default:
23668                 break;
23669         }
23670         proto_item_set_len(item, offset-old_offset);
23671
23672
23673         return offset;
23674 }
23675
23676 /* IDL: bitmap { */
23677 /* IDL:         PRINTER_CHANGE_ADD_PRINTER =  0x00000001 , */
23678 /* IDL:         PRINTER_CHANGE_SET_PRINTER =  0x00000002 , */
23679 /* IDL:         PRINTER_CHANGE_DELETE_PRINTER =  0x00000004 , */
23680 /* IDL:         PRINTER_CHANGE_FAILED_CONNECTION_PRINTER =  0x00000008 , */
23681 /* IDL:         PRINTER_CHANGE_ADD_JOB =  0x00000100 , */
23682 /* IDL:         PRINTER_CHANGE_SET_JOB =  0x00000200 , */
23683 /* IDL:         PRINTER_CHANGE_DELETE_JOB =  0x00000400 , */
23684 /* IDL:         PRINTER_CHANGE_WRITE_JOB =  0x00000800 , */
23685 /* IDL:         PRINTER_CHANGE_ADD_FORM =  0x00010000 , */
23686 /* IDL:         PRINTER_CHANGE_SET_FORM =  0x00020000 , */
23687 /* IDL:         PRINTER_CHANGE_DELETE_FORM =  0x00040000 , */
23688 /* IDL:         PRINTER_CHANGE_ADD_PORT =  0x00100000 , */
23689 /* IDL:         PRINTER_CHANGE_CONFIGURE_PORT =  0x00200000 , */
23690 /* IDL:         PRINTER_CHANGE_DELETE_PORT =  0x00400000 , */
23691 /* IDL:         PRINTER_CHANGE_ADD_PRINT_PROCESSOR =  0x01000000 , */
23692 /* IDL:         PRINTER_CHANGE_DELETE_PRINT_PROCESSOR =  0x04000000 , */
23693 /* IDL:         PRINTER_CHANGE_SERVER =  0x08000000 , */
23694 /* IDL:         PRINTER_CHANGE_ADD_PRINTER_DRIVER =  0x10000000 , */
23695 /* IDL:         PRINTER_CHANGE_SET_PRINTER_DRIVER =  0x20000000 , */
23696 /* IDL:         PRINTER_CHANGE_DELETE_PRINTER_DRIVER =  0x40000000 , */
23697 /* IDL:         PRINTER_CHANGE_TIMEOUT =  0x80000000 , */
23698 /* IDL: } */
23699
23700 int
23701 spoolss_dissect_bitmap_PrinterChangeFlags(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_)
23702 {
23703         proto_item *item = NULL;
23704         proto_tree *tree = NULL;
23705
23706         guint32 flags;
23707         ALIGN_TO_4_BYTES;
23708
23709         if (parent_tree) {
23710                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
23711                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterChangeFlags);
23712         }
23713
23714         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
23715         proto_item_append_text(item, ": ");
23716
23717         if (!flags)
23718                 proto_item_append_text(item, "(No values set)");
23719
23720         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER, tvb, offset-4, 4, flags);
23721         if (flags&( 0x00000001 )){
23722                 proto_item_append_text(item, "PRINTER_CHANGE_ADD_PRINTER");
23723                 if (flags & (~( 0x00000001 )))
23724                         proto_item_append_text(item, ", ");
23725         }
23726         flags&=(~( 0x00000001 ));
23727
23728         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER, tvb, offset-4, 4, flags);
23729         if (flags&( 0x00000002 )){
23730                 proto_item_append_text(item, "PRINTER_CHANGE_SET_PRINTER");
23731                 if (flags & (~( 0x00000002 )))
23732                         proto_item_append_text(item, ", ");
23733         }
23734         flags&=(~( 0x00000002 ));
23735
23736         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER, tvb, offset-4, 4, flags);
23737         if (flags&( 0x00000004 )){
23738                 proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PRINTER");
23739                 if (flags & (~( 0x00000004 )))
23740                         proto_item_append_text(item, ", ");
23741         }
23742         flags&=(~( 0x00000004 ));
23743
23744         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, tvb, offset-4, 4, flags);
23745         if (flags&( 0x00000008 )){
23746                 proto_item_append_text(item, "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER");
23747                 if (flags & (~( 0x00000008 )))
23748                         proto_item_append_text(item, ", ");
23749         }
23750         flags&=(~( 0x00000008 ));
23751
23752         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB, tvb, offset-4, 4, flags);
23753         if (flags&( 0x00000100 )){
23754                 proto_item_append_text(item, "PRINTER_CHANGE_ADD_JOB");
23755                 if (flags & (~( 0x00000100 )))
23756                         proto_item_append_text(item, ", ");
23757         }
23758         flags&=(~( 0x00000100 ));
23759
23760         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB, tvb, offset-4, 4, flags);
23761         if (flags&( 0x00000200 )){
23762                 proto_item_append_text(item, "PRINTER_CHANGE_SET_JOB");
23763                 if (flags & (~( 0x00000200 )))
23764                         proto_item_append_text(item, ", ");
23765         }
23766         flags&=(~( 0x00000200 ));
23767
23768         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB, tvb, offset-4, 4, flags);
23769         if (flags&( 0x00000400 )){
23770                 proto_item_append_text(item, "PRINTER_CHANGE_DELETE_JOB");
23771                 if (flags & (~( 0x00000400 )))
23772                         proto_item_append_text(item, ", ");
23773         }
23774         flags&=(~( 0x00000400 ));
23775
23776         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB, tvb, offset-4, 4, flags);
23777         if (flags&( 0x00000800 )){
23778                 proto_item_append_text(item, "PRINTER_CHANGE_WRITE_JOB");
23779                 if (flags & (~( 0x00000800 )))
23780                         proto_item_append_text(item, ", ");
23781         }
23782         flags&=(~( 0x00000800 ));
23783
23784         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM, tvb, offset-4, 4, flags);
23785         if (flags&( 0x00010000 )){
23786                 proto_item_append_text(item, "PRINTER_CHANGE_ADD_FORM");
23787                 if (flags & (~( 0x00010000 )))
23788                         proto_item_append_text(item, ", ");
23789         }
23790         flags&=(~( 0x00010000 ));
23791
23792         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM, tvb, offset-4, 4, flags);
23793         if (flags&( 0x00020000 )){
23794                 proto_item_append_text(item, "PRINTER_CHANGE_SET_FORM");
23795                 if (flags & (~( 0x00020000 )))
23796                         proto_item_append_text(item, ", ");
23797         }
23798         flags&=(~( 0x00020000 ));
23799
23800         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM, tvb, offset-4, 4, flags);
23801         if (flags&( 0x00040000 )){
23802                 proto_item_append_text(item, "PRINTER_CHANGE_DELETE_FORM");
23803                 if (flags & (~( 0x00040000 )))
23804                         proto_item_append_text(item, ", ");
23805         }
23806         flags&=(~( 0x00040000 ));
23807
23808         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT, tvb, offset-4, 4, flags);
23809         if (flags&( 0x00100000 )){
23810                 proto_item_append_text(item, "PRINTER_CHANGE_ADD_PORT");
23811                 if (flags & (~( 0x00100000 )))
23812                         proto_item_append_text(item, ", ");
23813         }
23814         flags&=(~( 0x00100000 ));
23815
23816         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT, tvb, offset-4, 4, flags);
23817         if (flags&( 0x00200000 )){
23818                 proto_item_append_text(item, "PRINTER_CHANGE_CONFIGURE_PORT");
23819                 if (flags & (~( 0x00200000 )))
23820                         proto_item_append_text(item, ", ");
23821         }
23822         flags&=(~( 0x00200000 ));
23823
23824         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT, tvb, offset-4, 4, flags);
23825         if (flags&( 0x00400000 )){
23826                 proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PORT");
23827                 if (flags & (~( 0x00400000 )))
23828                         proto_item_append_text(item, ", ");
23829         }
23830         flags&=(~( 0x00400000 ));
23831
23832         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR, tvb, offset-4, 4, flags);
23833         if (flags&( 0x01000000 )){
23834                 proto_item_append_text(item, "PRINTER_CHANGE_ADD_PRINT_PROCESSOR");
23835                 if (flags & (~( 0x01000000 )))
23836                         proto_item_append_text(item, ", ");
23837         }
23838         flags&=(~( 0x01000000 ));
23839
23840         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, tvb, offset-4, 4, flags);
23841         if (flags&( 0x04000000 )){
23842                 proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR");
23843                 if (flags & (~( 0x04000000 )))
23844                         proto_item_append_text(item, ", ");
23845         }
23846         flags&=(~( 0x04000000 ));
23847
23848         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER, tvb, offset-4, 4, flags);
23849         if (flags&( 0x08000000 )){
23850                 proto_item_append_text(item, "PRINTER_CHANGE_SERVER");
23851                 if (flags & (~( 0x08000000 )))
23852                         proto_item_append_text(item, ", ");
23853         }
23854         flags&=(~( 0x08000000 ));
23855
23856         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER, tvb, offset-4, 4, flags);
23857         if (flags&( 0x10000000 )){
23858                 proto_item_append_text(item, "PRINTER_CHANGE_ADD_PRINTER_DRIVER");
23859                 if (flags & (~( 0x10000000 )))
23860                         proto_item_append_text(item, ", ");
23861         }
23862         flags&=(~( 0x10000000 ));
23863
23864         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER, tvb, offset-4, 4, flags);
23865         if (flags&( 0x20000000 )){
23866                 proto_item_append_text(item, "PRINTER_CHANGE_SET_PRINTER_DRIVER");
23867                 if (flags & (~( 0x20000000 )))
23868                         proto_item_append_text(item, ", ");
23869         }
23870         flags&=(~( 0x20000000 ));
23871
23872         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER, tvb, offset-4, 4, flags);
23873         if (flags&( 0x40000000 )){
23874                 proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PRINTER_DRIVER");
23875                 if (flags & (~( 0x40000000 )))
23876                         proto_item_append_text(item, ", ");
23877         }
23878         flags&=(~( 0x40000000 ));
23879
23880         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT, tvb, offset-4, 4, flags);
23881         if (flags&( 0x80000000 )){
23882                 proto_item_append_text(item, "PRINTER_CHANGE_TIMEOUT");
23883                 if (flags & (~( 0x80000000 )))
23884                         proto_item_append_text(item, ", ");
23885         }
23886         flags&=(~( 0x80000000 ));
23887
23888         if (flags) {
23889                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
23890         }
23891
23892         return offset;
23893 }
23894
23895
23896 /* IDL: struct { */
23897 /* IDL:         uint32 monitor_data_size; */
23898 /* IDL:         [unique(1)] [size_is(monitor_data_size)] uint8 *monitor_data; */
23899 /* IDL: } */
23900
23901 static int
23902 spoolss_dissect_element_PortVarContainer_monitor_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23903 {
23904         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortVarContainer_monitor_data_size, 0);
23905
23906         return offset;
23907 }
23908
23909 static int
23910 spoolss_dissect_element_PortVarContainer_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23911 {
23912         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortVarContainer_monitor_data_, NDR_POINTER_UNIQUE, "Pointer to Monitor Data (uint8)",hf_spoolss_spoolss_PortVarContainer_monitor_data);
23913
23914         return offset;
23915 }
23916
23917 static int
23918 spoolss_dissect_element_PortVarContainer_monitor_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23919 {
23920         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortVarContainer_monitor_data__);
23921
23922         return offset;
23923 }
23924
23925 static int
23926 spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
23927 {
23928         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortVarContainer_monitor_data, 0);
23929
23930         return offset;
23931 }
23932
23933 int
23934 spoolss_dissect_struct_PortVarContainer(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_)
23935 {
23936         proto_item *item = NULL;
23937         proto_tree *tree = NULL;
23938         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
23939         int old_offset;
23940
23941         ALIGN_TO_5_BYTES;
23942
23943         old_offset = offset;
23944
23945         if (parent_tree) {
23946                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
23947                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortVarContainer);
23948         }
23949         
23950         offset = spoolss_dissect_element_PortVarContainer_monitor_data_size(tvb, offset, pinfo, tree, drep);
23951
23952         offset = spoolss_dissect_element_PortVarContainer_monitor_data(tvb, offset, pinfo, tree, drep);
23953
23954
23955         proto_item_set_len(item, offset-old_offset);
23956
23957
23958         if (di->call_data->flags & DCERPC_IS_NDR64) {
23959                 ALIGN_TO_5_BYTES;
23960         }
23961
23962         return offset;
23963 }
23964
23965
23966 /* IDL: enum { */
23967 /* IDL:         JOB_NOTIFY_FIELD_PRINTER_NAME=0x00, */
23968 /* IDL:         JOB_NOTIFY_FIELD_MACHINE_NAME=0x01, */
23969 /* IDL:         JOB_NOTIFY_FIELD_PORT_NAME=0x02, */
23970 /* IDL:         JOB_NOTIFY_FIELD_USER_NAME=0x03, */
23971 /* IDL:         JOB_NOTIFY_FIELD_NOTIFY_NAME=0x04, */
23972 /* IDL:         JOB_NOTIFY_FIELD_DATATYPE=0x05, */
23973 /* IDL:         JOB_NOTIFY_FIELD_PRINT_PROCESSOR=0x06, */
23974 /* IDL:         JOB_NOTIFY_FIELD_PARAMETERS=0x07, */
23975 /* IDL:         JOB_NOTIFY_FIELD_DRIVER_NAME=0x08, */
23976 /* IDL:         JOB_NOTIFY_FIELD_DEVMODE=0x09, */
23977 /* IDL:         JOB_NOTIFY_FIELD_STATUS=0x0a, */
23978 /* IDL:         JOB_NOTIFY_FIELD_STATUS_STRING=0x0b, */
23979 /* IDL:         JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR=0x0c, */
23980 /* IDL:         JOB_NOTIFY_FIELD_DOCUMENT=0x0d, */
23981 /* IDL:         JOB_NOTIFY_FIELD_PRIORITY=0x0e, */
23982 /* IDL:         JOB_NOTIFY_FIELD_POSITION=0x0f, */
23983 /* IDL:         JOB_NOTIFY_FIELD_SUBMITTED=0x10, */
23984 /* IDL:         JOB_NOTIFY_FIELD_START_TIME=0x11, */
23985 /* IDL:         JOB_NOTIFY_FIELD_UNTIL_TIME=0x12, */
23986 /* IDL:         JOB_NOTIFY_FIELD_TIME=0x13, */
23987 /* IDL:         JOB_NOTIFY_FIELD_TOTAL_PAGES=0x14, */
23988 /* IDL:         JOB_NOTIFY_FIELD_PAGES_PRINTED=0x15, */
23989 /* IDL:         JOB_NOTIFY_FIELD_TOTAL_BYTES=0x16, */
23990 /* IDL:         JOB_NOTIFY_FIELD_BYTES_PRINTED=0x17, */
23991 /* IDL: } */
23992
23993 int
23994 spoolss_dissect_enum_JobNotifyField(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_)
23995 {
23996         guint1632 parameter=0;
23997         if(param){
23998                 parameter=(guint1632)*param;
23999         }
24000         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
24001         if(param){
24002                 *param=(guint32)parameter;
24003         }
24004         return offset;
24005 }
24006
24007
24008 /* IDL: enum { */
24009 /* IDL:         PRINTER_NOTIFY_FIELD_SERVER_NAME=0x00, */
24010 /* IDL:         PRINTER_NOTIFY_FIELD_PRINTER_NAME=0x01, */
24011 /* IDL:         PRINTER_NOTIFY_FIELD_SHARE_NAME=0x02, */
24012 /* IDL:         PRINTER_NOTIFY_FIELD_PORT_NAME=0x03, */
24013 /* IDL:         PRINTER_NOTIFY_FIELD_DRIVER_NAME=0x04, */
24014 /* IDL:         PRINTER_NOTIFY_FIELD_COMMENT=0x05, */
24015 /* IDL:         PRINTER_NOTIFY_FIELD_LOCATION=0x06, */
24016 /* IDL:         PRINTER_NOTIFY_FIELD_DEVMODE=0x07, */
24017 /* IDL:         PRINTER_NOTIFY_FIELD_SEPFILE=0x08, */
24018 /* IDL:         PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR=0x09, */
24019 /* IDL:         PRINTER_NOTIFY_FIELD_PARAMETERS=0x0a, */
24020 /* IDL:         PRINTER_NOTIFY_FIELD_DATATYPE=0x0b, */
24021 /* IDL:         PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR=0x0c, */
24022 /* IDL:         PRINTER_NOTIFY_FIELD_ATTRIBUTES=0x0d, */
24023 /* IDL:         PRINTER_NOTIFY_FIELD_PRIORITY=0x0e, */
24024 /* IDL:         PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY=0x0f, */
24025 /* IDL:         PRINTER_NOTIFY_FIELD_START_TIME=0x10, */
24026 /* IDL:         PRINTER_NOTIFY_FIELD_UNTIL_TIME=0x11, */
24027 /* IDL:         PRINTER_NOTIFY_FIELD_STATUS=0x12, */
24028 /* IDL:         PRINTER_NOTIFY_FIELD_STATUS_STRING=0x13, */
24029 /* IDL:         PRINTER_NOTIFY_FIELD_CJOBS=0x14, */
24030 /* IDL:         PRINTER_NOTIFY_FIELD_AVERAGE_PPM=0x15, */
24031 /* IDL:         PRINTER_NOTIFY_FIELD_TOTAL_PAGES=0x16, */
24032 /* IDL:         PRINTER_NOTIFY_FIELD_PAGES_PRINTED=0x17, */
24033 /* IDL:         PRINTER_NOTIFY_FIELD_TOTAL_BYTES=0x18, */
24034 /* IDL:         PRINTER_NOTIFY_FIELD_BYTES_PRINTED=0x19, */
24035 /* IDL:         PRINTER_NOTIFY_FIELD_OBJECT_GUID=0x1a, */
24036 /* IDL:         PRINTER_NOTIFY_FIELD_FRIENDLY_NAME=0x1b, */
24037 /* IDL: } */
24038
24039 int
24040 spoolss_dissect_enum_PrintNotifyField(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_)
24041 {
24042         guint1632 parameter=0;
24043         if(param){
24044                 parameter=(guint1632)*param;
24045         }
24046         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
24047         if(param){
24048                 *param=(guint32)parameter;
24049         }
24050         return offset;
24051 }
24052
24053
24054 /* IDL: enum { */
24055 /* IDL:         PRINTER_NOTIFY_TYPE=0x00, */
24056 /* IDL:         JOB_NOTIFY_TYPE=0x01, */
24057 /* IDL: } */
24058
24059 int
24060 spoolss_dissect_enum_NotifyType(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_)
24061 {
24062         guint1632 parameter=0;
24063         if(param){
24064                 parameter=(guint1632)*param;
24065         }
24066         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
24067         if(param){
24068                 *param=(guint32)parameter;
24069         }
24070         return offset;
24071 }
24072
24073
24074 /* IDL: [noprint(1)] [nodiscriminant(1)] [switch_type(spoolss_NotifyType)] union { */
24075 /* IDL: [case(PRINTER_NOTIFY_TYPE)] [case(PRINTER_NOTIFY_TYPE)] spoolss_JobNotifyField field; */
24076 /* IDL: [case(JOB_NOTIFY_TYPE)] [case(JOB_NOTIFY_TYPE)] spoolss_PrintNotifyField field; */
24077 /* IDL: [default] ; */
24078 /* IDL: } */
24079
24080 static int
24081 spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24082 {
24083         offset = spoolss_dissect_enum_JobNotifyField(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Field_field, 0);
24084
24085         return offset;
24086 }
24087
24088 static int
24089 spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24090 {
24091         offset = spoolss_dissect_enum_PrintNotifyField(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Field_field, 0);
24092
24093         return offset;
24094 }
24095
24096 static int
24097 spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24098 {
24099         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Field_field, 0);
24100
24101         return offset;
24102 }
24103
24104 static int
24105 spoolss_dissect_Field(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_)
24106 {
24107         proto_item *item = NULL;
24108         proto_tree *tree = NULL;
24109         int old_offset;
24110         guint32 level = param;
24111
24112         old_offset = offset;
24113         if (parent_tree) {
24114                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_Field");
24115                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_Field);
24116         }
24117
24118         switch(level) {
24119                 case PRINTER_NOTIFY_TYPE:
24120                         offset = spoolss_dissect_element_Field_field(tvb, offset, pinfo, tree, drep);
24121                 break;
24122
24123                 case JOB_NOTIFY_TYPE:
24124                         offset = spoolss_dissect_element_Field_field(tvb, offset, pinfo, tree, drep);
24125                 break;
24126
24127                 default:
24128                         offset = spoolss_dissect_element_Field_field(tvb, offset, pinfo, tree, drep);
24129                 break;
24130         }
24131         proto_item_set_len(item, offset-old_offset);
24132
24133
24134         return offset;
24135 }
24136
24137 /* IDL: struct { */
24138 /* IDL:         spoolss_NotifyType type; */
24139 /* IDL:         uint16 u1; */
24140 /* IDL:         uint32 u2; */
24141 /* IDL:         uint32 u3; */
24142 /* IDL:         uint32 count; */
24143 /* IDL:         [unique(1)] [switch_is(type)] [size_is(count)] spoolss_Field *fields; */
24144 /* IDL: } */
24145
24146 static int
24147 spoolss_dissect_element_NotifyOptionType_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
24148 {
24149         offset = spoolss_dissect_enum_NotifyType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_type, type);
24150
24151         return offset;
24152 }
24153
24154 static int
24155 spoolss_dissect_element_NotifyOptionType_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24156 {
24157         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_u1, 0);
24158
24159         return offset;
24160 }
24161
24162 static int
24163 spoolss_dissect_element_NotifyOptionType_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24164 {
24165         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_u2, 0);
24166
24167         return offset;
24168 }
24169
24170 static int
24171 spoolss_dissect_element_NotifyOptionType_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24172 {
24173         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_u3, 0);
24174
24175         return offset;
24176 }
24177
24178 static int
24179 spoolss_dissect_element_NotifyOptionType_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24180 {
24181         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_count, 0);
24182
24183         return offset;
24184 }
24185
24186 static int
24187 spoolss_dissect_element_NotifyOptionType_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
24188 {
24189         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOptionType_fields_, NDR_POINTER_UNIQUE, "Pointer to Fields (spoolss_Field)",hf_spoolss_spoolss_NotifyOptionType_fields);
24190
24191         return offset;
24192 }
24193
24194 static int
24195 spoolss_dissect_element_NotifyOptionType_fields_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
24196 {
24197         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOptionType_fields__);
24198
24199         return offset;
24200 }
24201
24202 static int
24203 spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
24204 {
24205         offset = spoolss_dissect_Field(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_fields, *type);
24206
24207         return offset;
24208 }
24209
24210 int
24211 spoolss_dissect_struct_NotifyOptionType(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_)
24212 {
24213         guint16 type;
24214         proto_item *item = NULL;
24215         proto_tree *tree = NULL;
24216         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
24217         int old_offset;
24218
24219         ALIGN_TO_5_BYTES;
24220
24221         old_offset = offset;
24222
24223         if (parent_tree) {
24224                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
24225                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyOptionType);
24226         }
24227         
24228         offset = spoolss_dissect_element_NotifyOptionType_type(tvb, offset, pinfo, tree, drep, &type);
24229
24230         offset = spoolss_dissect_element_NotifyOptionType_u1(tvb, offset, pinfo, tree, drep);
24231
24232         offset = spoolss_dissect_element_NotifyOptionType_u2(tvb, offset, pinfo, tree, drep);
24233
24234         offset = spoolss_dissect_element_NotifyOptionType_u3(tvb, offset, pinfo, tree, drep);
24235
24236         offset = spoolss_dissect_element_NotifyOptionType_count(tvb, offset, pinfo, tree, drep);
24237
24238         offset = spoolss_dissect_element_NotifyOptionType_fields(tvb, offset, pinfo, tree, drep, &type);
24239
24240
24241         proto_item_set_len(item, offset-old_offset);
24242
24243
24244         if (di->call_data->flags & DCERPC_IS_NDR64) {
24245                 ALIGN_TO_5_BYTES;
24246         }
24247
24248         return offset;
24249 }
24250
24251
24252 /* IDL: bitmap { */
24253 /* IDL:         PRINTER_NOTIFY_OPTIONS_REFRESH =  0x00000001 , */
24254 /* IDL: } */
24255
24256 int
24257 spoolss_dissect_bitmap_spoolssNotifyOptionFlags(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_)
24258 {
24259         proto_item *item = NULL;
24260         proto_tree *tree = NULL;
24261
24262         guint32 flags;
24263         ALIGN_TO_4_BYTES;
24264
24265         if (parent_tree) {
24266                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
24267                 tree = proto_item_add_subtree(item,ett_spoolss_spoolssNotifyOptionFlags);
24268         }
24269
24270         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
24271         proto_item_append_text(item, ": ");
24272
24273         if (!flags)
24274                 proto_item_append_text(item, "(No values set)");
24275
24276         proto_tree_add_boolean(tree, hf_spoolss_spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH, tvb, offset-4, 4, flags);
24277         if (flags&( 0x00000001 )){
24278                 proto_item_append_text(item, "PRINTER_NOTIFY_OPTIONS_REFRESH");
24279                 if (flags & (~( 0x00000001 )))
24280                         proto_item_append_text(item, ", ");
24281         }
24282         flags&=(~( 0x00000001 ));
24283
24284         if (flags) {
24285                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
24286         }
24287
24288         return offset;
24289 }
24290
24291
24292 /* IDL: struct { */
24293 /* IDL:         [value(2)] uint32 version; */
24294 /* IDL:         spoolssNotifyOptionFlags flags; */
24295 /* IDL:         uint32 count; */
24296 /* IDL:         [unique(1)] [size_is(count)] spoolss_NotifyOptionType *types; */
24297 /* IDL: } */
24298
24299 static int
24300 spoolss_dissect_element_NotifyOption_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24301 {
24302         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOption_version, 0);
24303
24304         return offset;
24305 }
24306
24307 static int
24308 spoolss_dissect_element_NotifyOption_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24309 {
24310         offset = spoolss_dissect_bitmap_spoolssNotifyOptionFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOption_flags, 0);
24311
24312         return offset;
24313 }
24314
24315 static int
24316 spoolss_dissect_element_NotifyOption_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24317 {
24318         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOption_count, 0);
24319
24320         return offset;
24321 }
24322
24323 static int
24324 spoolss_dissect_element_NotifyOption_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24325 {
24326         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOption_types_, NDR_POINTER_UNIQUE, "Pointer to Types (spoolss_NotifyOptionType)",hf_spoolss_spoolss_NotifyOption_types);
24327
24328         return offset;
24329 }
24330
24331 static int
24332 spoolss_dissect_element_NotifyOption_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24333 {
24334         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOption_types__);
24335
24336         return offset;
24337 }
24338
24339 static int
24340 spoolss_dissect_element_NotifyOption_types__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24341 {
24342         offset = spoolss_dissect_struct_NotifyOptionType(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyOption_types,0);
24343
24344         return offset;
24345 }
24346
24347 int
24348 spoolss_dissect_struct_NotifyOption(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_)
24349 {
24350         proto_item *item = NULL;
24351         proto_tree *tree = NULL;
24352         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
24353         int old_offset;
24354
24355         ALIGN_TO_5_BYTES;
24356
24357         old_offset = offset;
24358
24359         if (parent_tree) {
24360                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
24361                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyOption);
24362         }
24363         
24364         offset = spoolss_dissect_element_NotifyOption_version(tvb, offset, pinfo, tree, drep);
24365
24366         offset = spoolss_dissect_element_NotifyOption_flags(tvb, offset, pinfo, tree, drep);
24367
24368         offset = spoolss_dissect_element_NotifyOption_count(tvb, offset, pinfo, tree, drep);
24369
24370         offset = spoolss_dissect_element_NotifyOption_types(tvb, offset, pinfo, tree, drep);
24371
24372
24373         proto_item_set_len(item, offset-old_offset);
24374
24375
24376         if (di->call_data->flags & DCERPC_IS_NDR64) {
24377                 ALIGN_TO_5_BYTES;
24378         }
24379
24380         return offset;
24381 }
24382
24383
24384 /* IDL: struct { */
24385 /* IDL:         uint32 size; */
24386 /* IDL:         [unique(1)] [charset(UTF16)] [size_is(size/2)] uint16 *string; */
24387 /* IDL: } */
24388
24389 static int
24390 spoolss_dissect_element_NotifyString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24391 {
24392         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyString_size, 0);
24393
24394         return offset;
24395 }
24396
24397 static int
24398 spoolss_dissect_element_NotifyString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24399 {
24400         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_spoolss_spoolss_NotifyString_string);
24401
24402         return offset;
24403 }
24404
24405 static int
24406 spoolss_dissect_element_NotifyString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24407 {
24408         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyString_string__);
24409
24410         return offset;
24411 }
24412
24413 static int
24414 spoolss_dissect_element_NotifyString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24415 {
24416         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyString_string, 0);
24417
24418         return offset;
24419 }
24420
24421 int
24422 spoolss_dissect_struct_NotifyString(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_)
24423 {
24424         proto_item *item = NULL;
24425         proto_tree *tree = NULL;
24426         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
24427         int old_offset;
24428
24429         ALIGN_TO_5_BYTES;
24430
24431         old_offset = offset;
24432
24433         if (parent_tree) {
24434                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
24435                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyString);
24436         }
24437         
24438         offset = spoolss_dissect_element_NotifyString_size(tvb, offset, pinfo, tree, drep);
24439
24440         offset = spoolss_dissect_element_NotifyString_string(tvb, offset, pinfo, tree, drep);
24441
24442
24443         proto_item_set_len(item, offset-old_offset);
24444
24445
24446         if (di->call_data->flags & DCERPC_IS_NDR64) {
24447                 ALIGN_TO_5_BYTES;
24448         }
24449
24450         return offset;
24451 }
24452
24453
24454 /* IDL: enum { */
24455 /* IDL:         NOTIFY_TABLE_DWORD=0x0001, */
24456 /* IDL:         NOTIFY_TABLE_STRING=0x0002, */
24457 /* IDL:         NOTIFY_TABLE_DEVMODE=0x0003, */
24458 /* IDL:         NOTIFY_TABLE_TIME=0x0004, */
24459 /* IDL:         NOTIFY_TABLE_SECURITYDESCRIPTOR=0x0005, */
24460 /* IDL: } */
24461
24462 int
24463 spoolss_dissect_enum_NotifyTable(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_)
24464 {
24465         guint32 parameter=0;
24466         if(param){
24467                 parameter=(guint32)*param;
24468         }
24469         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
24470         if(param){
24471                 *param=(guint32)parameter;
24472         }
24473         return offset;
24474 }
24475
24476
24477 /* IDL: [ms_union(1)] [switch_type(spoolss_NotifyTable)] union { */
24478 /* IDL: [case(NOTIFY_TABLE_DWORD)] [case(NOTIFY_TABLE_DWORD)] uint32 integer[2]; */
24479 /* IDL: [case(NOTIFY_TABLE_STRING)] [case(NOTIFY_TABLE_STRING)] spoolss_NotifyString string; */
24480 /* IDL: [case(NOTIFY_TABLE_DEVMODE)] [case(NOTIFY_TABLE_DEVMODE)] spoolss_DevmodeContainer devmode; */
24481 /* IDL: [case(NOTIFY_TABLE_TIME)] [case(NOTIFY_TABLE_TIME)] spoolss_TimeCtr time; */
24482 /* IDL: [case(NOTIFY_TABLE_SECURITYDESCRIPTOR)] [case(NOTIFY_TABLE_SECURITYDESCRIPTOR)] sec_desc_buf sd; */
24483 /* IDL: } */
24484
24485 static int
24486 spoolss_dissect_element_NotifyData_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24487 {
24488         int i;
24489         for (i = 0; i < 2; i++)
24490                 offset = spoolss_dissect_element_NotifyData_integer_(tvb, offset, pinfo, tree, drep);
24491
24492         return offset;
24493 }
24494
24495 static int
24496 spoolss_dissect_element_NotifyData_integer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24497 {
24498         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyData_integer, 0);
24499
24500         return offset;
24501 }
24502
24503 static int
24504 spoolss_dissect_element_NotifyData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24505 {
24506         offset = spoolss_dissect_struct_NotifyString(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_string,0);
24507
24508         return offset;
24509 }
24510
24511 static int
24512 spoolss_dissect_element_NotifyData_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24513 {
24514         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_devmode,0);
24515
24516         return offset;
24517 }
24518
24519 static int
24520 spoolss_dissect_element_NotifyData_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24521 {
24522         offset = spoolss_dissect_struct_TimeCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_time,0);
24523
24524         return offset;
24525 }
24526
24527 static int
24528 spoolss_dissect_element_NotifyData_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24529 {
24530         offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_sd,0);
24531
24532         return offset;
24533 }
24534
24535 static int
24536 spoolss_dissect_NotifyData(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_)
24537 {
24538         proto_item *item = NULL;
24539         proto_tree *tree = NULL;
24540         int old_offset;
24541         guint32 level;
24542
24543         old_offset = offset;
24544         if (parent_tree) {
24545                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_NotifyData");
24546                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyData);
24547         }
24548
24549         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
24550         ALIGN_TO_5_BYTES;
24551
24552         switch(level) {
24553                 case NOTIFY_TABLE_DWORD:
24554                         offset = spoolss_dissect_element_NotifyData_integer(tvb, offset, pinfo, tree, drep);
24555                 break;
24556
24557                 case NOTIFY_TABLE_STRING:
24558                         offset = spoolss_dissect_element_NotifyData_string(tvb, offset, pinfo, tree, drep);
24559                 break;
24560
24561                 case NOTIFY_TABLE_DEVMODE:
24562                         offset = spoolss_dissect_element_NotifyData_devmode(tvb, offset, pinfo, tree, drep);
24563                 break;
24564
24565                 case NOTIFY_TABLE_TIME:
24566                         offset = spoolss_dissect_element_NotifyData_time(tvb, offset, pinfo, tree, drep);
24567                 break;
24568
24569                 case NOTIFY_TABLE_SECURITYDESCRIPTOR:
24570                         offset = spoolss_dissect_element_NotifyData_sd(tvb, offset, pinfo, tree, drep);
24571                 break;
24572         }
24573         proto_item_set_len(item, offset-old_offset);
24574
24575
24576         return offset;
24577 }
24578
24579 /* IDL: struct { */
24580 /* IDL:         spoolss_NotifyType type; */
24581 /* IDL:         [switch_is(type)] spoolss_Field field; */
24582 /* IDL:         spoolss_NotifyTable variable_type; */
24583 /* IDL:         uint32 job_id; */
24584 /* IDL:         [switch_is(variable_type)] spoolss_NotifyData data; */
24585 /* IDL: } */
24586
24587 static int
24588 spoolss_dissect_element_Notify_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24589 {
24590         offset = spoolss_dissect_enum_NotifyType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_type, 0);
24591
24592         return offset;
24593 }
24594
24595 static int
24596 spoolss_dissect_element_Notify_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
24597 {
24598         offset = spoolss_dissect_Field(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_field, *);
24599
24600         return offset;
24601 }
24602
24603 static int
24604 spoolss_dissect_element_Notify_variable_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type)
24605 {
24606         offset = spoolss_dissect_enum_NotifyTable(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_variable_type, variable_type);
24607
24608         return offset;
24609 }
24610
24611 static int
24612 spoolss_dissect_element_Notify_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24613 {
24614         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_job_id, 0);
24615
24616         return offset;
24617 }
24618
24619 static int
24620 spoolss_dissect_element_Notify_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type)
24621 {
24622         offset = spoolss_dissect_NotifyData(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_data, *variable_type);
24623
24624         return offset;
24625 }
24626
24627 int
24628 spoolss_dissect_struct_Notify(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_)
24629 {
24630         guint32 variable_type;
24631         proto_item *item = NULL;
24632         proto_tree *tree = NULL;
24633         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
24634         int old_offset;
24635
24636         ALIGN_TO_5_BYTES;
24637
24638         old_offset = offset;
24639
24640         if (parent_tree) {
24641                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
24642                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_Notify);
24643         }
24644         
24645         offset = spoolss_dissect_element_Notify_type(tvb, offset, pinfo, tree, drep);
24646
24647         offset = spoolss_dissect_element_Notify_field(tvb, offset, pinfo, tree, drep, &);
24648
24649         offset = spoolss_dissect_element_Notify_variable_type(tvb, offset, pinfo, tree, drep, &variable_type);
24650
24651         offset = spoolss_dissect_element_Notify_job_id(tvb, offset, pinfo, tree, drep);
24652
24653         offset = spoolss_dissect_element_Notify_data(tvb, offset, pinfo, tree, drep, &variable_type);
24654
24655
24656         proto_item_set_len(item, offset-old_offset);
24657
24658
24659         if (di->call_data->flags & DCERPC_IS_NDR64) {
24660                 ALIGN_TO_5_BYTES;
24661         }
24662
24663         return offset;
24664 }
24665
24666
24667 /* IDL: struct { */
24668 /* IDL:         [value(2)] uint32 version; */
24669 /* IDL:         uint32 flags; */
24670 /* IDL:         uint32 count; */
24671 /* IDL:         [size_is(count)] spoolss_Notify notifies[*]; */
24672 /* IDL: } */
24673
24674 static int
24675 spoolss_dissect_element_NotifyInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24676 {
24677         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyInfo_version, 0);
24678
24679         return offset;
24680 }
24681
24682 static int
24683 spoolss_dissect_element_NotifyInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24684 {
24685         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyInfo_flags, 0);
24686
24687         return offset;
24688 }
24689
24690 static int
24691 spoolss_dissect_element_NotifyInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24692 {
24693         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyInfo_count, 0);
24694
24695         return offset;
24696 }
24697
24698 static int
24699 spoolss_dissect_element_NotifyInfo_notifies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24700 {
24701         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyInfo_notifies_);
24702
24703         return offset;
24704 }
24705
24706 static int
24707 spoolss_dissect_element_NotifyInfo_notifies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24708 {
24709         offset = spoolss_dissect_struct_Notify(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyInfo_notifies,0);
24710
24711         return offset;
24712 }
24713
24714 int
24715 spoolss_dissect_struct_NotifyInfo(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_)
24716 {
24717         proto_item *item = NULL;
24718         proto_tree *tree = NULL;
24719         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
24720         int old_offset;
24721
24722         ALIGN_TO_5_BYTES;
24723
24724         old_offset = offset;
24725
24726         if (parent_tree) {
24727                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
24728                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyInfo);
24729         }
24730         
24731         offset = spoolss_dissect_element_NotifyInfo_version(tvb, offset, pinfo, tree, drep);
24732
24733         offset = spoolss_dissect_element_NotifyInfo_flags(tvb, offset, pinfo, tree, drep);
24734
24735         offset = spoolss_dissect_element_NotifyInfo_count(tvb, offset, pinfo, tree, drep);
24736
24737         offset = spoolss_dissect_element_NotifyInfo_notifies(tvb, offset, pinfo, tree, drep);
24738
24739
24740         proto_item_set_len(item, offset-old_offset);
24741
24742
24743         if (di->call_data->flags & DCERPC_IS_NDR64) {
24744                 ALIGN_TO_5_BYTES;
24745         }
24746
24747         return offset;
24748 }
24749
24750
24751 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
24752 /* IDL: [case(0)] [unique(1)] [case(0)] spoolss_NotifyInfo *info0; */
24753 /* IDL: } */
24754
24755 static int
24756 spoolss_dissect_element_ReplyPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24757 {
24758         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyPrinterInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (spoolss_NotifyInfo)",hf_spoolss_spoolss_ReplyPrinterInfo_info0);
24759
24760         return offset;
24761 }
24762
24763 static int
24764 spoolss_dissect_element_ReplyPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24765 {
24766         offset = spoolss_dissect_struct_NotifyInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_ReplyPrinterInfo_info0,0);
24767
24768         return offset;
24769 }
24770
24771 static int
24772 spoolss_dissect_ReplyPrinterInfo(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_)
24773 {
24774         proto_item *item = NULL;
24775         proto_tree *tree = NULL;
24776         int old_offset;
24777         guint32 level;
24778
24779         old_offset = offset;
24780         if (parent_tree) {
24781                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_ReplyPrinterInfo");
24782                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_ReplyPrinterInfo);
24783         }
24784
24785         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
24786         ALIGN_TO_5_BYTES;
24787
24788         switch(level) {
24789                 case 0:
24790                         offset = spoolss_dissect_element_ReplyPrinterInfo_info0(tvb, offset, pinfo, tree, drep);
24791                 break;
24792         }
24793         proto_item_set_len(item, offset-old_offset);
24794
24795
24796         return offset;
24797 }
24798
24799 /* IDL: bitmap { */
24800 /* IDL:         PRINTER_NOTIFY_INFO_DISCARDED =  0x00000001 , */
24801 /* IDL:         PRINTER_NOTIFY_INFO_DISCARDNOTED =  0x00010000 , */
24802 /* IDL:         PRINTER_NOTIFY_INFO_COLOR_MISMATCH =  0x00080000 , */
24803 /* IDL: } */
24804
24805 int
24806 spoolss_dissect_bitmap_PrinterNotifyFlags(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_)
24807 {
24808         proto_item *item = NULL;
24809         proto_tree *tree = NULL;
24810
24811         guint32 flags;
24812         ALIGN_TO_4_BYTES;
24813
24814         if (parent_tree) {
24815                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
24816                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterNotifyFlags);
24817         }
24818
24819         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
24820         proto_item_append_text(item, ": ");
24821
24822         if (!flags)
24823                 proto_item_append_text(item, "(No values set)");
24824
24825         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED, tvb, offset-4, 4, flags);
24826         if (flags&( 0x00000001 )){
24827                 proto_item_append_text(item, "PRINTER_NOTIFY_INFO_DISCARDED");
24828                 if (flags & (~( 0x00000001 )))
24829                         proto_item_append_text(item, ", ");
24830         }
24831         flags&=(~( 0x00000001 ));
24832
24833         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED, tvb, offset-4, 4, flags);
24834         if (flags&( 0x00010000 )){
24835                 proto_item_append_text(item, "PRINTER_NOTIFY_INFO_DISCARDNOTED");
24836                 if (flags & (~( 0x00010000 )))
24837                         proto_item_append_text(item, ", ");
24838         }
24839         flags&=(~( 0x00010000 ));
24840
24841         proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH, tvb, offset-4, 4, flags);
24842         if (flags&( 0x00080000 )){
24843                 proto_item_append_text(item, "PRINTER_NOTIFY_INFO_COLOR_MISMATCH");
24844                 if (flags & (~( 0x00080000 )))
24845                         proto_item_append_text(item, ", ");
24846         }
24847         flags&=(~( 0x00080000 ));
24848
24849         if (flags) {
24850                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
24851         }
24852
24853         return offset;
24854 }
24855
24856
24857 /* IDL: struct { */
24858 /* IDL:         uint32 size; */
24859 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *client; */
24860 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *user; */
24861 /* IDL:         uint32 build; */
24862 /* IDL:         spoolss_MajorVersion major; */
24863 /* IDL:         spoolss_MinorVersion minor; */
24864 /* IDL:         spoolss_ProcessorArchitecture processor; */
24865 /* IDL: } */
24866
24867 static int
24868 spoolss_dissect_element_UserLevel1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24869 {
24870         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_size, 0);
24871
24872         return offset;
24873 }
24874
24875 static int
24876 spoolss_dissect_element_UserLevel1_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24877 {
24878         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel1_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_spoolss_spoolss_UserLevel1_client);
24879
24880         return offset;
24881 }
24882
24883 static int
24884 spoolss_dissect_element_UserLevel1_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24885 {
24886         char *data;
24887
24888         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel1_client, FALSE, &data);
24889         proto_item_append_text(tree, ": %s", data);
24890
24891         return offset;
24892 }
24893
24894 static int
24895 spoolss_dissect_element_UserLevel1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24896 {
24897         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel1_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_spoolss_spoolss_UserLevel1_user);
24898
24899         return offset;
24900 }
24901
24902 static int
24903 spoolss_dissect_element_UserLevel1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24904 {
24905         char *data;
24906
24907         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel1_user, FALSE, &data);
24908         proto_item_append_text(tree, ": %s", data);
24909
24910         return offset;
24911 }
24912
24913 static int
24914 spoolss_dissect_element_UserLevel1_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24915 {
24916         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_build, 0);
24917
24918         return offset;
24919 }
24920
24921 static int
24922 spoolss_dissect_element_UserLevel1_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24923 {
24924         offset = spoolss_dissect_enum_MajorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_major, 0);
24925
24926         return offset;
24927 }
24928
24929 static int
24930 spoolss_dissect_element_UserLevel1_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24931 {
24932         offset = spoolss_dissect_enum_MinorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_minor, 0);
24933
24934         return offset;
24935 }
24936
24937 static int
24938 spoolss_dissect_element_UserLevel1_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24939 {
24940         offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_processor, 0);
24941
24942         return offset;
24943 }
24944
24945 int
24946 spoolss_dissect_struct_UserLevel1(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_)
24947 {
24948         proto_item *item = NULL;
24949         proto_tree *tree = NULL;
24950         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
24951         int old_offset;
24952
24953         ALIGN_TO_5_BYTES;
24954
24955         old_offset = offset;
24956
24957         if (parent_tree) {
24958                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
24959                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel1);
24960         }
24961         
24962         offset = spoolss_dissect_element_UserLevel1_size(tvb, offset, pinfo, tree, drep);
24963
24964         offset = spoolss_dissect_element_UserLevel1_client(tvb, offset, pinfo, tree, drep);
24965
24966         offset = spoolss_dissect_element_UserLevel1_user(tvb, offset, pinfo, tree, drep);
24967
24968         offset = spoolss_dissect_element_UserLevel1_build(tvb, offset, pinfo, tree, drep);
24969
24970         offset = spoolss_dissect_element_UserLevel1_major(tvb, offset, pinfo, tree, drep);
24971
24972         offset = spoolss_dissect_element_UserLevel1_minor(tvb, offset, pinfo, tree, drep);
24973
24974         offset = spoolss_dissect_element_UserLevel1_processor(tvb, offset, pinfo, tree, drep);
24975
24976
24977         proto_item_set_len(item, offset-old_offset);
24978
24979
24980         if (di->call_data->flags & DCERPC_IS_NDR64) {
24981                 ALIGN_TO_5_BYTES;
24982         }
24983
24984         return offset;
24985 }
24986
24987
24988 /* IDL: struct { */
24989 /* IDL:         uint32 not_used; */
24990 /* IDL: } */
24991
24992 static int
24993 spoolss_dissect_element_UserLevel2_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
24994 {
24995         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel2_not_used, 0);
24996
24997         return offset;
24998 }
24999
25000 int
25001 spoolss_dissect_struct_UserLevel2(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_)
25002 {
25003         proto_item *item = NULL;
25004         proto_tree *tree = NULL;
25005         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
25006         int old_offset;
25007
25008         ALIGN_TO_4_BYTES;
25009
25010         old_offset = offset;
25011
25012         if (parent_tree) {
25013                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
25014                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel2);
25015         }
25016         
25017         offset = spoolss_dissect_element_UserLevel2_not_used(tvb, offset, pinfo, tree, drep);
25018
25019
25020         proto_item_set_len(item, offset-old_offset);
25021
25022
25023         if (di->call_data->flags & DCERPC_IS_NDR64) {
25024                 ALIGN_TO_4_BYTES;
25025         }
25026
25027         return offset;
25028 }
25029
25030
25031 /* IDL: struct { */
25032 /* IDL:         uint32 size; */
25033 /* IDL:         uint32 flags; */
25034 /* IDL:         uint32 size2; */
25035 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *client; */
25036 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *user; */
25037 /* IDL:         uint32 build; */
25038 /* IDL:         spoolss_MajorVersion major; */
25039 /* IDL:         spoolss_MinorVersion minor; */
25040 /* IDL:         spoolss_ProcessorArchitecture processor; */
25041 /* IDL:         udlong reserved; */
25042 /* IDL: } */
25043
25044 static int
25045 spoolss_dissect_element_UserLevel3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25046 {
25047         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_size, 0);
25048
25049         return offset;
25050 }
25051
25052 static int
25053 spoolss_dissect_element_UserLevel3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25054 {
25055         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_flags, 0);
25056
25057         return offset;
25058 }
25059
25060 static int
25061 spoolss_dissect_element_UserLevel3_size2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25062 {
25063         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_size2, 0);
25064
25065         return offset;
25066 }
25067
25068 static int
25069 spoolss_dissect_element_UserLevel3_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25070 {
25071         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel3_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_spoolss_spoolss_UserLevel3_client);
25072
25073         return offset;
25074 }
25075
25076 static int
25077 spoolss_dissect_element_UserLevel3_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25078 {
25079         char *data;
25080
25081         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel3_client, FALSE, &data);
25082         proto_item_append_text(tree, ": %s", data);
25083
25084         return offset;
25085 }
25086
25087 static int
25088 spoolss_dissect_element_UserLevel3_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25089 {
25090         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel3_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_spoolss_spoolss_UserLevel3_user);
25091
25092         return offset;
25093 }
25094
25095 static int
25096 spoolss_dissect_element_UserLevel3_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25097 {
25098         char *data;
25099
25100         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel3_user, FALSE, &data);
25101         proto_item_append_text(tree, ": %s", data);
25102
25103         return offset;
25104 }
25105
25106 static int
25107 spoolss_dissect_element_UserLevel3_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25108 {
25109         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_build, 0);
25110
25111         return offset;
25112 }
25113
25114 static int
25115 spoolss_dissect_element_UserLevel3_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25116 {
25117         offset = spoolss_dissect_enum_MajorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_major, 0);
25118
25119         return offset;
25120 }
25121
25122 static int
25123 spoolss_dissect_element_UserLevel3_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25124 {
25125         offset = spoolss_dissect_enum_MinorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_minor, 0);
25126
25127         return offset;
25128 }
25129
25130 static int
25131 spoolss_dissect_element_UserLevel3_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25132 {
25133         offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_processor, 0);
25134
25135         return offset;
25136 }
25137
25138 static int
25139 spoolss_dissect_element_UserLevel3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25140 {
25141         offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_reserved, NULL);
25142
25143         return offset;
25144 }
25145
25146 int
25147 spoolss_dissect_struct_UserLevel3(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_)
25148 {
25149         proto_item *item = NULL;
25150         proto_tree *tree = NULL;
25151         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
25152         int old_offset;
25153
25154         ALIGN_TO_5_BYTES;
25155
25156         old_offset = offset;
25157
25158         if (parent_tree) {
25159                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
25160                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel3);
25161         }
25162         
25163         offset = spoolss_dissect_element_UserLevel3_size(tvb, offset, pinfo, tree, drep);
25164
25165         offset = spoolss_dissect_element_UserLevel3_flags(tvb, offset, pinfo, tree, drep);
25166
25167         offset = spoolss_dissect_element_UserLevel3_size2(tvb, offset, pinfo, tree, drep);
25168
25169         offset = spoolss_dissect_element_UserLevel3_client(tvb, offset, pinfo, tree, drep);
25170
25171         offset = spoolss_dissect_element_UserLevel3_user(tvb, offset, pinfo, tree, drep);
25172
25173         offset = spoolss_dissect_element_UserLevel3_build(tvb, offset, pinfo, tree, drep);
25174
25175         offset = spoolss_dissect_element_UserLevel3_major(tvb, offset, pinfo, tree, drep);
25176
25177         offset = spoolss_dissect_element_UserLevel3_minor(tvb, offset, pinfo, tree, drep);
25178
25179         offset = spoolss_dissect_element_UserLevel3_processor(tvb, offset, pinfo, tree, drep);
25180
25181         offset = spoolss_dissect_element_UserLevel3_reserved(tvb, offset, pinfo, tree, drep);
25182
25183
25184         proto_item_set_len(item, offset-old_offset);
25185
25186
25187         if (di->call_data->flags & DCERPC_IS_NDR64) {
25188                 ALIGN_TO_5_BYTES;
25189         }
25190
25191         return offset;
25192 }
25193
25194
25195 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
25196 /* IDL: [case(1)] [unique(1)] [case(1)] spoolss_UserLevel1 *level1; */
25197 /* IDL: [case(2)] [unique(1)] [case(2)] spoolss_UserLevel2 *level2; */
25198 /* IDL: [case(3)] [unique(1)] [case(3)] spoolss_UserLevel3 *level3; */
25199 /* IDL: } */
25200
25201 static int
25202 spoolss_dissect_element_UserLevel_level1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25203 {
25204         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel_level1_, NDR_POINTER_UNIQUE, "Pointer to Level1 (spoolss_UserLevel1)",hf_spoolss_spoolss_UserLevel_level1);
25205
25206         return offset;
25207 }
25208
25209 static int
25210 spoolss_dissect_element_UserLevel_level1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25211 {
25212         offset = spoolss_dissect_struct_UserLevel1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_UserLevel_level1,0);
25213
25214         return offset;
25215 }
25216
25217 static int
25218 spoolss_dissect_element_UserLevel_level2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25219 {
25220         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel_level2_, NDR_POINTER_UNIQUE, "Pointer to Level2 (spoolss_UserLevel2)",hf_spoolss_spoolss_UserLevel_level2);
25221
25222         return offset;
25223 }
25224
25225 static int
25226 spoolss_dissect_element_UserLevel_level2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25227 {
25228         offset = spoolss_dissect_struct_UserLevel2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_UserLevel_level2,0);
25229
25230         return offset;
25231 }
25232
25233 static int
25234 spoolss_dissect_element_UserLevel_level3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25235 {
25236         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel_level3_, NDR_POINTER_UNIQUE, "Pointer to Level3 (spoolss_UserLevel3)",hf_spoolss_spoolss_UserLevel_level3);
25237
25238         return offset;
25239 }
25240
25241 static int
25242 spoolss_dissect_element_UserLevel_level3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25243 {
25244         offset = spoolss_dissect_struct_UserLevel3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_UserLevel_level3,0);
25245
25246         return offset;
25247 }
25248
25249 static int
25250 spoolss_dissect_UserLevel(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_)
25251 {
25252         proto_item *item = NULL;
25253         proto_tree *tree = NULL;
25254         int old_offset;
25255         guint32 level;
25256
25257         old_offset = offset;
25258         if (parent_tree) {
25259                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_UserLevel");
25260                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel);
25261         }
25262
25263         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
25264         ALIGN_TO_5_BYTES;
25265
25266         switch(level) {
25267                 case 1:
25268                         offset = spoolss_dissect_element_UserLevel_level1(tvb, offset, pinfo, tree, drep);
25269                 break;
25270
25271                 case 2:
25272                         offset = spoolss_dissect_element_UserLevel_level2(tvb, offset, pinfo, tree, drep);
25273                 break;
25274
25275                 case 3:
25276                         offset = spoolss_dissect_element_UserLevel_level3(tvb, offset, pinfo, tree, drep);
25277                 break;
25278         }
25279         proto_item_set_len(item, offset-old_offset);
25280
25281
25282         return offset;
25283 }
25284
25285 /* IDL: struct { */
25286 /* IDL:         uint32 level; */
25287 /* IDL:         [switch_is(level)] spoolss_UserLevel user_info; */
25288 /* IDL: } */
25289
25290 static int
25291 spoolss_dissect_element_UserLevelCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
25292 {
25293         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevelCtr_level, level);
25294
25295         return offset;
25296 }
25297
25298 static int
25299 spoolss_dissect_element_UserLevelCtr_user_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
25300 {
25301         offset = spoolss_dissect_UserLevel(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevelCtr_user_info, *level);
25302
25303         return offset;
25304 }
25305
25306 int
25307 spoolss_dissect_struct_UserLevelCtr(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_)
25308 {
25309         g level;
25310         proto_item *item = NULL;
25311         proto_tree *tree = NULL;
25312         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
25313         int old_offset;
25314
25315         ALIGN_TO_5_BYTES;
25316
25317         old_offset = offset;
25318
25319         if (parent_tree) {
25320                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
25321                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevelCtr);
25322         }
25323         
25324         offset = spoolss_dissect_element_UserLevelCtr_level(tvb, offset, pinfo, tree, drep, &level);
25325
25326         offset = spoolss_dissect_element_UserLevelCtr_user_info(tvb, offset, pinfo, tree, drep, &level);
25327
25328
25329         proto_item_set_len(item, offset-old_offset);
25330
25331
25332         if (di->call_data->flags & DCERPC_IS_NDR64) {
25333                 ALIGN_TO_5_BYTES;
25334         }
25335
25336         return offset;
25337 }
25338
25339
25340 /* IDL: bitmap { */
25341 /* IDL:         SERVER_ACCESS_ADMINISTER =  0x00000001 , */
25342 /* IDL:         SERVER_ACCESS_ENUMERATE =  0x00000002 , */
25343 /* IDL:         PRINTER_ACCESS_ADMINISTER =  0x00000004 , */
25344 /* IDL:         PRINTER_ACCESS_USE =  0x00000008 , */
25345 /* IDL:         JOB_ACCESS_ADMINISTER =  0x00000010 , */
25346 /* IDL:         JOB_ACCESS_READ =  0x00000020 , */
25347 /* IDL: } */
25348
25349 int
25350 spoolss_dissect_bitmap_AccessRights(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_)
25351 {
25352         proto_item *item = NULL;
25353         proto_tree *tree = NULL;
25354
25355         guint32 flags;
25356         ALIGN_TO_4_BYTES;
25357
25358         if (parent_tree) {
25359                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
25360                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_AccessRights);
25361         }
25362
25363         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
25364         proto_item_append_text(item, ": ");
25365
25366         if (!flags)
25367                 proto_item_append_text(item, "(No values set)");
25368
25369         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER, tvb, offset-4, 4, flags);
25370         if (flags&( 0x00000001 )){
25371                 proto_item_append_text(item, "SERVER_ACCESS_ADMINISTER");
25372                 if (flags & (~( 0x00000001 )))
25373                         proto_item_append_text(item, ", ");
25374         }
25375         flags&=(~( 0x00000001 ));
25376
25377         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ENUMERATE, tvb, offset-4, 4, flags);
25378         if (flags&( 0x00000002 )){
25379                 proto_item_append_text(item, "SERVER_ACCESS_ENUMERATE");
25380                 if (flags & (~( 0x00000002 )))
25381                         proto_item_append_text(item, ", ");
25382         }
25383         flags&=(~( 0x00000002 ));
25384
25385         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER, tvb, offset-4, 4, flags);
25386         if (flags&( 0x00000004 )){
25387                 proto_item_append_text(item, "PRINTER_ACCESS_ADMINISTER");
25388                 if (flags & (~( 0x00000004 )))
25389                         proto_item_append_text(item, ", ");
25390         }
25391         flags&=(~( 0x00000004 ));
25392
25393         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_USE, tvb, offset-4, 4, flags);
25394         if (flags&( 0x00000008 )){
25395                 proto_item_append_text(item, "PRINTER_ACCESS_USE");
25396                 if (flags & (~( 0x00000008 )))
25397                         proto_item_append_text(item, ", ");
25398         }
25399         flags&=(~( 0x00000008 ));
25400
25401         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_JOB_ACCESS_ADMINISTER, tvb, offset-4, 4, flags);
25402         if (flags&( 0x00000010 )){
25403                 proto_item_append_text(item, "JOB_ACCESS_ADMINISTER");
25404                 if (flags & (~( 0x00000010 )))
25405                         proto_item_append_text(item, ", ");
25406         }
25407         flags&=(~( 0x00000010 ));
25408
25409         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_JOB_ACCESS_READ, tvb, offset-4, 4, flags);
25410         if (flags&( 0x00000020 )){
25411                 proto_item_append_text(item, "JOB_ACCESS_READ");
25412                 if (flags & (~( 0x00000020 )))
25413                         proto_item_append_text(item, ", ");
25414         }
25415         flags&=(~( 0x00000020 ));
25416
25417         if (flags) {
25418                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
25419         }
25420
25421         return offset;
25422 }
25423
25424
25425 /* IDL: struct { */
25426 /* IDL:         [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *value_name; */
25427 /* IDL:         [value(2*strlen_m_term(value_name))] uint32 value_name_len; */
25428 /* IDL:         winreg_Type type; */
25429 /* IDL:         [relative(1)] [subcontext_size(data_length)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type))] DATA_BLOB *data; */
25430 /* IDL:         [value(data?data->length:0)] uint32 data_length; */
25431 /* IDL: } */
25432
25433 static int
25434 spoolss_dissect_element_PrinterEnumValues_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25435 {
25436         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterEnumValues_value_name_, , "Pointer to Value Name (string)",hf_spoolss_spoolss_PrinterEnumValues_value_name);
25437
25438         return offset;
25439 }
25440
25441 static int
25442 spoolss_dissect_element_PrinterEnumValues_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25443 {
25444         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_value_name , 0);
25445
25446         return offset;
25447 }
25448
25449 static int
25450 spoolss_dissect_element_PrinterEnumValues_value_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25451 {
25452         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_value_name_len, 0);
25453
25454         return offset;
25455 }
25456
25457 static int
25458 spoolss_dissect_element_PrinterEnumValues_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25459 {
25460         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_type, 0);
25461
25462         return offset;
25463 }
25464
25465 static int
25466 spoolss_dissect_element_PrinterEnumValues_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25467 {
25468         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterEnumValues_data_, , "Pointer to Data (DATA_BLOB)",hf_spoolss_spoolss_PrinterEnumValues_data);
25469
25470         return offset;
25471 }
25472
25473 static int
25474 spoolss_dissect_element_PrinterEnumValues_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25475 {
25476         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
25477         guint0 size;
25478         int conformant = di->conformant_run;
25479         tvbuff_t *subtvb;
25480
25481         if (!conformant) {
25482                 guint32 saved_flags = di->call_data->flags;
25483                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_data_, &size);
25484                 di->call_data->flags &= ~DCERPC_IS_NDR64;
25485                 subtvb = tvb_new_subset(tvb, offset, size, -1);
25486                 spoolss_dissect_element_PrinterEnumValues_data__(subtvb, 0, pinfo, tree, drep);
25487                 offset += size;
25488                 di->call_data->flags = saved_flags;
25489         }
25490
25491         return offset;
25492 }
25493
25494 static int
25495 spoolss_dissect_element_PrinterEnumValues_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25496 {
25497         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_data, 1);
25498
25499         return offset;
25500 }
25501
25502 static int
25503 spoolss_dissect_element_PrinterEnumValues_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25504 {
25505         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_data_length, 0);
25506
25507         return offset;
25508 }
25509
25510 int
25511 spoolss_dissect_struct_PrinterEnumValues(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_)
25512 {
25513         proto_item *item = NULL;
25514         proto_tree *tree = NULL;
25515         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
25516         int old_offset;
25517
25518         ALIGN_TO_5_BYTES;
25519
25520         old_offset = offset;
25521
25522         if (parent_tree) {
25523                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
25524                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterEnumValues);
25525         }
25526         
25527         offset = spoolss_dissect_element_PrinterEnumValues_value_name(tvb, offset, pinfo, tree, drep);
25528
25529         offset = spoolss_dissect_element_PrinterEnumValues_value_name_len(tvb, offset, pinfo, tree, drep);
25530
25531         offset = spoolss_dissect_element_PrinterEnumValues_type(tvb, offset, pinfo, tree, drep);
25532
25533         offset = spoolss_dissect_element_PrinterEnumValues_data(tvb, offset, pinfo, tree, drep);
25534
25535         offset = spoolss_dissect_element_PrinterEnumValues_data_length(tvb, offset, pinfo, tree, drep);
25536
25537
25538         proto_item_set_len(item, offset-old_offset);
25539
25540
25541         if (di->call_data->flags & DCERPC_IS_NDR64) {
25542                 ALIGN_TO_5_BYTES;
25543         }
25544
25545         return offset;
25546 }
25547
25548
25549 /* IDL: [nodiscriminant(1)] union { */
25550 /* IDL: [case(0)] [case(0)] EMPTY ; */
25551 /* IDL: [case(1)] [case(1)] EMPTY ; */
25552 /* IDL: [default] ; */
25553 /* IDL: } */
25554
25555 static int
25556 spoolss_dissect_element_KeyNames_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25557 {
25558         offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_KeyNames_string_array,0);
25559
25560         return offset;
25561 }
25562
25563 static int
25564 spoolss_dissect_KeyNames(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_)
25565 {
25566         proto_item *item = NULL;
25567         proto_tree *tree = NULL;
25568         int old_offset;
25569         guint32 level = param;
25570
25571         old_offset = offset;
25572         if (parent_tree) {
25573                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_KeyNames");
25574                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_KeyNames);
25575         }
25576
25577         switch(level) {
25578                 case 0:
25579                 break;
25580
25581                 case 1:
25582                 break;
25583
25584                 default:
25585                         offset = spoolss_dissect_element_KeyNames_string_array(tvb, offset, pinfo, tree, drep);
25586                 break;
25587         }
25588         proto_item_set_len(item, offset-old_offset);
25589
25590
25591         return offset;
25592 }
25593
25594 /* IDL: bitmap { */
25595 /* IDL:         DPD_DELETE_UNUSED_FILES =  0x00000001 , */
25596 /* IDL:         DPD_DELETE_SPECIFIC_VERSION =  0x00000002 , */
25597 /* IDL:         DPD_DELETE_ALL_FILES =  0x00000004 , */
25598 /* IDL: } */
25599
25600 int
25601 spoolss_dissect_bitmap_DeleteDriverFlags(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_)
25602 {
25603         proto_item *item = NULL;
25604         proto_tree *tree = NULL;
25605
25606         guint32 flags;
25607         ALIGN_TO_4_BYTES;
25608
25609         if (parent_tree) {
25610                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
25611                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DeleteDriverFlags);
25612         }
25613
25614         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
25615         proto_item_append_text(item, ": ");
25616
25617         if (!flags)
25618                 proto_item_append_text(item, "(No values set)");
25619
25620         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES, tvb, offset-4, 4, flags);
25621         if (flags&( 0x00000001 )){
25622                 proto_item_append_text(item, "DPD_DELETE_UNUSED_FILES");
25623                 if (flags & (~( 0x00000001 )))
25624                         proto_item_append_text(item, ", ");
25625         }
25626         flags&=(~( 0x00000001 ));
25627
25628         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION, tvb, offset-4, 4, flags);
25629         if (flags&( 0x00000002 )){
25630                 proto_item_append_text(item, "DPD_DELETE_SPECIFIC_VERSION");
25631                 if (flags & (~( 0x00000002 )))
25632                         proto_item_append_text(item, ", ");
25633         }
25634         flags&=(~( 0x00000002 ));
25635
25636         proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES, tvb, offset-4, 4, flags);
25637         if (flags&( 0x00000004 )){
25638                 proto_item_append_text(item, "DPD_DELETE_ALL_FILES");
25639                 if (flags & (~( 0x00000004 )))
25640                         proto_item_append_text(item, ", ");
25641         }
25642         flags&=(~( 0x00000004 ));
25643
25644         if (flags) {
25645                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
25646         }
25647
25648         return offset;
25649 }
25650
25651
25652 /* IDL: enum { */
25653 /* IDL:         PROTOCOL_RAWTCP_TYPE=1, */
25654 /* IDL:         PROTOCOL_LPR_TYPE=2, */
25655 /* IDL: } */
25656
25657 int
25658 spoolss_dissect_enum_PortProtocol(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_)
25659 {
25660         guint32 parameter=0;
25661         if(param){
25662                 parameter=(guint32)*param;
25663         }
25664         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
25665         if(param){
25666                 *param=(guint32)parameter;
25667         }
25668         return offset;
25669 }
25670
25671
25672 /* IDL: struct { */
25673 /* IDL:         [charset(UTF16)] uint16 portname[64]; */
25674 /* IDL:         [value(0x00000001)] uint32 version; */
25675 /* IDL:         spoolss_PortProtocol protocol; */
25676 /* IDL:         [value(ndr_size_spoolss_PortData1(r,ndr->flags))] uint32 size; */
25677 /* IDL:         uint32 reserved; */
25678 /* IDL:         [charset(UTF16)] uint16 hostaddress[49]; */
25679 /* IDL:         [charset(UTF16)] uint16 snmpcommunity[33]; */
25680 /* IDL:         uint32 dblspool; */
25681 /* IDL:         [charset(UTF16)] uint16 queue[33]; */
25682 /* IDL:         [charset(UTF16)] uint16 ip_address[16]; */
25683 /* IDL:         [charset(UTF16)] uint16 hardware_address[13]; */
25684 /* IDL:         [charset(UTF16)] uint16 device_type[257]; */
25685 /* IDL:         uint32 port_number; */
25686 /* IDL:         uint32 snmp_enabled; */
25687 /* IDL:         uint32 snmp_dev_index; */
25688 /* IDL: } */
25689
25690 static int
25691 spoolss_dissect_element_PortData1_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25692 {
25693         int i;
25694         for (i = 0; i < 64; i++)
25695                 offset = spoolss_dissect_element_PortData1_portname_(tvb, offset, pinfo, tree, drep);
25696
25697         return offset;
25698 }
25699
25700 static int
25701 spoolss_dissect_element_PortData1_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25702 {
25703         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_portname, 0);
25704
25705         return offset;
25706 }
25707
25708 static int
25709 spoolss_dissect_element_PortData1_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25710 {
25711         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_version, 0);
25712
25713         return offset;
25714 }
25715
25716 static int
25717 spoolss_dissect_element_PortData1_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25718 {
25719         offset = spoolss_dissect_enum_PortProtocol(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_protocol, 0);
25720
25721         return offset;
25722 }
25723
25724 static int
25725 spoolss_dissect_element_PortData1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25726 {
25727         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_size, 0);
25728
25729         return offset;
25730 }
25731
25732 static int
25733 spoolss_dissect_element_PortData1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25734 {
25735         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_reserved, 0);
25736
25737         return offset;
25738 }
25739
25740 static int
25741 spoolss_dissect_element_PortData1_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25742 {
25743         int i;
25744         for (i = 0; i < 49; i++)
25745                 offset = spoolss_dissect_element_PortData1_hostaddress_(tvb, offset, pinfo, tree, drep);
25746
25747         return offset;
25748 }
25749
25750 static int
25751 spoolss_dissect_element_PortData1_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25752 {
25753         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_hostaddress, 0);
25754
25755         return offset;
25756 }
25757
25758 static int
25759 spoolss_dissect_element_PortData1_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25760 {
25761         int i;
25762         for (i = 0; i < 33; i++)
25763                 offset = spoolss_dissect_element_PortData1_snmpcommunity_(tvb, offset, pinfo, tree, drep);
25764
25765         return offset;
25766 }
25767
25768 static int
25769 spoolss_dissect_element_PortData1_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25770 {
25771         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_snmpcommunity, 0);
25772
25773         return offset;
25774 }
25775
25776 static int
25777 spoolss_dissect_element_PortData1_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25778 {
25779         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_dblspool, 0);
25780
25781         return offset;
25782 }
25783
25784 static int
25785 spoolss_dissect_element_PortData1_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25786 {
25787         int i;
25788         for (i = 0; i < 33; i++)
25789                 offset = spoolss_dissect_element_PortData1_queue_(tvb, offset, pinfo, tree, drep);
25790
25791         return offset;
25792 }
25793
25794 static int
25795 spoolss_dissect_element_PortData1_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25796 {
25797         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_queue, 0);
25798
25799         return offset;
25800 }
25801
25802 static int
25803 spoolss_dissect_element_PortData1_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25804 {
25805         int i;
25806         for (i = 0; i < 16; i++)
25807                 offset = spoolss_dissect_element_PortData1_ip_address_(tvb, offset, pinfo, tree, drep);
25808
25809         return offset;
25810 }
25811
25812 static int
25813 spoolss_dissect_element_PortData1_ip_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25814 {
25815         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_ip_address, 0);
25816
25817         return offset;
25818 }
25819
25820 static int
25821 spoolss_dissect_element_PortData1_hardware_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25822 {
25823         int i;
25824         for (i = 0; i < 13; i++)
25825                 offset = spoolss_dissect_element_PortData1_hardware_address_(tvb, offset, pinfo, tree, drep);
25826
25827         return offset;
25828 }
25829
25830 static int
25831 spoolss_dissect_element_PortData1_hardware_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25832 {
25833         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_hardware_address, 0);
25834
25835         return offset;
25836 }
25837
25838 static int
25839 spoolss_dissect_element_PortData1_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25840 {
25841         int i;
25842         for (i = 0; i < 257; i++)
25843                 offset = spoolss_dissect_element_PortData1_device_type_(tvb, offset, pinfo, tree, drep);
25844
25845         return offset;
25846 }
25847
25848 static int
25849 spoolss_dissect_element_PortData1_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25850 {
25851         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_device_type, 0);
25852
25853         return offset;
25854 }
25855
25856 static int
25857 spoolss_dissect_element_PortData1_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25858 {
25859         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_port_number, 0);
25860
25861         return offset;
25862 }
25863
25864 static int
25865 spoolss_dissect_element_PortData1_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25866 {
25867         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_snmp_enabled, 0);
25868
25869         return offset;
25870 }
25871
25872 static int
25873 spoolss_dissect_element_PortData1_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25874 {
25875         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_snmp_dev_index, 0);
25876
25877         return offset;
25878 }
25879
25880 int
25881 spoolss_dissect_struct_PortData1(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_)
25882 {
25883         proto_item *item = NULL;
25884         proto_tree *tree = NULL;
25885         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
25886         int old_offset;
25887
25888         ALIGN_TO_4_BYTES;
25889
25890         old_offset = offset;
25891
25892         if (parent_tree) {
25893                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
25894                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortData1);
25895         }
25896         
25897         offset = spoolss_dissect_element_PortData1_portname(tvb, offset, pinfo, tree, drep);
25898
25899         offset = spoolss_dissect_element_PortData1_version(tvb, offset, pinfo, tree, drep);
25900
25901         offset = spoolss_dissect_element_PortData1_protocol(tvb, offset, pinfo, tree, drep);
25902
25903         offset = spoolss_dissect_element_PortData1_size(tvb, offset, pinfo, tree, drep);
25904
25905         offset = spoolss_dissect_element_PortData1_reserved(tvb, offset, pinfo, tree, drep);
25906
25907         offset = spoolss_dissect_element_PortData1_hostaddress(tvb, offset, pinfo, tree, drep);
25908
25909         offset = spoolss_dissect_element_PortData1_snmpcommunity(tvb, offset, pinfo, tree, drep);
25910
25911         offset = spoolss_dissect_element_PortData1_dblspool(tvb, offset, pinfo, tree, drep);
25912
25913         offset = spoolss_dissect_element_PortData1_queue(tvb, offset, pinfo, tree, drep);
25914
25915         offset = spoolss_dissect_element_PortData1_ip_address(tvb, offset, pinfo, tree, drep);
25916
25917         offset = spoolss_dissect_element_PortData1_hardware_address(tvb, offset, pinfo, tree, drep);
25918
25919         offset = spoolss_dissect_element_PortData1_device_type(tvb, offset, pinfo, tree, drep);
25920
25921         offset = spoolss_dissect_element_PortData1_port_number(tvb, offset, pinfo, tree, drep);
25922
25923         offset = spoolss_dissect_element_PortData1_snmp_enabled(tvb, offset, pinfo, tree, drep);
25924
25925         offset = spoolss_dissect_element_PortData1_snmp_dev_index(tvb, offset, pinfo, tree, drep);
25926
25927
25928         proto_item_set_len(item, offset-old_offset);
25929
25930
25931         if (di->call_data->flags & DCERPC_IS_NDR64) {
25932                 ALIGN_TO_4_BYTES;
25933         }
25934
25935         return offset;
25936 }
25937
25938
25939 /* IDL: struct { */
25940 /* IDL:         [charset(UTF16)] uint16 portname[64]; */
25941 /* IDL:         [value(0x00000002)] uint32 version; */
25942 /* IDL:         spoolss_PortProtocol protocol; */
25943 /* IDL:         [value(ndr_size_spoolss_PortData2(r,ndr->flags))] uint32 size; */
25944 /* IDL:         uint32 reserved; */
25945 /* IDL:         [charset(UTF16)] uint16 hostaddress[128]; */
25946 /* IDL:         [charset(UTF16)] uint16 snmpcommunity[33]; */
25947 /* IDL:         uint32 dblspool; */
25948 /* IDL:         [charset(UTF16)] uint16 queue[33]; */
25949 /* IDL:         [charset(UTF16)] uint16 device_type[257]; */
25950 /* IDL:         uint32 port_number; */
25951 /* IDL:         uint32 snmp_enabled; */
25952 /* IDL:         uint32 snmp_dev_index; */
25953 /* IDL:         uint32 port_monitor_mib_index; */
25954 /* IDL: } */
25955
25956 static int
25957 spoolss_dissect_element_PortData2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25958 {
25959         int i;
25960         for (i = 0; i < 64; i++)
25961                 offset = spoolss_dissect_element_PortData2_portname_(tvb, offset, pinfo, tree, drep);
25962
25963         return offset;
25964 }
25965
25966 static int
25967 spoolss_dissect_element_PortData2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25968 {
25969         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_portname, 0);
25970
25971         return offset;
25972 }
25973
25974 static int
25975 spoolss_dissect_element_PortData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25976 {
25977         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_version, 0);
25978
25979         return offset;
25980 }
25981
25982 static int
25983 spoolss_dissect_element_PortData2_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25984 {
25985         offset = spoolss_dissect_enum_PortProtocol(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_protocol, 0);
25986
25987         return offset;
25988 }
25989
25990 static int
25991 spoolss_dissect_element_PortData2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
25992 {
25993         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_size, 0);
25994
25995         return offset;
25996 }
25997
25998 static int
25999 spoolss_dissect_element_PortData2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26000 {
26001         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_reserved, 0);
26002
26003         return offset;
26004 }
26005
26006 static int
26007 spoolss_dissect_element_PortData2_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26008 {
26009         int i;
26010         for (i = 0; i < 128; i++)
26011                 offset = spoolss_dissect_element_PortData2_hostaddress_(tvb, offset, pinfo, tree, drep);
26012
26013         return offset;
26014 }
26015
26016 static int
26017 spoolss_dissect_element_PortData2_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26018 {
26019         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_hostaddress, 0);
26020
26021         return offset;
26022 }
26023
26024 static int
26025 spoolss_dissect_element_PortData2_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26026 {
26027         int i;
26028         for (i = 0; i < 33; i++)
26029                 offset = spoolss_dissect_element_PortData2_snmpcommunity_(tvb, offset, pinfo, tree, drep);
26030
26031         return offset;
26032 }
26033
26034 static int
26035 spoolss_dissect_element_PortData2_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26036 {
26037         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_snmpcommunity, 0);
26038
26039         return offset;
26040 }
26041
26042 static int
26043 spoolss_dissect_element_PortData2_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26044 {
26045         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_dblspool, 0);
26046
26047         return offset;
26048 }
26049
26050 static int
26051 spoolss_dissect_element_PortData2_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26052 {
26053         int i;
26054         for (i = 0; i < 33; i++)
26055                 offset = spoolss_dissect_element_PortData2_queue_(tvb, offset, pinfo, tree, drep);
26056
26057         return offset;
26058 }
26059
26060 static int
26061 spoolss_dissect_element_PortData2_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26062 {
26063         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_queue, 0);
26064
26065         return offset;
26066 }
26067
26068 static int
26069 spoolss_dissect_element_PortData2_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26070 {
26071         int i;
26072         for (i = 0; i < 257; i++)
26073                 offset = spoolss_dissect_element_PortData2_device_type_(tvb, offset, pinfo, tree, drep);
26074
26075         return offset;
26076 }
26077
26078 static int
26079 spoolss_dissect_element_PortData2_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26080 {
26081         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_device_type, 0);
26082
26083         return offset;
26084 }
26085
26086 static int
26087 spoolss_dissect_element_PortData2_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26088 {
26089         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_port_number, 0);
26090
26091         return offset;
26092 }
26093
26094 static int
26095 spoolss_dissect_element_PortData2_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26096 {
26097         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_snmp_enabled, 0);
26098
26099         return offset;
26100 }
26101
26102 static int
26103 spoolss_dissect_element_PortData2_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26104 {
26105         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_snmp_dev_index, 0);
26106
26107         return offset;
26108 }
26109
26110 static int
26111 spoolss_dissect_element_PortData2_port_monitor_mib_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26112 {
26113         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_port_monitor_mib_index, 0);
26114
26115         return offset;
26116 }
26117
26118 int
26119 spoolss_dissect_struct_PortData2(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_)
26120 {
26121         proto_item *item = NULL;
26122         proto_tree *tree = NULL;
26123         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26124         int old_offset;
26125
26126         ALIGN_TO_4_BYTES;
26127
26128         old_offset = offset;
26129
26130         if (parent_tree) {
26131                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26132                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortData2);
26133         }
26134         
26135         offset = spoolss_dissect_element_PortData2_portname(tvb, offset, pinfo, tree, drep);
26136
26137         offset = spoolss_dissect_element_PortData2_version(tvb, offset, pinfo, tree, drep);
26138
26139         offset = spoolss_dissect_element_PortData2_protocol(tvb, offset, pinfo, tree, drep);
26140
26141         offset = spoolss_dissect_element_PortData2_size(tvb, offset, pinfo, tree, drep);
26142
26143         offset = spoolss_dissect_element_PortData2_reserved(tvb, offset, pinfo, tree, drep);
26144
26145         offset = spoolss_dissect_element_PortData2_hostaddress(tvb, offset, pinfo, tree, drep);
26146
26147         offset = spoolss_dissect_element_PortData2_snmpcommunity(tvb, offset, pinfo, tree, drep);
26148
26149         offset = spoolss_dissect_element_PortData2_dblspool(tvb, offset, pinfo, tree, drep);
26150
26151         offset = spoolss_dissect_element_PortData2_queue(tvb, offset, pinfo, tree, drep);
26152
26153         offset = spoolss_dissect_element_PortData2_device_type(tvb, offset, pinfo, tree, drep);
26154
26155         offset = spoolss_dissect_element_PortData2_port_number(tvb, offset, pinfo, tree, drep);
26156
26157         offset = spoolss_dissect_element_PortData2_snmp_enabled(tvb, offset, pinfo, tree, drep);
26158
26159         offset = spoolss_dissect_element_PortData2_snmp_dev_index(tvb, offset, pinfo, tree, drep);
26160
26161         offset = spoolss_dissect_element_PortData2_port_monitor_mib_index(tvb, offset, pinfo, tree, drep);
26162
26163
26164         proto_item_set_len(item, offset-old_offset);
26165
26166
26167         if (di->call_data->flags & DCERPC_IS_NDR64) {
26168                 ALIGN_TO_4_BYTES;
26169         }
26170
26171         return offset;
26172 }
26173
26174
26175 /* IDL: struct { */
26176 /* IDL:         [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string dll_name; */
26177 /* IDL: } */
26178
26179 static int
26180 spoolss_dissect_element_MonitorUi_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26181 {
26182         offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorUi_dll_name , 0);
26183
26184         return offset;
26185 }
26186
26187 int
26188 spoolss_dissect_struct_MonitorUi(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_)
26189 {
26190         proto_item *item = NULL;
26191         proto_tree *tree = NULL;
26192         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26193         int old_offset;
26194
26195         ALIGN_TO_4_BYTES;
26196
26197         old_offset = offset;
26198
26199         if (parent_tree) {
26200                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26201                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorUi);
26202         }
26203         
26204         offset = spoolss_dissect_element_MonitorUi_dll_name(tvb, offset, pinfo, tree, drep);
26205
26206
26207         proto_item_set_len(item, offset-old_offset);
26208
26209
26210         if (di->call_data->flags & DCERPC_IS_NDR64) {
26211                 ALIGN_TO_4_BYTES;
26212         }
26213
26214         return offset;
26215 }
26216
26217
26218 /* IDL: bitmap { */
26219 /* IDL:         APD_STRICT_UPGRADE =  0x00000001 , */
26220 /* IDL:         APD_STRICT_DOWNGRADE =  0x00000002 , */
26221 /* IDL:         APD_COPY_ALL_FILES =  0x00000004 , */
26222 /* IDL:         APD_COPY_NEW_FILES =  0x00000008 , */
26223 /* IDL:         APD_COPY_FROM_DIRECTORY =  0x00000010 , */
26224 /* IDL:         APD_DONT_COPY_FILES_TO_CLUSTER =  0x00001000 , */
26225 /* IDL:         APD_COPY_TO_ALL_SPOOLERS =  0x00002000 , */
26226 /* IDL:         APD_RETURN_BLOCKING_STATUS_CODE =  0x00010000 , */
26227 /* IDL: } */
26228
26229 int
26230 spoolss_dissect_bitmap_AddPrinterDriverExFlags(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_)
26231 {
26232         proto_item *item = NULL;
26233         proto_tree *tree = NULL;
26234
26235         guint32 flags;
26236         ALIGN_TO_4_BYTES;
26237
26238         if (parent_tree) {
26239                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
26240                 tree = proto_item_add_subtree(item,ett_spoolss_spoolss_AddPrinterDriverExFlags);
26241         }
26242
26243         offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
26244         proto_item_append_text(item, ": ");
26245
26246         if (!flags)
26247                 proto_item_append_text(item, "(No values set)");
26248
26249         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE, tvb, offset-4, 4, flags);
26250         if (flags&( 0x00000001 )){
26251                 proto_item_append_text(item, "APD_STRICT_UPGRADE");
26252                 if (flags & (~( 0x00000001 )))
26253                         proto_item_append_text(item, ", ");
26254         }
26255         flags&=(~( 0x00000001 ));
26256
26257         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE, tvb, offset-4, 4, flags);
26258         if (flags&( 0x00000002 )){
26259                 proto_item_append_text(item, "APD_STRICT_DOWNGRADE");
26260                 if (flags & (~( 0x00000002 )))
26261                         proto_item_append_text(item, ", ");
26262         }
26263         flags&=(~( 0x00000002 ));
26264
26265         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES, tvb, offset-4, 4, flags);
26266         if (flags&( 0x00000004 )){
26267                 proto_item_append_text(item, "APD_COPY_ALL_FILES");
26268                 if (flags & (~( 0x00000004 )))
26269                         proto_item_append_text(item, ", ");
26270         }
26271         flags&=(~( 0x00000004 ));
26272
26273         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES, tvb, offset-4, 4, flags);
26274         if (flags&( 0x00000008 )){
26275                 proto_item_append_text(item, "APD_COPY_NEW_FILES");
26276                 if (flags & (~( 0x00000008 )))
26277                         proto_item_append_text(item, ", ");
26278         }
26279         flags&=(~( 0x00000008 ));
26280
26281         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY, tvb, offset-4, 4, flags);
26282         if (flags&( 0x00000010 )){
26283                 proto_item_append_text(item, "APD_COPY_FROM_DIRECTORY");
26284                 if (flags & (~( 0x00000010 )))
26285                         proto_item_append_text(item, ", ");
26286         }
26287         flags&=(~( 0x00000010 ));
26288
26289         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER, tvb, offset-4, 4, flags);
26290         if (flags&( 0x00001000 )){
26291                 proto_item_append_text(item, "APD_DONT_COPY_FILES_TO_CLUSTER");
26292                 if (flags & (~( 0x00001000 )))
26293                         proto_item_append_text(item, ", ");
26294         }
26295         flags&=(~( 0x00001000 ));
26296
26297         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS, tvb, offset-4, 4, flags);
26298         if (flags&( 0x00002000 )){
26299                 proto_item_append_text(item, "APD_COPY_TO_ALL_SPOOLERS");
26300                 if (flags & (~( 0x00002000 )))
26301                         proto_item_append_text(item, ", ");
26302         }
26303         flags&=(~( 0x00002000 ));
26304
26305         proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE, tvb, offset-4, 4, flags);
26306         if (flags&( 0x00010000 )){
26307                 proto_item_append_text(item, "APD_RETURN_BLOCKING_STATUS_CODE");
26308                 if (flags & (~( 0x00010000 )))
26309                         proto_item_append_text(item, ", ");
26310         }
26311         flags&=(~( 0x00010000 ));
26312
26313         if (flags) {
26314                 proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
26315         }
26316
26317         return offset;
26318 }
26319
26320
26321 /* IDL: enum { */
26322 /* IDL:         BIDI_NULL=0x00000000, */
26323 /* IDL:         BIDI_INT=0x00000001, */
26324 /* IDL:         BIDI_FLOAT=0x00000002, */
26325 /* IDL:         BIDI_BOOL=0x00000003, */
26326 /* IDL:         BIDI_STRING=0x00000004, */
26327 /* IDL:         BIDI_TEXT=0x00000005, */
26328 /* IDL:         BIDI_ENUM=0x00000006, */
26329 /* IDL:         BIDI_BLOB=0x00000007, */
26330 /* IDL: } */
26331
26332 int
26333 spoolss_dissect_enum_BIDI_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_)
26334 {
26335         guint1632 parameter=0;
26336         if(param){
26337                 parameter=(guint1632)*param;
26338         }
26339         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
26340         if(param){
26341                 *param=(guint32)parameter;
26342         }
26343         return offset;
26344 }
26345
26346
26347 /* IDL: struct { */
26348 /* IDL:         uint32 cbBuf; */
26349 /* IDL:         [unique(1)] [size_is(cbBuf)] uint8 *pszString; */
26350 /* IDL: } */
26351
26352 static int
26353 spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26354 {
26355         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BINARY_CONTAINER_cbBuf, 0);
26356
26357         return offset;
26358 }
26359
26360 static int
26361 spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26362 {
26363         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_, NDR_POINTER_UNIQUE, "Pointer to Pszstring (uint8)",hf_spoolss_RPC_BINARY_CONTAINER_pszString);
26364
26365         return offset;
26366 }
26367
26368 static int
26369 spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26370 {
26371         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__);
26372
26373         return offset;
26374 }
26375
26376 static int
26377 spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26378 {
26379         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BINARY_CONTAINER_pszString, 0);
26380
26381         return offset;
26382 }
26383
26384 int
26385 spoolss_dissect_struct_RPC_BINARY_CONTAINER(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_)
26386 {
26387         proto_item *item = NULL;
26388         proto_tree *tree = NULL;
26389         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26390         int old_offset;
26391
26392         ALIGN_TO_5_BYTES;
26393
26394         old_offset = offset;
26395
26396         if (parent_tree) {
26397                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26398                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BINARY_CONTAINER);
26399         }
26400         
26401         offset = spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvb, offset, pinfo, tree, drep);
26402
26403         offset = spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvb, offset, pinfo, tree, drep);
26404
26405
26406         proto_item_set_len(item, offset-old_offset);
26407
26408
26409         if (di->call_data->flags & DCERPC_IS_NDR64) {
26410                 ALIGN_TO_5_BYTES;
26411         }
26412
26413         return offset;
26414 }
26415
26416
26417 /* IDL: [ms_union(1)] [switch_type(uint32)] union { */
26418 /* IDL: [case(BIDI_NULL)] [case(BIDI_NULL)] uint32 bData; */
26419 /* IDL: [case(BIDI_BOOL)] [case(BIDI_BOOL)] uint32 bData; */
26420 /* IDL: [case(BIDI_INT)] [case(BIDI_INT)] uint32 iData; */
26421 /* IDL: [case(BIDI_STRING)] [unique(1)] [charset(UTF16)] [case(BIDI_STRING)] uint16 *sData; */
26422 /* IDL: [case(BIDI_TEXT)] [unique(1)] [charset(UTF16)] [case(BIDI_TEXT)] uint16 *sData; */
26423 /* IDL: [case(BIDI_ENUM)] [unique(1)] [charset(UTF16)] [case(BIDI_ENUM)] uint16 *sData; */
26424 /* IDL: [case(BIDI_BLOB)] [case(BIDI_BLOB)] RPC_BINARY_CONTAINER biData; */
26425 /* IDL: } */
26426
26427 static int
26428 spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26429 {
26430         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u_bData, 0);
26431
26432         return offset;
26433 }
26434
26435 static int
26436 spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26437 {
26438         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u_bData, 0);
26439
26440         return offset;
26441 }
26442
26443 static int
26444 spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26445 {
26446         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u_iData, 0);
26447
26448         return offset;
26449 }
26450
26451 static int
26452 spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26453 {
26454         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_DATA_u_sData_, NDR_POINTER_UNIQUE, "Pointer to Sdata (uint16)",hf_spoolss_RPC_BIDI_DATA_u_sData);
26455
26456         return offset;
26457 }
26458
26459 static int
26460 spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26461 {
26462         char *data;
26463
26464         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_DATA_u_sData, FALSE, &data);
26465         proto_item_append_text(tree, ": %s", data);
26466
26467         return offset;
26468 }
26469
26470 static int
26471 spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26472 {
26473         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_DATA_u_sData_, NDR_POINTER_UNIQUE, "Pointer to Sdata (uint16)",hf_spoolss_RPC_BIDI_DATA_u_sData);
26474
26475         return offset;
26476 }
26477
26478 static int
26479 spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26480 {
26481         char *data;
26482
26483         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_DATA_u_sData, FALSE, &data);
26484         proto_item_append_text(tree, ": %s", data);
26485
26486         return offset;
26487 }
26488
26489 static int
26490 spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26491 {
26492         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_DATA_u_sData_, NDR_POINTER_UNIQUE, "Pointer to Sdata (uint16)",hf_spoolss_RPC_BIDI_DATA_u_sData);
26493
26494         return offset;
26495 }
26496
26497 static int
26498 spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26499 {
26500         char *data;
26501
26502         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_DATA_u_sData, FALSE, &data);
26503         proto_item_append_text(tree, ": %s", data);
26504
26505         return offset;
26506 }
26507
26508 static int
26509 spoolss_dissect_element_RPC_BIDI_DATA_u_biData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26510 {
26511         offset = spoolss_dissect_struct_RPC_BINARY_CONTAINER(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_DATA_u_biData,0);
26512
26513         return offset;
26514 }
26515
26516 static int
26517 spoolss_dissect_RPC_BIDI_DATA_u(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_)
26518 {
26519         proto_item *item = NULL;
26520         proto_tree *tree = NULL;
26521         int old_offset;
26522         guint32 level;
26523
26524         old_offset = offset;
26525         if (parent_tree) {
26526                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "RPC_BIDI_DATA_u");
26527                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_DATA_u);
26528         }
26529
26530         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
26531         ALIGN_TO_5_BYTES;
26532
26533         switch(level) {
26534                 case BIDI_NULL:
26535                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvb, offset, pinfo, tree, drep);
26536                 break;
26537
26538                 case BIDI_BOOL:
26539                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvb, offset, pinfo, tree, drep);
26540                 break;
26541
26542                 case BIDI_INT:
26543                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvb, offset, pinfo, tree, drep);
26544                 break;
26545
26546                 case BIDI_STRING:
26547                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvb, offset, pinfo, tree, drep);
26548                 break;
26549
26550                 case BIDI_TEXT:
26551                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvb, offset, pinfo, tree, drep);
26552                 break;
26553
26554                 case BIDI_ENUM:
26555                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvb, offset, pinfo, tree, drep);
26556                 break;
26557
26558                 case BIDI_BLOB:
26559                         offset = spoolss_dissect_element_RPC_BIDI_DATA_u_biData(tvb, offset, pinfo, tree, drep);
26560                 break;
26561         }
26562         proto_item_set_len(item, offset-old_offset);
26563
26564
26565         return offset;
26566 }
26567
26568 /* IDL: struct { */
26569 /* IDL:         uint32 dwBidiType; */
26570 /* IDL:         [switch_is(dwBidiType)] RPC_BIDI_DATA_u u; */
26571 /* IDL: } */
26572
26573 static int
26574 spoolss_dissect_element_RPC_BIDI_DATA_dwBidiType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType)
26575 {
26576         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_dwBidiType, dwBidiType);
26577
26578         return offset;
26579 }
26580
26581 static int
26582 spoolss_dissect_element_RPC_BIDI_DATA_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType)
26583 {
26584         offset = spoolss_dissect_RPC_BIDI_DATA_u(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u, *dwBidiType);
26585
26586         return offset;
26587 }
26588
26589 int
26590 spoolss_dissect_struct_RPC_BIDI_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_)
26591 {
26592         g dwBidiType;
26593         proto_item *item = NULL;
26594         proto_tree *tree = NULL;
26595         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26596         int old_offset;
26597
26598         ALIGN_TO_5_BYTES;
26599
26600         old_offset = offset;
26601
26602         if (parent_tree) {
26603                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26604                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_DATA);
26605         }
26606         
26607         offset = spoolss_dissect_element_RPC_BIDI_DATA_dwBidiType(tvb, offset, pinfo, tree, drep, &dwBidiType);
26608
26609         offset = spoolss_dissect_element_RPC_BIDI_DATA_u(tvb, offset, pinfo, tree, drep, &dwBidiType);
26610
26611
26612         proto_item_set_len(item, offset-old_offset);
26613
26614
26615         if (di->call_data->flags & DCERPC_IS_NDR64) {
26616                 ALIGN_TO_5_BYTES;
26617         }
26618
26619         return offset;
26620 }
26621
26622
26623 /* IDL: struct { */
26624 /* IDL:         uint32 dwReqNumber; */
26625 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *pSchema; */
26626 /* IDL:         RPC_BIDI_DATA data; */
26627 /* IDL: } */
26628
26629 static int
26630 spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26631 {
26632         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_DATA_dwReqNumber, 0);
26633
26634         return offset;
26635 }
26636
26637 static int
26638 spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26639 {
26640         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema_, NDR_POINTER_UNIQUE, "Pointer to Pschema (uint16)",hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema);
26641
26642         return offset;
26643 }
26644
26645 static int
26646 spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26647 {
26648         char *data;
26649
26650         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema, FALSE, &data);
26651         proto_item_append_text(tree, ": %s", data);
26652
26653         return offset;
26654 }
26655
26656 static int
26657 spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26658 {
26659         offset = spoolss_dissect_struct_RPC_BIDI_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_REQUEST_DATA_data,0);
26660
26661         return offset;
26662 }
26663
26664 int
26665 spoolss_dissect_struct_RPC_BIDI_REQUEST_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_)
26666 {
26667         proto_item *item = NULL;
26668         proto_tree *tree = NULL;
26669         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26670         int old_offset;
26671
26672         ALIGN_TO_5_BYTES;
26673
26674         old_offset = offset;
26675
26676         if (parent_tree) {
26677                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26678                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_REQUEST_DATA);
26679         }
26680         
26681         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_dwReqNumber(tvb, offset, pinfo, tree, drep);
26682
26683         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema(tvb, offset, pinfo, tree, drep);
26684
26685         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_data(tvb, offset, pinfo, tree, drep);
26686
26687
26688         proto_item_set_len(item, offset-old_offset);
26689
26690
26691         if (di->call_data->flags & DCERPC_IS_NDR64) {
26692                 ALIGN_TO_5_BYTES;
26693         }
26694
26695         return offset;
26696 }
26697
26698
26699 /* IDL: struct { */
26700 /* IDL:         [value(1)] uint32 Version; */
26701 /* IDL:         uint32 Flags; */
26702 /* IDL:         uint32 Count; */
26703 /* IDL:         [unique(1)] [size_is(Count)] RPC_BIDI_REQUEST_DATA *aData[*]; */
26704 /* IDL: } */
26705
26706 static int
26707 spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26708 {
26709         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Version, 0);
26710
26711         return offset;
26712 }
26713
26714 static int
26715 spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26716 {
26717         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Flags, 0);
26718
26719         return offset;
26720 }
26721
26722 static int
26723 spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26724 {
26725         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Count, 0);
26726
26727         return offset;
26728 }
26729
26730 static int
26731 spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26732 {
26733         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData_);
26734
26735         return offset;
26736 }
26737
26738 static int
26739 spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26740 {
26741         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData__, NDR_POINTER_UNIQUE, "Pointer to Adata (RPC_BIDI_REQUEST_DATA)",hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData);
26742
26743         return offset;
26744 }
26745
26746 static int
26747 spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26748 {
26749         offset = spoolss_dissect_struct_RPC_BIDI_REQUEST_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData,0);
26750
26751         return offset;
26752 }
26753
26754 int
26755 spoolss_dissect_struct_RPC_BIDI_REQUEST_CONTAINER(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_)
26756 {
26757         proto_item *item = NULL;
26758         proto_tree *tree = NULL;
26759         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26760         int old_offset;
26761
26762         ALIGN_TO_5_BYTES;
26763
26764         old_offset = offset;
26765
26766         if (parent_tree) {
26767                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26768                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_REQUEST_CONTAINER);
26769         }
26770         
26771         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Version(tvb, offset, pinfo, tree, drep);
26772
26773         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Flags(tvb, offset, pinfo, tree, drep);
26774
26775         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Count(tvb, offset, pinfo, tree, drep);
26776
26777         offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData(tvb, offset, pinfo, tree, drep);
26778
26779
26780         proto_item_set_len(item, offset-old_offset);
26781
26782
26783         if (di->call_data->flags & DCERPC_IS_NDR64) {
26784                 ALIGN_TO_5_BYTES;
26785         }
26786
26787         return offset;
26788 }
26789
26790
26791 /* IDL: struct { */
26792 /* IDL:         uint32 dwResult; */
26793 /* IDL:         uint32 dwReqNumber; */
26794 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *pSchema; */
26795 /* IDL:         RPC_BIDI_DATA data; */
26796 /* IDL: } */
26797
26798 static int
26799 spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26800 {
26801         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwResult, 0);
26802
26803         return offset;
26804 }
26805
26806 static int
26807 spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26808 {
26809         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwReqNumber, 0);
26810
26811         return offset;
26812 }
26813
26814 static int
26815 spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26816 {
26817         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema_, NDR_POINTER_UNIQUE, "Pointer to Pschema (uint16)",hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema);
26818
26819         return offset;
26820 }
26821
26822 static int
26823 spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26824 {
26825         char *data;
26826
26827         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema, FALSE, &data);
26828         proto_item_append_text(tree, ": %s", data);
26829
26830         return offset;
26831 }
26832
26833 static int
26834 spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26835 {
26836         offset = spoolss_dissect_struct_RPC_BIDI_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_RESPONSE_DATA_data,0);
26837
26838         return offset;
26839 }
26840
26841 int
26842 spoolss_dissect_struct_RPC_BIDI_RESPONSE_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_)
26843 {
26844         proto_item *item = NULL;
26845         proto_tree *tree = NULL;
26846         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26847         int old_offset;
26848
26849         ALIGN_TO_5_BYTES;
26850
26851         old_offset = offset;
26852
26853         if (parent_tree) {
26854                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26855                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_RESPONSE_DATA);
26856         }
26857         
26858         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwResult(tvb, offset, pinfo, tree, drep);
26859
26860         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwReqNumber(tvb, offset, pinfo, tree, drep);
26861
26862         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema(tvb, offset, pinfo, tree, drep);
26863
26864         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_data(tvb, offset, pinfo, tree, drep);
26865
26866
26867         proto_item_set_len(item, offset-old_offset);
26868
26869
26870         if (di->call_data->flags & DCERPC_IS_NDR64) {
26871                 ALIGN_TO_5_BYTES;
26872         }
26873
26874         return offset;
26875 }
26876
26877
26878 /* IDL: struct { */
26879 /* IDL:         [value(1)] uint32 Version; */
26880 /* IDL:         uint32 Flags; */
26881 /* IDL:         uint32 Count; */
26882 /* IDL:         [unique(1)] [size_is(Count)] RPC_BIDI_RESPONSE_DATA *aData[*]; */
26883 /* IDL: } */
26884
26885 static int
26886 spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26887 {
26888         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Version, 0);
26889
26890         return offset;
26891 }
26892
26893 static int
26894 spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26895 {
26896         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Flags, 0);
26897
26898         return offset;
26899 }
26900
26901 static int
26902 spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26903 {
26904         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Count, 0);
26905
26906         return offset;
26907 }
26908
26909 static int
26910 spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26911 {
26912         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData_);
26913
26914         return offset;
26915 }
26916
26917 static int
26918 spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26919 {
26920         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData__, NDR_POINTER_UNIQUE, "Pointer to Adata (RPC_BIDI_RESPONSE_DATA)",hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData);
26921
26922         return offset;
26923 }
26924
26925 static int
26926 spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26927 {
26928         offset = spoolss_dissect_struct_RPC_BIDI_RESPONSE_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData,0);
26929
26930         return offset;
26931 }
26932
26933 int
26934 spoolss_dissect_struct_RPC_BIDI_RESPONSE_CONTAINER(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_)
26935 {
26936         proto_item *item = NULL;
26937         proto_tree *tree = NULL;
26938         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
26939         int old_offset;
26940
26941         ALIGN_TO_5_BYTES;
26942
26943         old_offset = offset;
26944
26945         if (parent_tree) {
26946                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
26947                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_RESPONSE_CONTAINER);
26948         }
26949         
26950         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Version(tvb, offset, pinfo, tree, drep);
26951
26952         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Flags(tvb, offset, pinfo, tree, drep);
26953
26954         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Count(tvb, offset, pinfo, tree, drep);
26955
26956         offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData(tvb, offset, pinfo, tree, drep);
26957
26958
26959         proto_item_set_len(item, offset-old_offset);
26960
26961
26962         if (di->call_data->flags & DCERPC_IS_NDR64) {
26963                 ALIGN_TO_5_BYTES;
26964         }
26965
26966         return offset;
26967 }
26968
26969
26970 /* IDL: struct { */
26971 /* IDL:         GUID core_driver_guid; */
26972 /* IDL:         NTTIME driver_date; */
26973 /* IDL:         hyper driver_version; */
26974 /* IDL:         [charset(UTF8)] uint8 formname[520]; */
26975 /* IDL: } */
26976
26977 static int
26978 spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26979 {
26980         offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_core_driver_guid, NULL);
26981
26982         return offset;
26983 }
26984
26985 static int
26986 spoolss_dissect_element_CorePrinterDriver_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26987 {
26988         offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_driver_date);
26989
26990         return offset;
26991 }
26992
26993 static int
26994 spoolss_dissect_element_CorePrinterDriver_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
26995 {
26996         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_driver_version, NULL);
26997
26998         return offset;
26999 }
27000
27001 static int
27002 spoolss_dissect_element_CorePrinterDriver_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27003 {
27004         int i;
27005         for (i = 0; i < 520; i++)
27006                 offset = spoolss_dissect_element_CorePrinterDriver_formname_(tvb, offset, pinfo, tree, drep);
27007
27008         return offset;
27009 }
27010
27011 static int
27012 spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27013 {
27014         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_formname, 0);
27015
27016         return offset;
27017 }
27018
27019 int
27020 spoolss_dissect_struct_CorePrinterDriver(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_)
27021 {
27022         proto_item *item = NULL;
27023         proto_tree *tree = NULL;
27024         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
27025         int old_offset;
27026
27027         ALIGN_TO_8_BYTES;
27028
27029         old_offset = offset;
27030
27031         if (parent_tree) {
27032                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
27033                 tree = proto_item_add_subtree(item, ett_spoolss_spoolss_CorePrinterDriver);
27034         }
27035         
27036         offset = spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvb, offset, pinfo, tree, drep);
27037
27038         offset = spoolss_dissect_element_CorePrinterDriver_driver_date(tvb, offset, pinfo, tree, drep);
27039
27040         offset = spoolss_dissect_element_CorePrinterDriver_driver_version(tvb, offset, pinfo, tree, drep);
27041
27042         offset = spoolss_dissect_element_CorePrinterDriver_formname(tvb, offset, pinfo, tree, drep);
27043
27044
27045         proto_item_set_len(item, offset-old_offset);
27046
27047
27048         if (di->call_data->flags & DCERPC_IS_NDR64) {
27049                 ALIGN_TO_8_BYTES;
27050         }
27051
27052         return offset;
27053 }
27054
27055
27056 /* IDL: enum { */
27057 /* IDL:         kRpcPropertyTypeString=1, */
27058 /* IDL:         kRpcPropertyTypeInt32=2, */
27059 /* IDL:         kRpcPropertyTypeInt64=3, */
27060 /* IDL:         kRpcPropertyTypeByte=4, */
27061 /* IDL:         kRpcPropertyTypeBuffer=5, */
27062 /* IDL: } */
27063
27064 int
27065 spoolss_dissect_enum_RPC_EPrintPropertyType(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_)
27066 {
27067         guint1632 parameter=0;
27068         if(param){
27069                 parameter=(guint1632)*param;
27070         }
27071         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
27072         if(param){
27073                 *param=(guint32)parameter;
27074         }
27075         return offset;
27076 }
27077
27078
27079 /* IDL: struct { */
27080 /* IDL:         uint32 cbBuf; */
27081 /* IDL:         [unique(1)] [size_is(cbBuf)] uint8 *pBuf; */
27082 /* IDL: } */
27083
27084 static int
27085 spoolss_dissect_element_propertyBlob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27086 {
27087         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_propertyBlob_cbBuf, 0);
27088
27089         return offset;
27090 }
27091
27092 static int
27093 spoolss_dissect_element_propertyBlob_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27094 {
27095         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_propertyBlob_pBuf_, NDR_POINTER_UNIQUE, "Pointer to Pbuf (uint8)",hf_spoolss_propertyBlob_pBuf);
27096
27097         return offset;
27098 }
27099
27100 static int
27101 spoolss_dissect_element_propertyBlob_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27102 {
27103         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_propertyBlob_pBuf__);
27104
27105         return offset;
27106 }
27107
27108 static int
27109 spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27110 {
27111         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_propertyBlob_pBuf, 0);
27112
27113         return offset;
27114 }
27115
27116 int
27117 spoolss_dissect_struct_propertyBlob(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_)
27118 {
27119         proto_item *item = NULL;
27120         proto_tree *tree = NULL;
27121         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
27122         int old_offset;
27123
27124         ALIGN_TO_5_BYTES;
27125
27126         old_offset = offset;
27127
27128         if (parent_tree) {
27129                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
27130                 tree = proto_item_add_subtree(item, ett_spoolss_propertyBlob);
27131         }
27132         
27133         offset = spoolss_dissect_element_propertyBlob_cbBuf(tvb, offset, pinfo, tree, drep);
27134
27135         offset = spoolss_dissect_element_propertyBlob_pBuf(tvb, offset, pinfo, tree, drep);
27136
27137
27138         proto_item_set_len(item, offset-old_offset);
27139
27140
27141         if (di->call_data->flags & DCERPC_IS_NDR64) {
27142                 ALIGN_TO_5_BYTES;
27143         }
27144
27145         return offset;
27146 }
27147
27148
27149 /* IDL: [ms_union(1)] [switch_type(RPC_EPrintPropertyType)] union { */
27150 /* IDL: [case(kRpcPropertyTypeString)] [unique(1)] [charset(UTF16)] [case(kRpcPropertyTypeString)] uint16 *propertyString; */
27151 /* IDL: [case(kRpcPropertyTypeInt32)] [case(kRpcPropertyTypeInt32)] uint32 propertyInt32; */
27152 /* IDL: [case(kRpcPropertyTypeInt64)] [case(kRpcPropertyTypeInt64)] hyper propertyInt64; */
27153 /* IDL: [case(kRpcPropertyTypeByte)] [case(kRpcPropertyTypeByte)] uint8 propertyByte; */
27154 /* IDL: [case(kRpcPropertyTypeBuffer)] [case(kRpcPropertyTypeBuffer)] propertyBlob propertyBlob; */
27155 /* IDL: } */
27156
27157 static int
27158 spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27159 {
27160         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_, NDR_POINTER_UNIQUE, "Pointer to Propertystring (uint16)",hf_spoolss_RPC_PrintPropertyValueUnion_propertyString);
27161
27162         return offset;
27163 }
27164
27165 static int
27166 spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27167 {
27168         char *data;
27169
27170         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_PrintPropertyValueUnion_propertyString, FALSE, &data);
27171         proto_item_append_text(tree, ": %s", data);
27172
27173         return offset;
27174 }
27175
27176 static int
27177 spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27178 {
27179         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt32, 0);
27180
27181         return offset;
27182 }
27183
27184 static int
27185 spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27186 {
27187         offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt64, NULL);
27188
27189         return offset;
27190 }
27191
27192 static int
27193 spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyByte(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27194 {
27195         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValueUnion_propertyByte, 0);
27196
27197         return offset;
27198 }
27199
27200 static int
27201 spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27202 {
27203         offset = spoolss_dissect_struct_propertyBlob(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_PrintPropertyValueUnion_propertyBlob,0);
27204
27205         return offset;
27206 }
27207
27208 static int
27209 spoolss_dissect_RPC_PrintPropertyValueUnion(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_)
27210 {
27211         proto_item *item = NULL;
27212         proto_tree *tree = NULL;
27213         int old_offset;
27214         guint1632 level;
27215
27216         old_offset = offset;
27217         if (parent_tree) {
27218                 item = proto_tree_add_text(parent_tree, tvb, offset, -1, "RPC_PrintPropertyValueUnion");
27219                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_PrintPropertyValueUnion);
27220         }
27221
27222         offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
27223         ALIGN_TO_8_BYTES;
27224
27225         switch(level) {
27226                 case kRpcPropertyTypeString:
27227                         offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvb, offset, pinfo, tree, drep);
27228                 break;
27229
27230                 case kRpcPropertyTypeInt32:
27231                         offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvb, offset, pinfo, tree, drep);
27232                 break;
27233
27234                 case kRpcPropertyTypeInt64:
27235                         offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt64(tvb, offset, pinfo, tree, drep);
27236                 break;
27237
27238                 case kRpcPropertyTypeByte:
27239                         offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyByte(tvb, offset, pinfo, tree, drep);
27240                 break;
27241
27242                 case kRpcPropertyTypeBuffer:
27243                         offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyBlob(tvb, offset, pinfo, tree, drep);
27244                 break;
27245         }
27246         proto_item_set_len(item, offset-old_offset);
27247
27248
27249         return offset;
27250 }
27251
27252 /* IDL: struct { */
27253 /* IDL:         RPC_EPrintPropertyType ePropertyType; */
27254 /* IDL:         [switch_is(ePropertyType)] RPC_PrintPropertyValueUnion value; */
27255 /* IDL: } */
27256
27257 static int
27258 spoolss_dissect_element_RPC_PrintPropertyValue_ePropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType)
27259 {
27260         offset = spoolss_dissect_enum_RPC_EPrintPropertyType(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValue_ePropertyType, ePropertyType);
27261
27262         return offset;
27263 }
27264
27265 static int
27266 spoolss_dissect_element_RPC_PrintPropertyValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType)
27267 {
27268         offset = spoolss_dissect_RPC_PrintPropertyValueUnion(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValue_value, *ePropertyType);
27269
27270         return offset;
27271 }
27272
27273 int
27274 spoolss_dissect_struct_RPC_PrintPropertyValue(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_)
27275 {
27276         guint1632 ePropertyType;
27277         proto_item *item = NULL;
27278         proto_tree *tree = NULL;
27279         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
27280         int old_offset;
27281
27282         ALIGN_TO_8_BYTES;
27283
27284         old_offset = offset;
27285
27286         if (parent_tree) {
27287                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
27288                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_PrintPropertyValue);
27289         }
27290         
27291         offset = spoolss_dissect_element_RPC_PrintPropertyValue_ePropertyType(tvb, offset, pinfo, tree, drep, &ePropertyType);
27292
27293         offset = spoolss_dissect_element_RPC_PrintPropertyValue_value(tvb, offset, pinfo, tree, drep, &ePropertyType);
27294
27295
27296         proto_item_set_len(item, offset-old_offset);
27297
27298
27299         if (di->call_data->flags & DCERPC_IS_NDR64) {
27300                 ALIGN_TO_8_BYTES;
27301         }
27302
27303         return offset;
27304 }
27305
27306
27307 /* IDL: struct { */
27308 /* IDL:         [unique(1)] [charset(UTF16)] uint16 *propertyName; */
27309 /* IDL:         RPC_PrintPropertyValue propertyValue; */
27310 /* IDL: } */
27311
27312 static int
27313 spoolss_dissect_element_RPC_PrintNamedProperty_propertyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27314 {
27315         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_PrintNamedProperty_propertyName_, NDR_POINTER_UNIQUE, "Pointer to Propertyname (uint16)",hf_spoolss_RPC_PrintNamedProperty_propertyName);
27316
27317         return offset;
27318 }
27319
27320 static int
27321 spoolss_dissect_element_RPC_PrintNamedProperty_propertyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27322 {
27323         char *data;
27324
27325         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_PrintNamedProperty_propertyName, FALSE, &data);
27326         proto_item_append_text(tree, ": %s", data);
27327
27328         return offset;
27329 }
27330
27331 static int
27332 spoolss_dissect_element_RPC_PrintNamedProperty_propertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27333 {
27334         offset = spoolss_dissect_struct_RPC_PrintPropertyValue(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_PrintNamedProperty_propertyValue,0);
27335
27336         return offset;
27337 }
27338
27339 int
27340 spoolss_dissect_struct_RPC_PrintNamedProperty(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_)
27341 {
27342         proto_item *item = NULL;
27343         proto_tree *tree = NULL;
27344         dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
27345         int old_offset;
27346
27347         ALIGN_TO_8_BYTES;
27348
27349         old_offset = offset;
27350
27351         if (parent_tree) {
27352                 item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
27353                 tree = proto_item_add_subtree(item, ett_spoolss_RPC_PrintNamedProperty);
27354         }
27355         
27356         offset = spoolss_dissect_element_RPC_PrintNamedProperty_propertyName(tvb, offset, pinfo, tree, drep);
27357
27358         offset = spoolss_dissect_element_RPC_PrintNamedProperty_propertyValue(tvb, offset, pinfo, tree, drep);
27359
27360
27361         proto_item_set_len(item, offset-old_offset);
27362
27363
27364         if (di->call_data->flags & DCERPC_IS_NDR64) {
27365                 ALIGN_TO_8_BYTES;
27366         }
27367
27368         return offset;
27369 }
27370
27371 static int
27372 spoolss_dissect_element__spoolss_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27373 {
27374         offset = spoolss_dissect_bitmap_EnumPrinterFlags(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_flags, 0);
27375
27376         return offset;
27377 }
27378
27379 static int
27380 spoolss_dissect_element__spoolss_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27381 {
27382         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss__spoolss_EnumPrinters_server);
27383
27384         return offset;
27385 }
27386
27387 static int
27388 spoolss_dissect_element__spoolss_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27389 {
27390         char *data;
27391
27392         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinters_server, FALSE, &data);
27393         proto_item_append_text(tree, ": %s", data);
27394
27395         return offset;
27396 }
27397
27398 static int
27399 spoolss_dissect_element__spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27400 {
27401         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_level, 0);
27402
27403         return offset;
27404 }
27405
27406 static int
27407 spoolss_dissect_element__spoolss_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27408 {
27409         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinters_buffer);
27410
27411         return offset;
27412 }
27413
27414 static int
27415 spoolss_dissect_element__spoolss_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27416 {
27417         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_buffer, 0);
27418
27419         return offset;
27420 }
27421
27422 static int
27423 spoolss_dissect_element__spoolss_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27424 {
27425         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_offered, 0);
27426
27427         return offset;
27428 }
27429
27430 static int
27431 spoolss_dissect_element__spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27432 {
27433         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinters_info);
27434
27435         return offset;
27436 }
27437
27438 static int
27439 spoolss_dissect_element__spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27440 {
27441         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_info, 0);
27442
27443         return offset;
27444 }
27445
27446 static int
27447 spoolss_dissect_element__spoolss_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27448 {
27449         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrinters_needed);
27450
27451         return offset;
27452 }
27453
27454 static int
27455 spoolss_dissect_element__spoolss_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27456 {
27457         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_needed, 0);
27458
27459         return offset;
27460 }
27461
27462 static int
27463 spoolss_dissect_element__spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27464 {
27465         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrinters_count);
27466
27467         return offset;
27468 }
27469
27470 static int
27471 spoolss_dissect_element__spoolss_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27472 {
27473         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_count, 0);
27474
27475         return offset;
27476 }
27477
27478 /* IDL: WERROR _spoolss_EnumPrinters( */
27479 /* IDL: [in] spoolss_EnumPrinterFlags flags, */
27480 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
27481 /* IDL: [in] uint32 level, */
27482 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
27483 /* IDL: [in] uint32 offered, */
27484 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
27485 /* IDL: [out] [ref] uint32 *needed, */
27486 /* IDL: [out] [ref] uint32 *count */
27487 /* IDL: ); */
27488
27489 static int
27490 spoolss_dissect__spoolss_EnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27491 {
27492         guint32 status;
27493
27494         pinfo->dcerpc_procedure_name="_spoolss_EnumPrinters";
27495         offset = spoolss_dissect_element__spoolss_EnumPrinters_info(tvb, offset, pinfo, tree, drep);
27496         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27497
27498         offset = spoolss_dissect_element__spoolss_EnumPrinters_needed(tvb, offset, pinfo, tree, drep);
27499         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27500
27501         offset = spoolss_dissect_element__spoolss_EnumPrinters_count(tvb, offset, pinfo, tree, drep);
27502         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27503
27504         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
27505
27506         if (status != 0)
27507                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
27508
27509         return offset;
27510 }
27511
27512 static int
27513 spoolss_dissect__spoolss_EnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27514 {
27515         pinfo->dcerpc_procedure_name="_spoolss_EnumPrinters";
27516         offset = spoolss_dissect_element__spoolss_EnumPrinters_flags(tvb, offset, pinfo, tree, drep);
27517         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27518         offset = spoolss_dissect_element__spoolss_EnumPrinters_server(tvb, offset, pinfo, tree, drep);
27519         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27520         offset = spoolss_dissect_element__spoolss_EnumPrinters_level(tvb, offset, pinfo, tree, drep);
27521         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27522         offset = spoolss_dissect_element__spoolss_EnumPrinters_buffer(tvb, offset, pinfo, tree, drep);
27523         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27524         offset = spoolss_dissect_element__spoolss_EnumPrinters_offered(tvb, offset, pinfo, tree, drep);
27525         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27526         return offset;
27527 }
27528
27529 static int
27530 spoolss_dissect_element___spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27531 {
27532         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinters_level, 0);
27533
27534         return offset;
27535 }
27536
27537 static int
27538 spoolss_dissect_element___spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27539 {
27540         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinters_count, 0);
27541
27542         return offset;
27543 }
27544
27545 static int
27546 spoolss_dissect_element___spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27547 {
27548
27549         return offset;
27550 }
27551
27552 static int
27553 spoolss_dissect_element___spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27554 {
27555         offset = spoolss_dissect_PrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinters_info, *0);
27556
27557         return offset;
27558 }
27559
27560 /* IDL: void __spoolss_EnumPrinters( */
27561 /* IDL: [in] uint32 level, */
27562 /* IDL: [in] uint32 count, */
27563 /* IDL: [out] [switch_is(level)] spoolss_PrinterInfo info[count] */
27564 /* IDL: ); */
27565
27566 static int
27567 spoolss_dissect___spoolss_EnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27568 {
27569         pinfo->dcerpc_procedure_name="__spoolss_EnumPrinters";
27570         offset = spoolss_dissect_element___spoolss_EnumPrinters_info(tvb, offset, pinfo, tree, drep);
27571         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27572
27573         return offset;
27574 }
27575
27576 static int
27577 spoolss_dissect___spoolss_EnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27578 {
27579         pinfo->dcerpc_procedure_name="__spoolss_EnumPrinters";
27580         offset = spoolss_dissect_element___spoolss_EnumPrinters_level(tvb, offset, pinfo, tree, drep);
27581         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27582         offset = spoolss_dissect_element___spoolss_EnumPrinters_count(tvb, offset, pinfo, tree, drep);
27583         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27584         return offset;
27585 }
27586
27587 static int
27588 spoolss_dissect_element_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27589 {
27590         offset = spoolss_dissect_bitmap_EnumPrinterFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_flags, 0);
27591
27592         return offset;
27593 }
27594
27595 static int
27596 spoolss_dissect_element_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27597 {
27598         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_EnumPrinters_server);
27599
27600         return offset;
27601 }
27602
27603 static int
27604 spoolss_dissect_element_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27605 {
27606         char *data;
27607
27608         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinters_server, FALSE, &data);
27609         proto_item_append_text(tree, ": %s", data);
27610
27611         return offset;
27612 }
27613
27614 static int
27615 spoolss_dissect_element_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27616 {
27617         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_level, 0);
27618
27619         return offset;
27620 }
27621
27622 static int
27623 spoolss_dissect_element_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27624 {
27625         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrinters_buffer);
27626
27627         return offset;
27628 }
27629
27630 static int
27631 spoolss_dissect_element_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27632 {
27633         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_buffer, 0);
27634
27635         return offset;
27636 }
27637
27638 static int
27639 spoolss_dissect_element_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27640 {
27641         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_offered, 0);
27642
27643         return offset;
27644 }
27645
27646 static int
27647 spoolss_dissect_element_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27648 {
27649         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrinters_count);
27650
27651         return offset;
27652 }
27653
27654 static int
27655 spoolss_dissect_element_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27656 {
27657         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_count, 0);
27658
27659         return offset;
27660 }
27661
27662 static int
27663 spoolss_dissect_element_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27664 {
27665         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrinterInfo)",hf_spoolss_spoolss_EnumPrinters_info);
27666
27667         return offset;
27668 }
27669
27670 static int
27671 spoolss_dissect_element_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27672 {
27673         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrinterInfo)",hf_spoolss_spoolss_EnumPrinters_info);
27674
27675         return offset;
27676 }
27677
27678 static int
27679 spoolss_dissect_element_EnumPrinters_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27680 {
27681         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_info___);
27682
27683         return offset;
27684 }
27685
27686 static int
27687 spoolss_dissect_element_EnumPrinters_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27688 {
27689         offset = spoolss_dissect_PrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_info, *0);
27690
27691         return offset;
27692 }
27693
27694 static int
27695 spoolss_dissect_element_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27696 {
27697         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinters_needed);
27698
27699         return offset;
27700 }
27701
27702 static int
27703 spoolss_dissect_element_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27704 {
27705         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_needed, 0);
27706
27707         return offset;
27708 }
27709
27710 /* IDL: WERROR spoolss_EnumPrinters( */
27711 /* IDL: [in] spoolss_EnumPrinterFlags flags, */
27712 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
27713 /* IDL: [in] uint32 level, */
27714 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
27715 /* IDL: [in] uint32 offered, */
27716 /* IDL: [out] [ref] uint32 *count, */
27717 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PrinterInfo **info, */
27718 /* IDL: [out] [ref] uint32 *needed */
27719 /* IDL: ); */
27720
27721 static int
27722 spoolss_dissect_EnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27723 {
27724         guint32 status;
27725
27726         pinfo->dcerpc_procedure_name="EnumPrinters";
27727         offset = spoolss_dissect_element_EnumPrinters_count(tvb, offset, pinfo, tree, drep);
27728         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27729
27730         offset = spoolss_dissect_element_EnumPrinters_info(tvb, offset, pinfo, tree, drep);
27731         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27732
27733         offset = spoolss_dissect_element_EnumPrinters_needed(tvb, offset, pinfo, tree, drep);
27734         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27735
27736         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
27737
27738         if (status != 0)
27739                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
27740
27741         return offset;
27742 }
27743
27744 static int
27745 spoolss_dissect_EnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27746 {
27747         pinfo->dcerpc_procedure_name="EnumPrinters";
27748         offset = spoolss_dissect_element_EnumPrinters_flags(tvb, offset, pinfo, tree, drep);
27749         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27750         offset = spoolss_dissect_element_EnumPrinters_server(tvb, offset, pinfo, tree, drep);
27751         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27752         offset = spoolss_dissect_element_EnumPrinters_level(tvb, offset, pinfo, tree, drep);
27753         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27754         offset = spoolss_dissect_element_EnumPrinters_buffer(tvb, offset, pinfo, tree, drep);
27755         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27756         offset = spoolss_dissect_element_EnumPrinters_offered(tvb, offset, pinfo, tree, drep);
27757         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27758         return offset;
27759 }
27760
27761 static int
27762 spoolss_dissect_element_OpenPrinter_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27763 {
27764         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinter_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_OpenPrinter_printername);
27765
27766         return offset;
27767 }
27768
27769 static int
27770 spoolss_dissect_element_OpenPrinter_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27771 {
27772         char *data;
27773
27774         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinter_printername, FALSE, &data);
27775         proto_item_append_text(tree, ": %s", data);
27776
27777         return offset;
27778 }
27779
27780 static int
27781 spoolss_dissect_element_OpenPrinter_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27782 {
27783         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinter_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_OpenPrinter_datatype);
27784
27785         return offset;
27786 }
27787
27788 static int
27789 spoolss_dissect_element_OpenPrinter_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27790 {
27791         char *data;
27792
27793         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinter_datatype, FALSE, &data);
27794         proto_item_append_text(tree, ": %s", data);
27795
27796         return offset;
27797 }
27798
27799 static int
27800 spoolss_dissect_element_OpenPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27801 {
27802         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_OpenPrinter_devmode_ctr,0);
27803
27804         return offset;
27805 }
27806
27807 static int
27808 spoolss_dissect_element_OpenPrinter_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27809 {
27810         offset = spoolss_dissect_bitmap_AccessRights(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinter_access_mask, 0);
27811
27812         return offset;
27813 }
27814
27815 static int
27816 spoolss_dissect_element_OpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27817 {
27818         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_OpenPrinter_handle);
27819
27820         return offset;
27821 }
27822
27823 static int
27824 spoolss_dissect_element_OpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27825 {
27826         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinter_handle, 0);
27827
27828         return offset;
27829 }
27830
27831 /* IDL: WERROR spoolss_OpenPrinter( */
27832 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *printername, */
27833 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *datatype, */
27834 /* IDL: [in] spoolss_DevmodeContainer devmode_ctr, */
27835 /* IDL: [in] spoolss_AccessRights access_mask, */
27836 /* IDL: [out] [ref] policy_handle *handle */
27837 /* IDL: ); */
27838
27839 static int
27840 spoolss_dissect_OpenPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27841 {
27842         guint32 status;
27843
27844         pinfo->dcerpc_procedure_name="OpenPrinter";
27845         offset = spoolss_dissect_element_OpenPrinter_handle(tvb, offset, pinfo, tree, drep);
27846         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27847
27848         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
27849
27850         if (status != 0)
27851                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
27852
27853         return offset;
27854 }
27855
27856 static int
27857 spoolss_dissect_OpenPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27858 {
27859         pinfo->dcerpc_procedure_name="OpenPrinter";
27860         offset = spoolss_dissect_element_OpenPrinter_printername(tvb, offset, pinfo, tree, drep);
27861         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27862         offset = spoolss_dissect_element_OpenPrinter_datatype(tvb, offset, pinfo, tree, drep);
27863         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27864         offset = spoolss_dissect_element_OpenPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
27865         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27866         offset = spoolss_dissect_element_OpenPrinter_access_mask(tvb, offset, pinfo, tree, drep);
27867         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27868         return offset;
27869 }
27870
27871 static int
27872 spoolss_dissect_element_SetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27873 {
27874         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetJob_handle);
27875
27876         return offset;
27877 }
27878
27879 static int
27880 spoolss_dissect_element_SetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27881 {
27882         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJob_handle, 0);
27883
27884         return offset;
27885 }
27886
27887 static int
27888 spoolss_dissect_element_SetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27889 {
27890         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJob_job_id, 0);
27891
27892         return offset;
27893 }
27894
27895 static int
27896 spoolss_dissect_element_SetJob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27897 {
27898         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJob_ctr_, NDR_POINTER_UNIQUE, "Pointer to Ctr (spoolss_JobInfoContainer)",hf_spoolss_spoolss_SetJob_ctr);
27899
27900         return offset;
27901 }
27902
27903 static int
27904 spoolss_dissect_element_SetJob_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27905 {
27906         offset = spoolss_dissect_struct_JobInfoContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJob_ctr,0);
27907
27908         return offset;
27909 }
27910
27911 static int
27912 spoolss_dissect_element_SetJob_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27913 {
27914         offset = spoolss_dissect_enum_JobControl(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJob_command, 0);
27915
27916         return offset;
27917 }
27918
27919 /* IDL: WERROR spoolss_SetJob( */
27920 /* IDL: [in] [ref] policy_handle *handle, */
27921 /* IDL: [in] uint32 job_id, */
27922 /* IDL: [unique(1)] [in] spoolss_JobInfoContainer *ctr, */
27923 /* IDL: [in] spoolss_JobControl command */
27924 /* IDL: ); */
27925
27926 static int
27927 spoolss_dissect_SetJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27928 {
27929         guint32 status;
27930
27931         pinfo->dcerpc_procedure_name="SetJob";
27932         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
27933
27934         if (status != 0)
27935                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
27936
27937         return offset;
27938 }
27939
27940 static int
27941 spoolss_dissect_SetJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27942 {
27943         pinfo->dcerpc_procedure_name="SetJob";
27944         offset = spoolss_dissect_element_SetJob_handle(tvb, offset, pinfo, tree, drep);
27945         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27946         offset = spoolss_dissect_element_SetJob_job_id(tvb, offset, pinfo, tree, drep);
27947         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27948         offset = spoolss_dissect_element_SetJob_ctr(tvb, offset, pinfo, tree, drep);
27949         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27950         offset = spoolss_dissect_element_SetJob_command(tvb, offset, pinfo, tree, drep);
27951         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
27952         return offset;
27953 }
27954
27955 static int
27956 spoolss_dissect_element_GetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27957 {
27958         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetJob_handle);
27959
27960         return offset;
27961 }
27962
27963 static int
27964 spoolss_dissect_element_GetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27965 {
27966         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_handle, 0);
27967
27968         return offset;
27969 }
27970
27971 static int
27972 spoolss_dissect_element_GetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27973 {
27974         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_job_id, 0);
27975
27976         return offset;
27977 }
27978
27979 static int
27980 spoolss_dissect_element_GetJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27981 {
27982         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_level, 0);
27983
27984         return offset;
27985 }
27986
27987 static int
27988 spoolss_dissect_element_GetJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27989 {
27990         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetJob_buffer);
27991
27992         return offset;
27993 }
27994
27995 static int
27996 spoolss_dissect_element_GetJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
27997 {
27998         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_buffer, 0);
27999
28000         return offset;
28001 }
28002
28003 static int
28004 spoolss_dissect_element_GetJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28005 {
28006         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_offered, 0);
28007
28008         return offset;
28009 }
28010
28011 static int
28012 spoolss_dissect_element_GetJob_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28013 {
28014         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_JobInfo)",hf_spoolss_spoolss_GetJob_info);
28015
28016         return offset;
28017 }
28018
28019 static int
28020 spoolss_dissect_element_GetJob_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28021 {
28022         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
28023         guint3264 size;
28024         int conformant = di->conformant_run;
28025         tvbuff_t *subtvb;
28026
28027         if (!conformant) {
28028                 guint32 saved_flags = di->call_data->flags;
28029                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_info_, &size);
28030                 di->call_data->flags &= ~DCERPC_IS_NDR64;
28031                 subtvb = tvb_new_subset(tvb, offset, size, -1);
28032                 spoolss_dissect_element_GetJob_info__(subtvb, 0, pinfo, tree, drep);
28033                 offset += size;
28034                 di->call_data->flags = saved_flags;
28035         }
28036
28037         return offset;
28038 }
28039
28040 static int
28041 spoolss_dissect_element_GetJob_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28042 {
28043         offset = spoolss_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_info, *0);
28044
28045         return offset;
28046 }
28047
28048 static int
28049 spoolss_dissect_element_GetJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28050 {
28051         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetJob_needed);
28052
28053         return offset;
28054 }
28055
28056 static int
28057 spoolss_dissect_element_GetJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28058 {
28059         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_needed, 0);
28060
28061         return offset;
28062 }
28063
28064 /* IDL: WERROR spoolss_GetJob( */
28065 /* IDL: [in] [ref] policy_handle *handle, */
28066 /* IDL: [in] uint32 job_id, */
28067 /* IDL: [in] uint32 level, */
28068 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
28069 /* IDL: [in] uint32 offered, */
28070 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_JobInfo *info, */
28071 /* IDL: [out] [ref] uint32 *needed */
28072 /* IDL: ); */
28073
28074 static int
28075 spoolss_dissect_GetJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28076 {
28077         guint32 status;
28078
28079         pinfo->dcerpc_procedure_name="GetJob";
28080         offset = spoolss_dissect_element_GetJob_info(tvb, offset, pinfo, tree, drep);
28081         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28082
28083         offset = spoolss_dissect_element_GetJob_needed(tvb, offset, pinfo, tree, drep);
28084         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28085
28086         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28087
28088         if (status != 0)
28089                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28090
28091         return offset;
28092 }
28093
28094 static int
28095 spoolss_dissect_GetJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28096 {
28097         pinfo->dcerpc_procedure_name="GetJob";
28098         offset = spoolss_dissect_element_GetJob_handle(tvb, offset, pinfo, tree, drep);
28099         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28100         offset = spoolss_dissect_element_GetJob_job_id(tvb, offset, pinfo, tree, drep);
28101         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28102         offset = spoolss_dissect_element_GetJob_level(tvb, offset, pinfo, tree, drep);
28103         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28104         offset = spoolss_dissect_element_GetJob_buffer(tvb, offset, pinfo, tree, drep);
28105         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28106         offset = spoolss_dissect_element_GetJob_offered(tvb, offset, pinfo, tree, drep);
28107         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28108         return offset;
28109 }
28110
28111 static int
28112 spoolss_dissect_element__spoolss_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28113 {
28114         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss__spoolss_EnumJobs_handle);
28115
28116         return offset;
28117 }
28118
28119 static int
28120 spoolss_dissect_element__spoolss_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28121 {
28122         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_handle, 0);
28123
28124         return offset;
28125 }
28126
28127 static int
28128 spoolss_dissect_element__spoolss_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28129 {
28130         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_firstjob, 0);
28131
28132         return offset;
28133 }
28134
28135 static int
28136 spoolss_dissect_element__spoolss_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28137 {
28138         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_numjobs, 0);
28139
28140         return offset;
28141 }
28142
28143 static int
28144 spoolss_dissect_element__spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28145 {
28146         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_level, 0);
28147
28148         return offset;
28149 }
28150
28151 static int
28152 spoolss_dissect_element__spoolss_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28153 {
28154         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumJobs_buffer);
28155
28156         return offset;
28157 }
28158
28159 static int
28160 spoolss_dissect_element__spoolss_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28161 {
28162         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_buffer, 0);
28163
28164         return offset;
28165 }
28166
28167 static int
28168 spoolss_dissect_element__spoolss_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28169 {
28170         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_offered, 0);
28171
28172         return offset;
28173 }
28174
28175 static int
28176 spoolss_dissect_element__spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28177 {
28178         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumJobs_info);
28179
28180         return offset;
28181 }
28182
28183 static int
28184 spoolss_dissect_element__spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28185 {
28186         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_info, 0);
28187
28188         return offset;
28189 }
28190
28191 static int
28192 spoolss_dissect_element__spoolss_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28193 {
28194         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumJobs_needed);
28195
28196         return offset;
28197 }
28198
28199 static int
28200 spoolss_dissect_element__spoolss_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28201 {
28202         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_needed, 0);
28203
28204         return offset;
28205 }
28206
28207 static int
28208 spoolss_dissect_element__spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28209 {
28210         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumJobs_count);
28211
28212         return offset;
28213 }
28214
28215 static int
28216 spoolss_dissect_element__spoolss_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28217 {
28218         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_count, 0);
28219
28220         return offset;
28221 }
28222
28223 /* IDL: WERROR _spoolss_EnumJobs( */
28224 /* IDL: [in] [ref] policy_handle *handle, */
28225 /* IDL: [in] uint32 firstjob, */
28226 /* IDL: [in] uint32 numjobs, */
28227 /* IDL: [in] uint32 level, */
28228 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
28229 /* IDL: [in] uint32 offered, */
28230 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
28231 /* IDL: [out] [ref] uint32 *needed, */
28232 /* IDL: [out] [ref] uint32 *count */
28233 /* IDL: ); */
28234
28235 static int
28236 spoolss_dissect__spoolss_EnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28237 {
28238         guint32 status;
28239
28240         pinfo->dcerpc_procedure_name="_spoolss_EnumJobs";
28241         offset = spoolss_dissect_element__spoolss_EnumJobs_info(tvb, offset, pinfo, tree, drep);
28242         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28243
28244         offset = spoolss_dissect_element__spoolss_EnumJobs_needed(tvb, offset, pinfo, tree, drep);
28245         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28246
28247         offset = spoolss_dissect_element__spoolss_EnumJobs_count(tvb, offset, pinfo, tree, drep);
28248         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28249
28250         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28251
28252         if (status != 0)
28253                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28254
28255         return offset;
28256 }
28257
28258 static int
28259 spoolss_dissect__spoolss_EnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28260 {
28261         pinfo->dcerpc_procedure_name="_spoolss_EnumJobs";
28262         offset = spoolss_dissect_element__spoolss_EnumJobs_handle(tvb, offset, pinfo, tree, drep);
28263         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28264         offset = spoolss_dissect_element__spoolss_EnumJobs_firstjob(tvb, offset, pinfo, tree, drep);
28265         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28266         offset = spoolss_dissect_element__spoolss_EnumJobs_numjobs(tvb, offset, pinfo, tree, drep);
28267         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28268         offset = spoolss_dissect_element__spoolss_EnumJobs_level(tvb, offset, pinfo, tree, drep);
28269         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28270         offset = spoolss_dissect_element__spoolss_EnumJobs_buffer(tvb, offset, pinfo, tree, drep);
28271         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28272         offset = spoolss_dissect_element__spoolss_EnumJobs_offered(tvb, offset, pinfo, tree, drep);
28273         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28274         return offset;
28275 }
28276
28277 static int
28278 spoolss_dissect_element___spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28279 {
28280         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumJobs_level, 0);
28281
28282         return offset;
28283 }
28284
28285 static int
28286 spoolss_dissect_element___spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28287 {
28288         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumJobs_count, 0);
28289
28290         return offset;
28291 }
28292
28293 static int
28294 spoolss_dissect_element___spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28295 {
28296
28297         return offset;
28298 }
28299
28300 static int
28301 spoolss_dissect_element___spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28302 {
28303         offset = spoolss_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumJobs_info, *0);
28304
28305         return offset;
28306 }
28307
28308 /* IDL: void __spoolss_EnumJobs( */
28309 /* IDL: [in] uint32 level, */
28310 /* IDL: [in] uint32 count, */
28311 /* IDL: [out] [switch_is(level)] spoolss_JobInfo info[count] */
28312 /* IDL: ); */
28313
28314 static int
28315 spoolss_dissect___spoolss_EnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28316 {
28317         pinfo->dcerpc_procedure_name="__spoolss_EnumJobs";
28318         offset = spoolss_dissect_element___spoolss_EnumJobs_info(tvb, offset, pinfo, tree, drep);
28319         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28320
28321         return offset;
28322 }
28323
28324 static int
28325 spoolss_dissect___spoolss_EnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28326 {
28327         pinfo->dcerpc_procedure_name="__spoolss_EnumJobs";
28328         offset = spoolss_dissect_element___spoolss_EnumJobs_level(tvb, offset, pinfo, tree, drep);
28329         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28330         offset = spoolss_dissect_element___spoolss_EnumJobs_count(tvb, offset, pinfo, tree, drep);
28331         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28332         return offset;
28333 }
28334
28335 static int
28336 spoolss_dissect_element_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28337 {
28338         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumJobs_handle);
28339
28340         return offset;
28341 }
28342
28343 static int
28344 spoolss_dissect_element_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28345 {
28346         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_handle, 0);
28347
28348         return offset;
28349 }
28350
28351 static int
28352 spoolss_dissect_element_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28353 {
28354         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_firstjob, 0);
28355
28356         return offset;
28357 }
28358
28359 static int
28360 spoolss_dissect_element_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28361 {
28362         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_numjobs, 0);
28363
28364         return offset;
28365 }
28366
28367 static int
28368 spoolss_dissect_element_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28369 {
28370         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_level, 0);
28371
28372         return offset;
28373 }
28374
28375 static int
28376 spoolss_dissect_element_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28377 {
28378         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumJobs_buffer);
28379
28380         return offset;
28381 }
28382
28383 static int
28384 spoolss_dissect_element_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28385 {
28386         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_buffer, 0);
28387
28388         return offset;
28389 }
28390
28391 static int
28392 spoolss_dissect_element_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28393 {
28394         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_offered, 0);
28395
28396         return offset;
28397 }
28398
28399 static int
28400 spoolss_dissect_element_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28401 {
28402         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumJobs_count);
28403
28404         return offset;
28405 }
28406
28407 static int
28408 spoolss_dissect_element_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28409 {
28410         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_count, 0);
28411
28412         return offset;
28413 }
28414
28415 static int
28416 spoolss_dissect_element_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28417 {
28418         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_JobInfo)",hf_spoolss_spoolss_EnumJobs_info);
28419
28420         return offset;
28421 }
28422
28423 static int
28424 spoolss_dissect_element_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28425 {
28426         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_JobInfo)",hf_spoolss_spoolss_EnumJobs_info);
28427
28428         return offset;
28429 }
28430
28431 static int
28432 spoolss_dissect_element_EnumJobs_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28433 {
28434         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_info___);
28435
28436         return offset;
28437 }
28438
28439 static int
28440 spoolss_dissect_element_EnumJobs_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28441 {
28442         offset = spoolss_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_info, *0);
28443
28444         return offset;
28445 }
28446
28447 static int
28448 spoolss_dissect_element_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28449 {
28450         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumJobs_needed);
28451
28452         return offset;
28453 }
28454
28455 static int
28456 spoolss_dissect_element_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28457 {
28458         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_needed, 0);
28459
28460         return offset;
28461 }
28462
28463 /* IDL: WERROR spoolss_EnumJobs( */
28464 /* IDL: [in] [ref] policy_handle *handle, */
28465 /* IDL: [in] uint32 firstjob, */
28466 /* IDL: [in] uint32 numjobs, */
28467 /* IDL: [in] uint32 level, */
28468 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
28469 /* IDL: [in] uint32 offered, */
28470 /* IDL: [out] [ref] uint32 *count, */
28471 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_JobInfo **info, */
28472 /* IDL: [out] [ref] uint32 *needed */
28473 /* IDL: ); */
28474
28475 static int
28476 spoolss_dissect_EnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28477 {
28478         guint32 status;
28479
28480         pinfo->dcerpc_procedure_name="EnumJobs";
28481         offset = spoolss_dissect_element_EnumJobs_count(tvb, offset, pinfo, tree, drep);
28482         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28483
28484         offset = spoolss_dissect_element_EnumJobs_info(tvb, offset, pinfo, tree, drep);
28485         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28486
28487         offset = spoolss_dissect_element_EnumJobs_needed(tvb, offset, pinfo, tree, drep);
28488         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28489
28490         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28491
28492         if (status != 0)
28493                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28494
28495         return offset;
28496 }
28497
28498 static int
28499 spoolss_dissect_EnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28500 {
28501         pinfo->dcerpc_procedure_name="EnumJobs";
28502         offset = spoolss_dissect_element_EnumJobs_handle(tvb, offset, pinfo, tree, drep);
28503         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28504         offset = spoolss_dissect_element_EnumJobs_firstjob(tvb, offset, pinfo, tree, drep);
28505         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28506         offset = spoolss_dissect_element_EnumJobs_numjobs(tvb, offset, pinfo, tree, drep);
28507         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28508         offset = spoolss_dissect_element_EnumJobs_level(tvb, offset, pinfo, tree, drep);
28509         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28510         offset = spoolss_dissect_element_EnumJobs_buffer(tvb, offset, pinfo, tree, drep);
28511         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28512         offset = spoolss_dissect_element_EnumJobs_offered(tvb, offset, pinfo, tree, drep);
28513         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28514         return offset;
28515 }
28516
28517 static int
28518 spoolss_dissect_element_AddPrinter_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28519 {
28520         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPrinter_server);
28521
28522         return offset;
28523 }
28524
28525 static int
28526 spoolss_dissect_element_AddPrinter_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28527 {
28528         char *data;
28529
28530         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinter_server, FALSE, &data);
28531         proto_item_append_text(tree, ": %s", data);
28532
28533         return offset;
28534 }
28535
28536 static int
28537 spoolss_dissect_element_AddPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28538 {
28539         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_SetPrinterInfoCtr)",hf_spoolss_spoolss_AddPrinter_info_ctr);
28540
28541         return offset;
28542 }
28543
28544 static int
28545 spoolss_dissect_element_AddPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28546 {
28547         offset = spoolss_dissect_struct_SetPrinterInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinter_info_ctr,0);
28548
28549         return offset;
28550 }
28551
28552 static int
28553 spoolss_dissect_element_AddPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28554 {
28555         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_AddPrinter_devmode_ctr);
28556
28557         return offset;
28558 }
28559
28560 static int
28561 spoolss_dissect_element_AddPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28562 {
28563         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinter_devmode_ctr,0);
28564
28565         return offset;
28566 }
28567
28568 static int
28569 spoolss_dissect_element_AddPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28570 {
28571         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_secdesc_ctr_, NDR_POINTER_REF, "Pointer to Secdesc Ctr (sec_desc_buf)",hf_spoolss_spoolss_AddPrinter_secdesc_ctr);
28572
28573         return offset;
28574 }
28575
28576 static int
28577 spoolss_dissect_element_AddPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28578 {
28579         offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinter_secdesc_ctr,0);
28580
28581         return offset;
28582 }
28583
28584 static int
28585 spoolss_dissect_element_AddPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28586 {
28587         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddPrinter_handle);
28588
28589         return offset;
28590 }
28591
28592 static int
28593 spoolss_dissect_element_AddPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28594 {
28595         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPrinter_handle, 0);
28596
28597         return offset;
28598 }
28599
28600 /* IDL: WERROR spoolss_AddPrinter( */
28601 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
28602 /* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *info_ctr, */
28603 /* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr, */
28604 /* IDL: [in] [ref] sec_desc_buf *secdesc_ctr, */
28605 /* IDL: [out] [ref] policy_handle *handle */
28606 /* IDL: ); */
28607
28608 static int
28609 spoolss_dissect_AddPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28610 {
28611         guint32 status;
28612
28613         pinfo->dcerpc_procedure_name="AddPrinter";
28614         offset = spoolss_dissect_element_AddPrinter_handle(tvb, offset, pinfo, tree, drep);
28615         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28616
28617         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28618
28619         if (status != 0)
28620                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28621
28622         return offset;
28623 }
28624
28625 static int
28626 spoolss_dissect_AddPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28627 {
28628         pinfo->dcerpc_procedure_name="AddPrinter";
28629         offset = spoolss_dissect_element_AddPrinter_server(tvb, offset, pinfo, tree, drep);
28630         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28631         offset = spoolss_dissect_element_AddPrinter_info_ctr(tvb, offset, pinfo, tree, drep);
28632         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28633         offset = spoolss_dissect_element_AddPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
28634         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28635         offset = spoolss_dissect_element_AddPrinter_secdesc_ctr(tvb, offset, pinfo, tree, drep);
28636         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28637         return offset;
28638 }
28639
28640 static int
28641 spoolss_dissect_element_DeletePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28642 {
28643         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinter_handle);
28644
28645         return offset;
28646 }
28647
28648 static int
28649 spoolss_dissect_element_DeletePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28650 {
28651         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinter_handle, 0);
28652
28653         return offset;
28654 }
28655
28656 /* IDL: WERROR spoolss_DeletePrinter( */
28657 /* IDL: [ref] [in] policy_handle *handle */
28658 /* IDL: ); */
28659
28660 static int
28661 spoolss_dissect_DeletePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28662 {
28663         guint32 status;
28664
28665         pinfo->dcerpc_procedure_name="DeletePrinter";
28666         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28667
28668         if (status != 0)
28669                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28670
28671         return offset;
28672 }
28673
28674 static int
28675 spoolss_dissect_DeletePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28676 {
28677         pinfo->dcerpc_procedure_name="DeletePrinter";
28678         offset = spoolss_dissect_element_DeletePrinter_handle(tvb, offset, pinfo, tree, drep);
28679         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28680         return offset;
28681 }
28682
28683 static int
28684 spoolss_dissect_element_SetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28685 {
28686         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetPrinter_handle);
28687
28688         return offset;
28689 }
28690
28691 static int
28692 spoolss_dissect_element_SetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28693 {
28694         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinter_handle, 0);
28695
28696         return offset;
28697 }
28698
28699 static int
28700 spoolss_dissect_element_SetPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28701 {
28702         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_SetPrinterInfoCtr)",hf_spoolss_spoolss_SetPrinter_info_ctr);
28703
28704         return offset;
28705 }
28706
28707 static int
28708 spoolss_dissect_element_SetPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28709 {
28710         offset = spoolss_dissect_struct_SetPrinterInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinter_info_ctr,0);
28711
28712         return offset;
28713 }
28714
28715 static int
28716 spoolss_dissect_element_SetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28717 {
28718         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_SetPrinter_devmode_ctr);
28719
28720         return offset;
28721 }
28722
28723 static int
28724 spoolss_dissect_element_SetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28725 {
28726         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinter_devmode_ctr,0);
28727
28728         return offset;
28729 }
28730
28731 static int
28732 spoolss_dissect_element_SetPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28733 {
28734         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_secdesc_ctr_, NDR_POINTER_REF, "Pointer to Secdesc Ctr (sec_desc_buf)",hf_spoolss_spoolss_SetPrinter_secdesc_ctr);
28735
28736         return offset;
28737 }
28738
28739 static int
28740 spoolss_dissect_element_SetPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28741 {
28742         offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinter_secdesc_ctr,0);
28743
28744         return offset;
28745 }
28746
28747 static int
28748 spoolss_dissect_element_SetPrinter_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28749 {
28750         offset = spoolss_dissect_enum_PrinterControl(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinter_command, 0);
28751
28752         return offset;
28753 }
28754
28755 /* IDL: WERROR spoolss_SetPrinter( */
28756 /* IDL: [in] [ref] policy_handle *handle, */
28757 /* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *info_ctr, */
28758 /* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr, */
28759 /* IDL: [in] [ref] sec_desc_buf *secdesc_ctr, */
28760 /* IDL: [in] spoolss_PrinterControl command */
28761 /* IDL: ); */
28762
28763 static int
28764 spoolss_dissect_SetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28765 {
28766         guint32 status;
28767
28768         pinfo->dcerpc_procedure_name="SetPrinter";
28769         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28770
28771         if (status != 0)
28772                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28773
28774         return offset;
28775 }
28776
28777 static int
28778 spoolss_dissect_SetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28779 {
28780         pinfo->dcerpc_procedure_name="SetPrinter";
28781         offset = spoolss_dissect_element_SetPrinter_handle(tvb, offset, pinfo, tree, drep);
28782         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28783         offset = spoolss_dissect_element_SetPrinter_info_ctr(tvb, offset, pinfo, tree, drep);
28784         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28785         offset = spoolss_dissect_element_SetPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
28786         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28787         offset = spoolss_dissect_element_SetPrinter_secdesc_ctr(tvb, offset, pinfo, tree, drep);
28788         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28789         offset = spoolss_dissect_element_SetPrinter_command(tvb, offset, pinfo, tree, drep);
28790         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28791         return offset;
28792 }
28793
28794 static int
28795 spoolss_dissect_element_GetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28796 {
28797         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinter_handle);
28798
28799         return offset;
28800 }
28801
28802 static int
28803 spoolss_dissect_element_GetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28804 {
28805         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_handle, 0);
28806
28807         return offset;
28808 }
28809
28810 static int
28811 spoolss_dissect_element_GetPrinter_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28812 {
28813         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_level, 0);
28814
28815         return offset;
28816 }
28817
28818 static int
28819 spoolss_dissect_element_GetPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28820 {
28821         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinter_buffer);
28822
28823         return offset;
28824 }
28825
28826 static int
28827 spoolss_dissect_element_GetPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28828 {
28829         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_buffer, 0);
28830
28831         return offset;
28832 }
28833
28834 static int
28835 spoolss_dissect_element_GetPrinter_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28836 {
28837         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_offered, 0);
28838
28839         return offset;
28840 }
28841
28842 static int
28843 spoolss_dissect_element_GetPrinter_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28844 {
28845         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrinterInfo)",hf_spoolss_spoolss_GetPrinter_info);
28846
28847         return offset;
28848 }
28849
28850 static int
28851 spoolss_dissect_element_GetPrinter_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28852 {
28853         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
28854         guint3264 size;
28855         int conformant = di->conformant_run;
28856         tvbuff_t *subtvb;
28857
28858         if (!conformant) {
28859                 guint32 saved_flags = di->call_data->flags;
28860                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_info_, &size);
28861                 di->call_data->flags &= ~DCERPC_IS_NDR64;
28862                 subtvb = tvb_new_subset(tvb, offset, size, -1);
28863                 spoolss_dissect_element_GetPrinter_info__(subtvb, 0, pinfo, tree, drep);
28864                 offset += size;
28865                 di->call_data->flags = saved_flags;
28866         }
28867
28868         return offset;
28869 }
28870
28871 static int
28872 spoolss_dissect_element_GetPrinter_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28873 {
28874         offset = spoolss_dissect_PrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_info, *0);
28875
28876         return offset;
28877 }
28878
28879 static int
28880 spoolss_dissect_element_GetPrinter_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28881 {
28882         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinter_needed);
28883
28884         return offset;
28885 }
28886
28887 static int
28888 spoolss_dissect_element_GetPrinter_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28889 {
28890         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_needed, 0);
28891
28892         return offset;
28893 }
28894
28895 /* IDL: WERROR spoolss_GetPrinter( */
28896 /* IDL: [in] [ref] policy_handle *handle, */
28897 /* IDL: [in] uint32 level, */
28898 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
28899 /* IDL: [in] uint32 offered, */
28900 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_PrinterInfo *info, */
28901 /* IDL: [out] [ref] uint32 *needed */
28902 /* IDL: ); */
28903
28904 static int
28905 spoolss_dissect_GetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28906 {
28907         guint32 status;
28908
28909         pinfo->dcerpc_procedure_name="GetPrinter";
28910         offset = spoolss_dissect_element_GetPrinter_info(tvb, offset, pinfo, tree, drep);
28911         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28912
28913         offset = spoolss_dissect_element_GetPrinter_needed(tvb, offset, pinfo, tree, drep);
28914         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28915
28916         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28917
28918         if (status != 0)
28919                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28920
28921         return offset;
28922 }
28923
28924 static int
28925 spoolss_dissect_GetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28926 {
28927         pinfo->dcerpc_procedure_name="GetPrinter";
28928         offset = spoolss_dissect_element_GetPrinter_handle(tvb, offset, pinfo, tree, drep);
28929         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28930         offset = spoolss_dissect_element_GetPrinter_level(tvb, offset, pinfo, tree, drep);
28931         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28932         offset = spoolss_dissect_element_GetPrinter_buffer(tvb, offset, pinfo, tree, drep);
28933         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28934         offset = spoolss_dissect_element_GetPrinter_offered(tvb, offset, pinfo, tree, drep);
28935         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28936         return offset;
28937 }
28938
28939 static int
28940 spoolss_dissect_element_AddPrinterDriver_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28941 {
28942         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriver_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_AddPrinterDriver_servername);
28943
28944         return offset;
28945 }
28946
28947 static int
28948 spoolss_dissect_element_AddPrinterDriver_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28949 {
28950         char *data;
28951
28952         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinterDriver_servername, FALSE, &data);
28953         proto_item_append_text(tree, ": %s", data);
28954
28955         return offset;
28956 }
28957
28958 static int
28959 spoolss_dissect_element_AddPrinterDriver_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28960 {
28961         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriver_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddDriverInfoCtr)",hf_spoolss_spoolss_AddPrinterDriver_info_ctr);
28962
28963         return offset;
28964 }
28965
28966 static int
28967 spoolss_dissect_element_AddPrinterDriver_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28968 {
28969         offset = spoolss_dissect_struct_AddDriverInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterDriver_info_ctr,0);
28970
28971         return offset;
28972 }
28973
28974 /* IDL: WERROR spoolss_AddPrinterDriver( */
28975 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
28976 /* IDL: [in] [ref] spoolss_AddDriverInfoCtr *info_ctr */
28977 /* IDL: ); */
28978
28979 static int
28980 spoolss_dissect_AddPrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28981 {
28982         guint32 status;
28983
28984         pinfo->dcerpc_procedure_name="AddPrinterDriver";
28985         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
28986
28987         if (status != 0)
28988                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
28989
28990         return offset;
28991 }
28992
28993 static int
28994 spoolss_dissect_AddPrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
28995 {
28996         pinfo->dcerpc_procedure_name="AddPrinterDriver";
28997         offset = spoolss_dissect_element_AddPrinterDriver_servername(tvb, offset, pinfo, tree, drep);
28998         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
28999         offset = spoolss_dissect_element_AddPrinterDriver_info_ctr(tvb, offset, pinfo, tree, drep);
29000         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29001         return offset;
29002 }
29003
29004 static int
29005 spoolss_dissect_element__spoolss_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29006 {
29007         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss__spoolss_EnumPrinterDrivers_server);
29008
29009         return offset;
29010 }
29011
29012 static int
29013 spoolss_dissect_element__spoolss_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29014 {
29015         char *data;
29016
29017         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinterDrivers_server, FALSE, &data);
29018         proto_item_append_text(tree, ": %s", data);
29019
29020         return offset;
29021 }
29022
29023 static int
29024 spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29025 {
29026         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss__spoolss_EnumPrinterDrivers_environment);
29027
29028         return offset;
29029 }
29030
29031 static int
29032 spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29033 {
29034         char *data;
29035
29036         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinterDrivers_environment, FALSE, &data);
29037         proto_item_append_text(tree, ": %s", data);
29038
29039         return offset;
29040 }
29041
29042 static int
29043 spoolss_dissect_element__spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29044 {
29045         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_level, 0);
29046
29047         return offset;
29048 }
29049
29050 static int
29051 spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29052 {
29053         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinterDrivers_buffer);
29054
29055         return offset;
29056 }
29057
29058 static int
29059 spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29060 {
29061         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_buffer, 0);
29062
29063         return offset;
29064 }
29065
29066 static int
29067 spoolss_dissect_element__spoolss_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29068 {
29069         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_offered, 0);
29070
29071         return offset;
29072 }
29073
29074 static int
29075 spoolss_dissect_element__spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29076 {
29077         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinterDrivers_info);
29078
29079         return offset;
29080 }
29081
29082 static int
29083 spoolss_dissect_element__spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29084 {
29085         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_info, 0);
29086
29087         return offset;
29088 }
29089
29090 static int
29091 spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29092 {
29093         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrinterDrivers_needed);
29094
29095         return offset;
29096 }
29097
29098 static int
29099 spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29100 {
29101         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_needed, 0);
29102
29103         return offset;
29104 }
29105
29106 static int
29107 spoolss_dissect_element__spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29108 {
29109         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrinterDrivers_count);
29110
29111         return offset;
29112 }
29113
29114 static int
29115 spoolss_dissect_element__spoolss_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29116 {
29117         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_count, 0);
29118
29119         return offset;
29120 }
29121
29122 /* IDL: WERROR _spoolss_EnumPrinterDrivers( */
29123 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
29124 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
29125 /* IDL: [in] uint32 level, */
29126 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
29127 /* IDL: [in] uint32 offered, */
29128 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
29129 /* IDL: [out] [ref] uint32 *needed, */
29130 /* IDL: [out] [ref] uint32 *count */
29131 /* IDL: ); */
29132
29133 static int
29134 spoolss_dissect__spoolss_EnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29135 {
29136         guint32 status;
29137
29138         pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDrivers";
29139         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_info(tvb, offset, pinfo, tree, drep);
29140         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29141
29142         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed(tvb, offset, pinfo, tree, drep);
29143         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29144
29145         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_count(tvb, offset, pinfo, tree, drep);
29146         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29147
29148         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
29149
29150         if (status != 0)
29151                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
29152
29153         return offset;
29154 }
29155
29156 static int
29157 spoolss_dissect__spoolss_EnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29158 {
29159         pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDrivers";
29160         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_server(tvb, offset, pinfo, tree, drep);
29161         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29162         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment(tvb, offset, pinfo, tree, drep);
29163         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29164         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_level(tvb, offset, pinfo, tree, drep);
29165         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29166         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer(tvb, offset, pinfo, tree, drep);
29167         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29168         offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_offered(tvb, offset, pinfo, tree, drep);
29169         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29170         return offset;
29171 }
29172
29173 static int
29174 spoolss_dissect_element___spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29175 {
29176         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDrivers_level, 0);
29177
29178         return offset;
29179 }
29180
29181 static int
29182 spoolss_dissect_element___spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29183 {
29184         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDrivers_count, 0);
29185
29186         return offset;
29187 }
29188
29189 static int
29190 spoolss_dissect_element___spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29191 {
29192
29193         return offset;
29194 }
29195
29196 static int
29197 spoolss_dissect_element___spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29198 {
29199         offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDrivers_info, *0);
29200
29201         return offset;
29202 }
29203
29204 /* IDL: void __spoolss_EnumPrinterDrivers( */
29205 /* IDL: [in] uint32 level, */
29206 /* IDL: [in] uint32 count, */
29207 /* IDL: [out] [switch_is(level)] spoolss_DriverInfo info[count] */
29208 /* IDL: ); */
29209
29210 static int
29211 spoolss_dissect___spoolss_EnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29212 {
29213         pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDrivers";
29214         offset = spoolss_dissect_element___spoolss_EnumPrinterDrivers_info(tvb, offset, pinfo, tree, drep);
29215         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29216
29217         return offset;
29218 }
29219
29220 static int
29221 spoolss_dissect___spoolss_EnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29222 {
29223         pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDrivers";
29224         offset = spoolss_dissect_element___spoolss_EnumPrinterDrivers_level(tvb, offset, pinfo, tree, drep);
29225         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29226         offset = spoolss_dissect_element___spoolss_EnumPrinterDrivers_count(tvb, offset, pinfo, tree, drep);
29227         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29228         return offset;
29229 }
29230
29231 static int
29232 spoolss_dissect_element_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29233 {
29234         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_EnumPrinterDrivers_server);
29235
29236         return offset;
29237 }
29238
29239 static int
29240 spoolss_dissect_element_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29241 {
29242         char *data;
29243
29244         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterDrivers_server, FALSE, &data);
29245         proto_item_append_text(tree, ": %s", data);
29246
29247         return offset;
29248 }
29249
29250 static int
29251 spoolss_dissect_element_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29252 {
29253         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_EnumPrinterDrivers_environment);
29254
29255         return offset;
29256 }
29257
29258 static int
29259 spoolss_dissect_element_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29260 {
29261         char *data;
29262
29263         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterDrivers_environment, FALSE, &data);
29264         proto_item_append_text(tree, ": %s", data);
29265
29266         return offset;
29267 }
29268
29269 static int
29270 spoolss_dissect_element_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29271 {
29272         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_level, 0);
29273
29274         return offset;
29275 }
29276
29277 static int
29278 spoolss_dissect_element_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29279 {
29280         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrinterDrivers_buffer);
29281
29282         return offset;
29283 }
29284
29285 static int
29286 spoolss_dissect_element_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29287 {
29288         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_buffer, 0);
29289
29290         return offset;
29291 }
29292
29293 static int
29294 spoolss_dissect_element_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29295 {
29296         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_offered, 0);
29297
29298         return offset;
29299 }
29300
29301 static int
29302 spoolss_dissect_element_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29303 {
29304         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrinterDrivers_count);
29305
29306         return offset;
29307 }
29308
29309 static int
29310 spoolss_dissect_element_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29311 {
29312         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_count, 0);
29313
29314         return offset;
29315 }
29316
29317 static int
29318 spoolss_dissect_element_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29319 {
29320         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_EnumPrinterDrivers_info);
29321
29322         return offset;
29323 }
29324
29325 static int
29326 spoolss_dissect_element_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29327 {
29328         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_EnumPrinterDrivers_info);
29329
29330         return offset;
29331 }
29332
29333 static int
29334 spoolss_dissect_element_EnumPrinterDrivers_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29335 {
29336         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_info___);
29337
29338         return offset;
29339 }
29340
29341 static int
29342 spoolss_dissect_element_EnumPrinterDrivers_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29343 {
29344         offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_info, *0);
29345
29346         return offset;
29347 }
29348
29349 static int
29350 spoolss_dissect_element_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29351 {
29352         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinterDrivers_needed);
29353
29354         return offset;
29355 }
29356
29357 static int
29358 spoolss_dissect_element_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29359 {
29360         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_needed, 0);
29361
29362         return offset;
29363 }
29364
29365 /* IDL: WERROR spoolss_EnumPrinterDrivers( */
29366 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
29367 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
29368 /* IDL: [in] uint32 level, */
29369 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
29370 /* IDL: [in] uint32 offered, */
29371 /* IDL: [out] [ref] uint32 *count, */
29372 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_DriverInfo **info, */
29373 /* IDL: [out] [ref] uint32 *needed */
29374 /* IDL: ); */
29375
29376 static int
29377 spoolss_dissect_EnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29378 {
29379         guint32 status;
29380
29381         pinfo->dcerpc_procedure_name="EnumPrinterDrivers";
29382         offset = spoolss_dissect_element_EnumPrinterDrivers_count(tvb, offset, pinfo, tree, drep);
29383         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29384
29385         offset = spoolss_dissect_element_EnumPrinterDrivers_info(tvb, offset, pinfo, tree, drep);
29386         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29387
29388         offset = spoolss_dissect_element_EnumPrinterDrivers_needed(tvb, offset, pinfo, tree, drep);
29389         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29390
29391         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
29392
29393         if (status != 0)
29394                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
29395
29396         return offset;
29397 }
29398
29399 static int
29400 spoolss_dissect_EnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29401 {
29402         pinfo->dcerpc_procedure_name="EnumPrinterDrivers";
29403         offset = spoolss_dissect_element_EnumPrinterDrivers_server(tvb, offset, pinfo, tree, drep);
29404         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29405         offset = spoolss_dissect_element_EnumPrinterDrivers_environment(tvb, offset, pinfo, tree, drep);
29406         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29407         offset = spoolss_dissect_element_EnumPrinterDrivers_level(tvb, offset, pinfo, tree, drep);
29408         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29409         offset = spoolss_dissect_element_EnumPrinterDrivers_buffer(tvb, offset, pinfo, tree, drep);
29410         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29411         offset = spoolss_dissect_element_EnumPrinterDrivers_offered(tvb, offset, pinfo, tree, drep);
29412         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29413         return offset;
29414 }
29415
29416 static int
29417 spoolss_dissect_element_GetPrinterDriver_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29418 {
29419         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterDriver_handle);
29420
29421         return offset;
29422 }
29423
29424 static int
29425 spoolss_dissect_element_GetPrinterDriver_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29426 {
29427         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_handle, 0);
29428
29429         return offset;
29430 }
29431
29432 static int
29433 spoolss_dissect_element_GetPrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29434 {
29435         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetPrinterDriver_architecture);
29436
29437         return offset;
29438 }
29439
29440 static int
29441 spoolss_dissect_element_GetPrinterDriver_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29442 {
29443         char *data;
29444
29445         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriver_architecture, FALSE, &data);
29446         proto_item_append_text(tree, ": %s", data);
29447
29448         return offset;
29449 }
29450
29451 static int
29452 spoolss_dissect_element_GetPrinterDriver_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29453 {
29454         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_level, 0);
29455
29456         return offset;
29457 }
29458
29459 static int
29460 spoolss_dissect_element_GetPrinterDriver_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29461 {
29462         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinterDriver_buffer);
29463
29464         return offset;
29465 }
29466
29467 static int
29468 spoolss_dissect_element_GetPrinterDriver_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29469 {
29470         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_buffer, 0);
29471
29472         return offset;
29473 }
29474
29475 static int
29476 spoolss_dissect_element_GetPrinterDriver_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29477 {
29478         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_offered, 0);
29479
29480         return offset;
29481 }
29482
29483 static int
29484 spoolss_dissect_element_GetPrinterDriver_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29485 {
29486         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_GetPrinterDriver_info);
29487
29488         return offset;
29489 }
29490
29491 static int
29492 spoolss_dissect_element_GetPrinterDriver_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29493 {
29494         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
29495         guint3264 size;
29496         int conformant = di->conformant_run;
29497         tvbuff_t *subtvb;
29498
29499         if (!conformant) {
29500                 guint32 saved_flags = di->call_data->flags;
29501                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_info_, &size);
29502                 di->call_data->flags &= ~DCERPC_IS_NDR64;
29503                 subtvb = tvb_new_subset(tvb, offset, size, -1);
29504                 spoolss_dissect_element_GetPrinterDriver_info__(subtvb, 0, pinfo, tree, drep);
29505                 offset += size;
29506                 di->call_data->flags = saved_flags;
29507         }
29508
29509         return offset;
29510 }
29511
29512 static int
29513 spoolss_dissect_element_GetPrinterDriver_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29514 {
29515         offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_info, *0);
29516
29517         return offset;
29518 }
29519
29520 static int
29521 spoolss_dissect_element_GetPrinterDriver_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29522 {
29523         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDriver_needed);
29524
29525         return offset;
29526 }
29527
29528 static int
29529 spoolss_dissect_element_GetPrinterDriver_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29530 {
29531         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_needed, 0);
29532
29533         return offset;
29534 }
29535
29536 /* IDL: WERROR spoolss_GetPrinterDriver( */
29537 /* IDL: [in] [ref] policy_handle *handle, */
29538 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *architecture, */
29539 /* IDL: [in] uint32 level, */
29540 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
29541 /* IDL: [in] uint32 offered, */
29542 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_DriverInfo *info, */
29543 /* IDL: [out] [ref] uint32 *needed */
29544 /* IDL: ); */
29545
29546 static int
29547 spoolss_dissect_GetPrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29548 {
29549         guint32 status;
29550
29551         pinfo->dcerpc_procedure_name="GetPrinterDriver";
29552         offset = spoolss_dissect_element_GetPrinterDriver_info(tvb, offset, pinfo, tree, drep);
29553         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29554
29555         offset = spoolss_dissect_element_GetPrinterDriver_needed(tvb, offset, pinfo, tree, drep);
29556         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29557
29558         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
29559
29560         if (status != 0)
29561                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
29562
29563         return offset;
29564 }
29565
29566 static int
29567 spoolss_dissect_GetPrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29568 {
29569         pinfo->dcerpc_procedure_name="GetPrinterDriver";
29570         offset = spoolss_dissect_element_GetPrinterDriver_handle(tvb, offset, pinfo, tree, drep);
29571         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29572         offset = spoolss_dissect_element_GetPrinterDriver_architecture(tvb, offset, pinfo, tree, drep);
29573         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29574         offset = spoolss_dissect_element_GetPrinterDriver_level(tvb, offset, pinfo, tree, drep);
29575         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29576         offset = spoolss_dissect_element_GetPrinterDriver_buffer(tvb, offset, pinfo, tree, drep);
29577         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29578         offset = spoolss_dissect_element_GetPrinterDriver_offered(tvb, offset, pinfo, tree, drep);
29579         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29580         return offset;
29581 }
29582
29583 static int
29584 spoolss_dissect_element_GetPrinterDriverDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29585 {
29586         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_GetPrinterDriverDirectory_server);
29587
29588         return offset;
29589 }
29590
29591 static int
29592 spoolss_dissect_element_GetPrinterDriverDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29593 {
29594         char *data;
29595
29596         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverDirectory_server, FALSE, &data);
29597         proto_item_append_text(tree, ": %s", data);
29598
29599         return offset;
29600 }
29601
29602 static int
29603 spoolss_dissect_element_GetPrinterDriverDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29604 {
29605         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_GetPrinterDriverDirectory_environment);
29606
29607         return offset;
29608 }
29609
29610 static int
29611 spoolss_dissect_element_GetPrinterDriverDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29612 {
29613         char *data;
29614
29615         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverDirectory_environment, FALSE, &data);
29616         proto_item_append_text(tree, ": %s", data);
29617
29618         return offset;
29619 }
29620
29621 static int
29622 spoolss_dissect_element_GetPrinterDriverDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29623 {
29624         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_level, 0);
29625
29626         return offset;
29627 }
29628
29629 static int
29630 spoolss_dissect_element_GetPrinterDriverDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29631 {
29632         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer);
29633
29634         return offset;
29635 }
29636
29637 static int
29638 spoolss_dissect_element_GetPrinterDriverDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29639 {
29640         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer, 0);
29641
29642         return offset;
29643 }
29644
29645 static int
29646 spoolss_dissect_element_GetPrinterDriverDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29647 {
29648         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_offered, 0);
29649
29650         return offset;
29651 }
29652
29653 static int
29654 spoolss_dissect_element_GetPrinterDriverDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29655 {
29656         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverDirectoryInfo)",hf_spoolss_spoolss_GetPrinterDriverDirectory_info);
29657
29658         return offset;
29659 }
29660
29661 static int
29662 spoolss_dissect_element_GetPrinterDriverDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29663 {
29664         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
29665         guint3264 size;
29666         int conformant = di->conformant_run;
29667         tvbuff_t *subtvb;
29668
29669         if (!conformant) {
29670                 guint32 saved_flags = di->call_data->flags;
29671                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_info_, &size);
29672                 di->call_data->flags &= ~DCERPC_IS_NDR64;
29673                 subtvb = tvb_new_subset(tvb, offset, size, -1);
29674                 spoolss_dissect_element_GetPrinterDriverDirectory_info__(subtvb, 0, pinfo, tree, drep);
29675                 offset += size;
29676                 di->call_data->flags = saved_flags;
29677         }
29678
29679         return offset;
29680 }
29681
29682 static int
29683 spoolss_dissect_element_GetPrinterDriverDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29684 {
29685         offset = spoolss_dissect_DriverDirectoryInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_info, *0);
29686
29687         return offset;
29688 }
29689
29690 static int
29691 spoolss_dissect_element_GetPrinterDriverDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29692 {
29693         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDriverDirectory_needed);
29694
29695         return offset;
29696 }
29697
29698 static int
29699 spoolss_dissect_element_GetPrinterDriverDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29700 {
29701         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_needed, 0);
29702
29703         return offset;
29704 }
29705
29706 /* IDL: WERROR spoolss_GetPrinterDriverDirectory( */
29707 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
29708 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
29709 /* IDL: [in] uint32 level, */
29710 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
29711 /* IDL: [in] uint32 offered, */
29712 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_DriverDirectoryInfo *info, */
29713 /* IDL: [out] [ref] uint32 *needed */
29714 /* IDL: ); */
29715
29716 static int
29717 spoolss_dissect_GetPrinterDriverDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29718 {
29719         guint32 status;
29720
29721         pinfo->dcerpc_procedure_name="GetPrinterDriverDirectory";
29722         offset = spoolss_dissect_element_GetPrinterDriverDirectory_info(tvb, offset, pinfo, tree, drep);
29723         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29724
29725         offset = spoolss_dissect_element_GetPrinterDriverDirectory_needed(tvb, offset, pinfo, tree, drep);
29726         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29727
29728         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
29729
29730         if (status != 0)
29731                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
29732
29733         return offset;
29734 }
29735
29736 static int
29737 spoolss_dissect_GetPrinterDriverDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29738 {
29739         pinfo->dcerpc_procedure_name="GetPrinterDriverDirectory";
29740         offset = spoolss_dissect_element_GetPrinterDriverDirectory_server(tvb, offset, pinfo, tree, drep);
29741         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29742         offset = spoolss_dissect_element_GetPrinterDriverDirectory_environment(tvb, offset, pinfo, tree, drep);
29743         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29744         offset = spoolss_dissect_element_GetPrinterDriverDirectory_level(tvb, offset, pinfo, tree, drep);
29745         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29746         offset = spoolss_dissect_element_GetPrinterDriverDirectory_buffer(tvb, offset, pinfo, tree, drep);
29747         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29748         offset = spoolss_dissect_element_GetPrinterDriverDirectory_offered(tvb, offset, pinfo, tree, drep);
29749         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29750         return offset;
29751 }
29752
29753 static int
29754 spoolss_dissect_element_DeletePrinterDriver_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29755 {
29756         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterDriver_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePrinterDriver_server);
29757
29758         return offset;
29759 }
29760
29761 static int
29762 spoolss_dissect_element_DeletePrinterDriver_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29763 {
29764         char *data;
29765
29766         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriver_server, FALSE, &data);
29767         proto_item_append_text(tree, ": %s", data);
29768
29769         return offset;
29770 }
29771
29772 static int
29773 spoolss_dissect_element_DeletePrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29774 {
29775         char *data;
29776
29777         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriver_architecture, FALSE, &data);
29778         proto_item_append_text(tree, ": %s", data);
29779
29780         return offset;
29781 }
29782
29783 static int
29784 spoolss_dissect_element_DeletePrinterDriver_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29785 {
29786         char *data;
29787
29788         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriver_driver, FALSE, &data);
29789         proto_item_append_text(tree, ": %s", data);
29790
29791         return offset;
29792 }
29793
29794 /* IDL: WERROR spoolss_DeletePrinterDriver( */
29795 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
29796 /* IDL: [in] [charset(UTF16)] uint16 architecture[*], */
29797 /* IDL: [in] [charset(UTF16)] uint16 driver[*] */
29798 /* IDL: ); */
29799
29800 static int
29801 spoolss_dissect_DeletePrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29802 {
29803         guint32 status;
29804
29805         pinfo->dcerpc_procedure_name="DeletePrinterDriver";
29806         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
29807
29808         if (status != 0)
29809                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
29810
29811         return offset;
29812 }
29813
29814 static int
29815 spoolss_dissect_DeletePrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29816 {
29817         pinfo->dcerpc_procedure_name="DeletePrinterDriver";
29818         offset = spoolss_dissect_element_DeletePrinterDriver_server(tvb, offset, pinfo, tree, drep);
29819         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29820         offset = spoolss_dissect_element_DeletePrinterDriver_architecture(tvb, offset, pinfo, tree, drep);
29821         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29822         offset = spoolss_dissect_element_DeletePrinterDriver_driver(tvb, offset, pinfo, tree, drep);
29823         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29824         return offset;
29825 }
29826
29827 static int
29828 spoolss_dissect_element_AddPrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29829 {
29830         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrintProcessor_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPrintProcessor_server);
29831
29832         return offset;
29833 }
29834
29835 static int
29836 spoolss_dissect_element_AddPrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29837 {
29838         char *data;
29839
29840         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_server, FALSE, &data);
29841         proto_item_append_text(tree, ": %s", data);
29842
29843         return offset;
29844 }
29845
29846 static int
29847 spoolss_dissect_element_AddPrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29848 {
29849         char *data;
29850
29851         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_architecture, FALSE, &data);
29852         proto_item_append_text(tree, ": %s", data);
29853
29854         return offset;
29855 }
29856
29857 static int
29858 spoolss_dissect_element_AddPrintProcessor_path_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29859 {
29860         char *data;
29861
29862         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_path_name, FALSE, &data);
29863         proto_item_append_text(tree, ": %s", data);
29864
29865         return offset;
29866 }
29867
29868 static int
29869 spoolss_dissect_element_AddPrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29870 {
29871         char *data;
29872
29873         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_print_processor_name, FALSE, &data);
29874         proto_item_append_text(tree, ": %s", data);
29875
29876         return offset;
29877 }
29878
29879 /* IDL: WERROR spoolss_AddPrintProcessor( */
29880 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
29881 /* IDL: [in] [charset(UTF16)] uint16 architecture[*], */
29882 /* IDL: [in] [charset(UTF16)] uint16 path_name[*], */
29883 /* IDL: [in] [charset(UTF16)] uint16 print_processor_name[*] */
29884 /* IDL: ); */
29885
29886 static int
29887 spoolss_dissect_AddPrintProcessor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29888 {
29889         guint32 status;
29890
29891         pinfo->dcerpc_procedure_name="AddPrintProcessor";
29892         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
29893
29894         if (status != 0)
29895                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
29896
29897         return offset;
29898 }
29899
29900 static int
29901 spoolss_dissect_AddPrintProcessor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29902 {
29903         pinfo->dcerpc_procedure_name="AddPrintProcessor";
29904         offset = spoolss_dissect_element_AddPrintProcessor_server(tvb, offset, pinfo, tree, drep);
29905         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29906         offset = spoolss_dissect_element_AddPrintProcessor_architecture(tvb, offset, pinfo, tree, drep);
29907         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29908         offset = spoolss_dissect_element_AddPrintProcessor_path_name(tvb, offset, pinfo, tree, drep);
29909         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29910         offset = spoolss_dissect_element_AddPrintProcessor_print_processor_name(tvb, offset, pinfo, tree, drep);
29911         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
29912         return offset;
29913 }
29914
29915 static int
29916 spoolss_dissect_element__spoolss_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29917 {
29918         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumPrintProcessors_servername);
29919
29920         return offset;
29921 }
29922
29923 static int
29924 spoolss_dissect_element__spoolss_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29925 {
29926         char *data;
29927
29928         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcessors_servername, FALSE, &data);
29929         proto_item_append_text(tree, ": %s", data);
29930
29931         return offset;
29932 }
29933
29934 static int
29935 spoolss_dissect_element__spoolss_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29936 {
29937         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss__spoolss_EnumPrintProcessors_environment);
29938
29939         return offset;
29940 }
29941
29942 static int
29943 spoolss_dissect_element__spoolss_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29944 {
29945         char *data;
29946
29947         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcessors_environment, FALSE, &data);
29948         proto_item_append_text(tree, ": %s", data);
29949
29950         return offset;
29951 }
29952
29953 static int
29954 spoolss_dissect_element__spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29955 {
29956         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_level, 0);
29957
29958         return offset;
29959 }
29960
29961 static int
29962 spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29963 {
29964         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcessors_buffer);
29965
29966         return offset;
29967 }
29968
29969 static int
29970 spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29971 {
29972         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_buffer, 0);
29973
29974         return offset;
29975 }
29976
29977 static int
29978 spoolss_dissect_element__spoolss_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29979 {
29980         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_offered, 0);
29981
29982         return offset;
29983 }
29984
29985 static int
29986 spoolss_dissect_element__spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29987 {
29988         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcessors_info);
29989
29990         return offset;
29991 }
29992
29993 static int
29994 spoolss_dissect_element__spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
29995 {
29996         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_info, 0);
29997
29998         return offset;
29999 }
30000
30001 static int
30002 spoolss_dissect_element__spoolss_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30003 {
30004         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrintProcessors_needed);
30005
30006         return offset;
30007 }
30008
30009 static int
30010 spoolss_dissect_element__spoolss_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30011 {
30012         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_needed, 0);
30013
30014         return offset;
30015 }
30016
30017 static int
30018 spoolss_dissect_element__spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30019 {
30020         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrintProcessors_count);
30021
30022         return offset;
30023 }
30024
30025 static int
30026 spoolss_dissect_element__spoolss_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30027 {
30028         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_count, 0);
30029
30030         return offset;
30031 }
30032
30033 /* IDL: WERROR _spoolss_EnumPrintProcessors( */
30034 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
30035 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
30036 /* IDL: [in] uint32 level, */
30037 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
30038 /* IDL: [in] uint32 offered, */
30039 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
30040 /* IDL: [out] [ref] uint32 *needed, */
30041 /* IDL: [out] [ref] uint32 *count */
30042 /* IDL: ); */
30043
30044 static int
30045 spoolss_dissect__spoolss_EnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30046 {
30047         guint32 status;
30048
30049         pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcessors";
30050         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_info(tvb, offset, pinfo, tree, drep);
30051         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30052
30053         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_needed(tvb, offset, pinfo, tree, drep);
30054         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30055
30056         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_count(tvb, offset, pinfo, tree, drep);
30057         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30058
30059         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30060
30061         if (status != 0)
30062                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30063
30064         return offset;
30065 }
30066
30067 static int
30068 spoolss_dissect__spoolss_EnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30069 {
30070         pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcessors";
30071         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_servername(tvb, offset, pinfo, tree, drep);
30072         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30073         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_environment(tvb, offset, pinfo, tree, drep);
30074         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30075         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_level(tvb, offset, pinfo, tree, drep);
30076         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30077         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer(tvb, offset, pinfo, tree, drep);
30078         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30079         offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_offered(tvb, offset, pinfo, tree, drep);
30080         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30081         return offset;
30082 }
30083
30084 static int
30085 spoolss_dissect_element___spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30086 {
30087         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcessors_level, 0);
30088
30089         return offset;
30090 }
30091
30092 static int
30093 spoolss_dissect_element___spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30094 {
30095         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcessors_count, 0);
30096
30097         return offset;
30098 }
30099
30100 static int
30101 spoolss_dissect_element___spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30102 {
30103
30104         return offset;
30105 }
30106
30107 static int
30108 spoolss_dissect_element___spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30109 {
30110         offset = spoolss_dissect_PrintProcessorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcessors_info, *0);
30111
30112         return offset;
30113 }
30114
30115 /* IDL: void __spoolss_EnumPrintProcessors( */
30116 /* IDL: [in] uint32 level, */
30117 /* IDL: [in] uint32 count, */
30118 /* IDL: [out] [switch_is(level)] spoolss_PrintProcessorInfo info[count] */
30119 /* IDL: ); */
30120
30121 static int
30122 spoolss_dissect___spoolss_EnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30123 {
30124         pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcessors";
30125         offset = spoolss_dissect_element___spoolss_EnumPrintProcessors_info(tvb, offset, pinfo, tree, drep);
30126         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30127
30128         return offset;
30129 }
30130
30131 static int
30132 spoolss_dissect___spoolss_EnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30133 {
30134         pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcessors";
30135         offset = spoolss_dissect_element___spoolss_EnumPrintProcessors_level(tvb, offset, pinfo, tree, drep);
30136         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30137         offset = spoolss_dissect_element___spoolss_EnumPrintProcessors_count(tvb, offset, pinfo, tree, drep);
30138         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30139         return offset;
30140 }
30141
30142 static int
30143 spoolss_dissect_element_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30144 {
30145         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumPrintProcessors_servername);
30146
30147         return offset;
30148 }
30149
30150 static int
30151 spoolss_dissect_element_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30152 {
30153         char *data;
30154
30155         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcessors_servername, FALSE, &data);
30156         proto_item_append_text(tree, ": %s", data);
30157
30158         return offset;
30159 }
30160
30161 static int
30162 spoolss_dissect_element_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30163 {
30164         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_EnumPrintProcessors_environment);
30165
30166         return offset;
30167 }
30168
30169 static int
30170 spoolss_dissect_element_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30171 {
30172         char *data;
30173
30174         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcessors_environment, FALSE, &data);
30175         proto_item_append_text(tree, ": %s", data);
30176
30177         return offset;
30178 }
30179
30180 static int
30181 spoolss_dissect_element_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30182 {
30183         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_level, 0);
30184
30185         return offset;
30186 }
30187
30188 static int
30189 spoolss_dissect_element_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30190 {
30191         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrintProcessors_buffer);
30192
30193         return offset;
30194 }
30195
30196 static int
30197 spoolss_dissect_element_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30198 {
30199         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_buffer, 0);
30200
30201         return offset;
30202 }
30203
30204 static int
30205 spoolss_dissect_element_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30206 {
30207         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_offered, 0);
30208
30209         return offset;
30210 }
30211
30212 static int
30213 spoolss_dissect_element_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30214 {
30215         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrintProcessors_count);
30216
30217         return offset;
30218 }
30219
30220 static int
30221 spoolss_dissect_element_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30222 {
30223         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_count, 0);
30224
30225         return offset;
30226 }
30227
30228 static int
30229 spoolss_dissect_element_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30230 {
30231         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrintProcessorInfo)",hf_spoolss_spoolss_EnumPrintProcessors_info);
30232
30233         return offset;
30234 }
30235
30236 static int
30237 spoolss_dissect_element_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30238 {
30239         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrintProcessorInfo)",hf_spoolss_spoolss_EnumPrintProcessors_info);
30240
30241         return offset;
30242 }
30243
30244 static int
30245 spoolss_dissect_element_EnumPrintProcessors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30246 {
30247         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_info___);
30248
30249         return offset;
30250 }
30251
30252 static int
30253 spoolss_dissect_element_EnumPrintProcessors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30254 {
30255         offset = spoolss_dissect_PrintProcessorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_info, *0);
30256
30257         return offset;
30258 }
30259
30260 static int
30261 spoolss_dissect_element_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30262 {
30263         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrintProcessors_needed);
30264
30265         return offset;
30266 }
30267
30268 static int
30269 spoolss_dissect_element_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30270 {
30271         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_needed, 0);
30272
30273         return offset;
30274 }
30275
30276 /* IDL: WERROR spoolss_EnumPrintProcessors( */
30277 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
30278 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
30279 /* IDL: [in] uint32 level, */
30280 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
30281 /* IDL: [in] uint32 offered, */
30282 /* IDL: [out] [ref] uint32 *count, */
30283 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PrintProcessorInfo **info, */
30284 /* IDL: [out] [ref] uint32 *needed */
30285 /* IDL: ); */
30286
30287 static int
30288 spoolss_dissect_EnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30289 {
30290         guint32 status;
30291
30292         pinfo->dcerpc_procedure_name="EnumPrintProcessors";
30293         offset = spoolss_dissect_element_EnumPrintProcessors_count(tvb, offset, pinfo, tree, drep);
30294         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30295
30296         offset = spoolss_dissect_element_EnumPrintProcessors_info(tvb, offset, pinfo, tree, drep);
30297         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30298
30299         offset = spoolss_dissect_element_EnumPrintProcessors_needed(tvb, offset, pinfo, tree, drep);
30300         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30301
30302         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30303
30304         if (status != 0)
30305                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30306
30307         return offset;
30308 }
30309
30310 static int
30311 spoolss_dissect_EnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30312 {
30313         pinfo->dcerpc_procedure_name="EnumPrintProcessors";
30314         offset = spoolss_dissect_element_EnumPrintProcessors_servername(tvb, offset, pinfo, tree, drep);
30315         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30316         offset = spoolss_dissect_element_EnumPrintProcessors_environment(tvb, offset, pinfo, tree, drep);
30317         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30318         offset = spoolss_dissect_element_EnumPrintProcessors_level(tvb, offset, pinfo, tree, drep);
30319         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30320         offset = spoolss_dissect_element_EnumPrintProcessors_buffer(tvb, offset, pinfo, tree, drep);
30321         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30322         offset = spoolss_dissect_element_EnumPrintProcessors_offered(tvb, offset, pinfo, tree, drep);
30323         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30324         return offset;
30325 }
30326
30327 static int
30328 spoolss_dissect_element_GetPrintProcessorDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30329 {
30330         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_GetPrintProcessorDirectory_server);
30331
30332         return offset;
30333 }
30334
30335 static int
30336 spoolss_dissect_element_GetPrintProcessorDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30337 {
30338         char *data;
30339
30340         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrintProcessorDirectory_server, FALSE, &data);
30341         proto_item_append_text(tree, ": %s", data);
30342
30343         return offset;
30344 }
30345
30346 static int
30347 spoolss_dissect_element_GetPrintProcessorDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30348 {
30349         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_GetPrintProcessorDirectory_environment);
30350
30351         return offset;
30352 }
30353
30354 static int
30355 spoolss_dissect_element_GetPrintProcessorDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30356 {
30357         char *data;
30358
30359         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrintProcessorDirectory_environment, FALSE, &data);
30360         proto_item_append_text(tree, ": %s", data);
30361
30362         return offset;
30363 }
30364
30365 static int
30366 spoolss_dissect_element_GetPrintProcessorDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30367 {
30368         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_level, 0);
30369
30370         return offset;
30371 }
30372
30373 static int
30374 spoolss_dissect_element_GetPrintProcessorDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30375 {
30376         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer);
30377
30378         return offset;
30379 }
30380
30381 static int
30382 spoolss_dissect_element_GetPrintProcessorDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30383 {
30384         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer, 0);
30385
30386         return offset;
30387 }
30388
30389 static int
30390 spoolss_dissect_element_GetPrintProcessorDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30391 {
30392         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_offered, 0);
30393
30394         return offset;
30395 }
30396
30397 static int
30398 spoolss_dissect_element_GetPrintProcessorDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30399 {
30400         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrintProcessorDirectoryInfo)",hf_spoolss_spoolss_GetPrintProcessorDirectory_info);
30401
30402         return offset;
30403 }
30404
30405 static int
30406 spoolss_dissect_element_GetPrintProcessorDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30407 {
30408         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
30409         guint3264 size;
30410         int conformant = di->conformant_run;
30411         tvbuff_t *subtvb;
30412
30413         if (!conformant) {
30414                 guint32 saved_flags = di->call_data->flags;
30415                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_info_, &size);
30416                 di->call_data->flags &= ~DCERPC_IS_NDR64;
30417                 subtvb = tvb_new_subset(tvb, offset, size, -1);
30418                 spoolss_dissect_element_GetPrintProcessorDirectory_info__(subtvb, 0, pinfo, tree, drep);
30419                 offset += size;
30420                 di->call_data->flags = saved_flags;
30421         }
30422
30423         return offset;
30424 }
30425
30426 static int
30427 spoolss_dissect_element_GetPrintProcessorDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30428 {
30429         offset = spoolss_dissect_PrintProcessorDirectoryInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_info, *0);
30430
30431         return offset;
30432 }
30433
30434 static int
30435 spoolss_dissect_element_GetPrintProcessorDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30436 {
30437         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrintProcessorDirectory_needed);
30438
30439         return offset;
30440 }
30441
30442 static int
30443 spoolss_dissect_element_GetPrintProcessorDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30444 {
30445         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_needed, 0);
30446
30447         return offset;
30448 }
30449
30450 /* IDL: WERROR spoolss_GetPrintProcessorDirectory( */
30451 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
30452 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
30453 /* IDL: [in] uint32 level, */
30454 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
30455 /* IDL: [in] uint32 offered, */
30456 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_PrintProcessorDirectoryInfo *info, */
30457 /* IDL: [out] [ref] uint32 *needed */
30458 /* IDL: ); */
30459
30460 static int
30461 spoolss_dissect_GetPrintProcessorDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30462 {
30463         guint32 status;
30464
30465         pinfo->dcerpc_procedure_name="GetPrintProcessorDirectory";
30466         offset = spoolss_dissect_element_GetPrintProcessorDirectory_info(tvb, offset, pinfo, tree, drep);
30467         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30468
30469         offset = spoolss_dissect_element_GetPrintProcessorDirectory_needed(tvb, offset, pinfo, tree, drep);
30470         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30471
30472         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30473
30474         if (status != 0)
30475                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30476
30477         return offset;
30478 }
30479
30480 static int
30481 spoolss_dissect_GetPrintProcessorDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30482 {
30483         pinfo->dcerpc_procedure_name="GetPrintProcessorDirectory";
30484         offset = spoolss_dissect_element_GetPrintProcessorDirectory_server(tvb, offset, pinfo, tree, drep);
30485         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30486         offset = spoolss_dissect_element_GetPrintProcessorDirectory_environment(tvb, offset, pinfo, tree, drep);
30487         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30488         offset = spoolss_dissect_element_GetPrintProcessorDirectory_level(tvb, offset, pinfo, tree, drep);
30489         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30490         offset = spoolss_dissect_element_GetPrintProcessorDirectory_buffer(tvb, offset, pinfo, tree, drep);
30491         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30492         offset = spoolss_dissect_element_GetPrintProcessorDirectory_offered(tvb, offset, pinfo, tree, drep);
30493         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30494         return offset;
30495 }
30496
30497 static int
30498 spoolss_dissect_element_StartDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30499 {
30500         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartDocPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_StartDocPrinter_handle);
30501
30502         return offset;
30503 }
30504
30505 static int
30506 spoolss_dissect_element_StartDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30507 {
30508         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StartDocPrinter_handle, 0);
30509
30510         return offset;
30511 }
30512
30513 static int
30514 spoolss_dissect_element_StartDocPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30515 {
30516         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartDocPrinter_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_DocumentInfoCtr)",hf_spoolss_spoolss_StartDocPrinter_info_ctr);
30517
30518         return offset;
30519 }
30520
30521 static int
30522 spoolss_dissect_element_StartDocPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30523 {
30524         offset = spoolss_dissect_struct_DocumentInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_StartDocPrinter_info_ctr,0);
30525
30526         return offset;
30527 }
30528
30529 static int
30530 spoolss_dissect_element_StartDocPrinter_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30531 {
30532         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartDocPrinter_job_id_, NDR_POINTER_REF, "Pointer to Job Id (uint32)",hf_spoolss_spoolss_StartDocPrinter_job_id);
30533
30534         return offset;
30535 }
30536
30537 static int
30538 spoolss_dissect_element_StartDocPrinter_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30539 {
30540         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StartDocPrinter_job_id, 0);
30541
30542         return offset;
30543 }
30544
30545 /* IDL: WERROR spoolss_StartDocPrinter( */
30546 /* IDL: [in] [ref] policy_handle *handle, */
30547 /* IDL: [in] [ref] spoolss_DocumentInfoCtr *info_ctr, */
30548 /* IDL: [out] [ref] uint32 *job_id */
30549 /* IDL: ); */
30550
30551 static int
30552 spoolss_dissect_StartDocPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30553 {
30554         guint32 status;
30555
30556         pinfo->dcerpc_procedure_name="StartDocPrinter";
30557         offset = spoolss_dissect_element_StartDocPrinter_job_id(tvb, offset, pinfo, tree, drep);
30558         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30559
30560         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30561
30562         if (status != 0)
30563                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30564
30565         return offset;
30566 }
30567
30568 static int
30569 spoolss_dissect_StartDocPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30570 {
30571         pinfo->dcerpc_procedure_name="StartDocPrinter";
30572         offset = spoolss_dissect_element_StartDocPrinter_handle(tvb, offset, pinfo, tree, drep);
30573         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30574         offset = spoolss_dissect_element_StartDocPrinter_info_ctr(tvb, offset, pinfo, tree, drep);
30575         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30576         return offset;
30577 }
30578
30579 static int
30580 spoolss_dissect_element_StartPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30581 {
30582         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartPagePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_StartPagePrinter_handle);
30583
30584         return offset;
30585 }
30586
30587 static int
30588 spoolss_dissect_element_StartPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30589 {
30590         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StartPagePrinter_handle, 0);
30591
30592         return offset;
30593 }
30594
30595 /* IDL: WERROR spoolss_StartPagePrinter( */
30596 /* IDL: [in] [ref] policy_handle *handle */
30597 /* IDL: ); */
30598
30599 static int
30600 spoolss_dissect_StartPagePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30601 {
30602         guint32 status;
30603
30604         pinfo->dcerpc_procedure_name="StartPagePrinter";
30605         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30606
30607         if (status != 0)
30608                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30609
30610         return offset;
30611 }
30612
30613 static int
30614 spoolss_dissect_StartPagePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30615 {
30616         pinfo->dcerpc_procedure_name="StartPagePrinter";
30617         offset = spoolss_dissect_element_StartPagePrinter_handle(tvb, offset, pinfo, tree, drep);
30618         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30619         return offset;
30620 }
30621
30622 static int
30623 spoolss_dissect_element_WritePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30624 {
30625         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_WritePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_WritePrinter_handle);
30626
30627         return offset;
30628 }
30629
30630 static int
30631 spoolss_dissect_element_WritePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30632 {
30633         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter_handle, 0);
30634
30635         return offset;
30636 }
30637
30638 static int
30639 spoolss_dissect_element_WritePrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30640 {
30641         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter_data, 0);
30642
30643         return offset;
30644 }
30645
30646 static int
30647 spoolss_dissect_element_WritePrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30648 {
30649         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter__data_size, 0);
30650
30651         return offset;
30652 }
30653
30654 static int
30655 spoolss_dissect_element_WritePrinter_num_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30656 {
30657         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_WritePrinter_num_written_, NDR_POINTER_REF, "Pointer to Num Written (uint32)",hf_spoolss_spoolss_WritePrinter_num_written);
30658
30659         return offset;
30660 }
30661
30662 static int
30663 spoolss_dissect_element_WritePrinter_num_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30664 {
30665         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter_num_written, 0);
30666
30667         return offset;
30668 }
30669
30670 /* IDL: WERROR spoolss_WritePrinter( */
30671 /* IDL: [in] [ref] policy_handle *handle, */
30672 /* IDL: [in] DATA_BLOB data, */
30673 /* IDL: [in] [value(r->in.data.length)] uint32 _data_size, */
30674 /* IDL: [out] [ref] uint32 *num_written */
30675 /* IDL: ); */
30676
30677 static int
30678 spoolss_dissect_WritePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30679 {
30680         guint32 status;
30681
30682         pinfo->dcerpc_procedure_name="WritePrinter";
30683         offset = spoolss_dissect_element_WritePrinter_num_written(tvb, offset, pinfo, tree, drep);
30684         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30685
30686         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30687
30688         if (status != 0)
30689                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30690
30691         return offset;
30692 }
30693
30694 static int
30695 spoolss_dissect_WritePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30696 {
30697         pinfo->dcerpc_procedure_name="WritePrinter";
30698         offset = spoolss_dissect_element_WritePrinter_handle(tvb, offset, pinfo, tree, drep);
30699         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30700         offset = spoolss_dissect_element_WritePrinter_data(tvb, offset, pinfo, tree, drep);
30701         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30702         offset = spoolss_dissect_element_WritePrinter__data_size(tvb, offset, pinfo, tree, drep);
30703         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30704         return offset;
30705 }
30706
30707 static int
30708 spoolss_dissect_element_EndPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30709 {
30710         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EndPagePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EndPagePrinter_handle);
30711
30712         return offset;
30713 }
30714
30715 static int
30716 spoolss_dissect_element_EndPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30717 {
30718         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EndPagePrinter_handle, 0);
30719
30720         return offset;
30721 }
30722
30723 /* IDL: WERROR spoolss_EndPagePrinter( */
30724 /* IDL: [in] [ref] policy_handle *handle */
30725 /* IDL: ); */
30726
30727 static int
30728 spoolss_dissect_EndPagePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30729 {
30730         guint32 status;
30731
30732         pinfo->dcerpc_procedure_name="EndPagePrinter";
30733         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30734
30735         if (status != 0)
30736                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30737
30738         return offset;
30739 }
30740
30741 static int
30742 spoolss_dissect_EndPagePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30743 {
30744         pinfo->dcerpc_procedure_name="EndPagePrinter";
30745         offset = spoolss_dissect_element_EndPagePrinter_handle(tvb, offset, pinfo, tree, drep);
30746         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30747         return offset;
30748 }
30749
30750 static int
30751 spoolss_dissect_element_AbortPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30752 {
30753         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AbortPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AbortPrinter_handle);
30754
30755         return offset;
30756 }
30757
30758 static int
30759 spoolss_dissect_element_AbortPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30760 {
30761         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AbortPrinter_handle, 0);
30762
30763         return offset;
30764 }
30765
30766 /* IDL: WERROR spoolss_AbortPrinter( */
30767 /* IDL: [in] [ref] policy_handle *handle */
30768 /* IDL: ); */
30769
30770 static int
30771 spoolss_dissect_AbortPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30772 {
30773         guint32 status;
30774
30775         pinfo->dcerpc_procedure_name="AbortPrinter";
30776         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30777
30778         if (status != 0)
30779                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30780
30781         return offset;
30782 }
30783
30784 static int
30785 spoolss_dissect_AbortPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30786 {
30787         pinfo->dcerpc_procedure_name="AbortPrinter";
30788         offset = spoolss_dissect_element_AbortPrinter_handle(tvb, offset, pinfo, tree, drep);
30789         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30790         return offset;
30791 }
30792
30793 static int
30794 spoolss_dissect_element_ReadPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30795 {
30796         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ReadPrinter_handle);
30797
30798         return offset;
30799 }
30800
30801 static int
30802 spoolss_dissect_element_ReadPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30803 {
30804         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_handle, 0);
30805
30806         return offset;
30807 }
30808
30809 static int
30810 spoolss_dissect_element_ReadPrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30811 {
30812         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_ReadPrinter_data);
30813
30814         return offset;
30815 }
30816
30817 static int
30818 spoolss_dissect_element_ReadPrinter_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30819 {
30820         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_data__);
30821
30822         return offset;
30823 }
30824
30825 static int
30826 spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30827 {
30828         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_data, 0);
30829
30830         return offset;
30831 }
30832
30833 static int
30834 spoolss_dissect_element_ReadPrinter_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30835 {
30836         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_data_size, 0);
30837
30838         return offset;
30839 }
30840
30841 static int
30842 spoolss_dissect_element_ReadPrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30843 {
30844         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter__data_size_, NDR_POINTER_REF, "Pointer to  Data Size (uint32)",hf_spoolss_spoolss_ReadPrinter__data_size);
30845
30846         return offset;
30847 }
30848
30849 static int
30850 spoolss_dissect_element_ReadPrinter__data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30851 {
30852         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter__data_size, 0);
30853
30854         return offset;
30855 }
30856
30857 /* IDL: WERROR spoolss_ReadPrinter( */
30858 /* IDL: [in] [ref] policy_handle *handle, */
30859 /* IDL: [out] [ref] [size_is(data_size)] uint8 *data, */
30860 /* IDL: [in] uint32 data_size, */
30861 /* IDL: [out] [ref] uint32 *_data_size */
30862 /* IDL: ); */
30863
30864 static int
30865 spoolss_dissect_ReadPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30866 {
30867         guint32 status;
30868
30869         pinfo->dcerpc_procedure_name="ReadPrinter";
30870         offset = spoolss_dissect_element_ReadPrinter_data(tvb, offset, pinfo, tree, drep);
30871         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30872
30873         offset = spoolss_dissect_element_ReadPrinter__data_size(tvb, offset, pinfo, tree, drep);
30874         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30875
30876         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30877
30878         if (status != 0)
30879                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30880
30881         return offset;
30882 }
30883
30884 static int
30885 spoolss_dissect_ReadPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30886 {
30887         pinfo->dcerpc_procedure_name="ReadPrinter";
30888         offset = spoolss_dissect_element_ReadPrinter_handle(tvb, offset, pinfo, tree, drep);
30889         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30890         offset = spoolss_dissect_element_ReadPrinter_data_size(tvb, offset, pinfo, tree, drep);
30891         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30892         return offset;
30893 }
30894
30895 static int
30896 spoolss_dissect_element_EndDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30897 {
30898         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EndDocPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EndDocPrinter_handle);
30899
30900         return offset;
30901 }
30902
30903 static int
30904 spoolss_dissect_element_EndDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30905 {
30906         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EndDocPrinter_handle, 0);
30907
30908         return offset;
30909 }
30910
30911 /* IDL: WERROR spoolss_EndDocPrinter( */
30912 /* IDL: [in] [ref] policy_handle *handle */
30913 /* IDL: ); */
30914
30915 static int
30916 spoolss_dissect_EndDocPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30917 {
30918         guint32 status;
30919
30920         pinfo->dcerpc_procedure_name="EndDocPrinter";
30921         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
30922
30923         if (status != 0)
30924                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
30925
30926         return offset;
30927 }
30928
30929 static int
30930 spoolss_dissect_EndDocPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30931 {
30932         pinfo->dcerpc_procedure_name="EndDocPrinter";
30933         offset = spoolss_dissect_element_EndDocPrinter_handle(tvb, offset, pinfo, tree, drep);
30934         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
30935         return offset;
30936 }
30937
30938 static int
30939 spoolss_dissect_element_AddJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30940 {
30941         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddJob_handle);
30942
30943         return offset;
30944 }
30945
30946 static int
30947 spoolss_dissect_element_AddJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30948 {
30949         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_handle, 0);
30950
30951         return offset;
30952 }
30953
30954 static int
30955 spoolss_dissect_element_AddJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30956 {
30957         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_level, 0);
30958
30959         return offset;
30960 }
30961
30962 static int
30963 spoolss_dissect_element_AddJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30964 {
30965         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_spoolss_spoolss_AddJob_buffer);
30966
30967         return offset;
30968 }
30969
30970 static int
30971 spoolss_dissect_element_AddJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30972 {
30973         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_buffer__);
30974
30975         return offset;
30976 }
30977
30978 static int
30979 spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30980 {
30981         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_buffer, 0);
30982
30983         return offset;
30984 }
30985
30986 static int
30987 spoolss_dissect_element_AddJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30988 {
30989         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_offered, 0);
30990
30991         return offset;
30992 }
30993
30994 static int
30995 spoolss_dissect_element_AddJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
30996 {
30997         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_AddJob_needed);
30998
30999         return offset;
31000 }
31001
31002 static int
31003 spoolss_dissect_element_AddJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31004 {
31005         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_needed, 0);
31006
31007         return offset;
31008 }
31009
31010 /* IDL: WERROR spoolss_AddJob( */
31011 /* IDL: [in] [ref] policy_handle *handle, */
31012 /* IDL: [in] uint32 level, */
31013 /* IDL: [unique(1)] [out] [in] [size_is(offered)] uint8 *buffer, */
31014 /* IDL: [in] uint32 offered, */
31015 /* IDL: [out] [ref] uint32 *needed */
31016 /* IDL: ); */
31017
31018 static int
31019 spoolss_dissect_AddJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31020 {
31021         guint32 status;
31022
31023         pinfo->dcerpc_procedure_name="AddJob";
31024         offset = spoolss_dissect_element_AddJob_buffer(tvb, offset, pinfo, tree, drep);
31025         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31026
31027         offset = spoolss_dissect_element_AddJob_needed(tvb, offset, pinfo, tree, drep);
31028         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31029
31030         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31031
31032         if (status != 0)
31033                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31034
31035         return offset;
31036 }
31037
31038 static int
31039 spoolss_dissect_AddJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31040 {
31041         pinfo->dcerpc_procedure_name="AddJob";
31042         offset = spoolss_dissect_element_AddJob_handle(tvb, offset, pinfo, tree, drep);
31043         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31044         offset = spoolss_dissect_element_AddJob_level(tvb, offset, pinfo, tree, drep);
31045         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31046         offset = spoolss_dissect_element_AddJob_buffer(tvb, offset, pinfo, tree, drep);
31047         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31048         offset = spoolss_dissect_element_AddJob_offered(tvb, offset, pinfo, tree, drep);
31049         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31050         return offset;
31051 }
31052
31053 static int
31054 spoolss_dissect_element_ScheduleJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31055 {
31056         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ScheduleJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ScheduleJob_handle);
31057
31058         return offset;
31059 }
31060
31061 static int
31062 spoolss_dissect_element_ScheduleJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31063 {
31064         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ScheduleJob_handle, 0);
31065
31066         return offset;
31067 }
31068
31069 static int
31070 spoolss_dissect_element_ScheduleJob_jobid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31071 {
31072         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ScheduleJob_jobid, 0);
31073
31074         return offset;
31075 }
31076
31077 /* IDL: WERROR spoolss_ScheduleJob( */
31078 /* IDL: [in] [ref] policy_handle *handle, */
31079 /* IDL: [in] uint32 jobid */
31080 /* IDL: ); */
31081
31082 static int
31083 spoolss_dissect_ScheduleJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31084 {
31085         guint32 status;
31086
31087         pinfo->dcerpc_procedure_name="ScheduleJob";
31088         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31089
31090         if (status != 0)
31091                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31092
31093         return offset;
31094 }
31095
31096 static int
31097 spoolss_dissect_ScheduleJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31098 {
31099         pinfo->dcerpc_procedure_name="ScheduleJob";
31100         offset = spoolss_dissect_element_ScheduleJob_handle(tvb, offset, pinfo, tree, drep);
31101         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31102         offset = spoolss_dissect_element_ScheduleJob_jobid(tvb, offset, pinfo, tree, drep);
31103         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31104         return offset;
31105 }
31106
31107 static int
31108 spoolss_dissect_element_GetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31109 {
31110         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterData_handle);
31111
31112         return offset;
31113 }
31114
31115 static int
31116 spoolss_dissect_element_GetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31117 {
31118         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_handle, 0);
31119
31120         return offset;
31121 }
31122
31123 static int
31124 spoolss_dissect_element_GetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31125 {
31126         char *data;
31127
31128         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterData_value_name, FALSE, &data);
31129         proto_item_append_text(tree, ": %s", data);
31130
31131         return offset;
31132 }
31133
31134 static int
31135 spoolss_dissect_element_GetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31136 {
31137         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_type_, NDR_POINTER_REF, "Pointer to Type (winreg_Type)",hf_spoolss_spoolss_GetPrinterData_type);
31138
31139         return offset;
31140 }
31141
31142 static int
31143 spoolss_dissect_element_GetPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31144 {
31145         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_type, 0);
31146
31147         return offset;
31148 }
31149
31150 static int
31151 spoolss_dissect_element_GetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31152 {
31153         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_GetPrinterData_data);
31154
31155         return offset;
31156 }
31157
31158 static int
31159 spoolss_dissect_element_GetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31160 {
31161         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_data__);
31162
31163         return offset;
31164 }
31165
31166 static int
31167 spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31168 {
31169         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_data, 0);
31170
31171         return offset;
31172 }
31173
31174 static int
31175 spoolss_dissect_element_GetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31176 {
31177         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_offered, 0);
31178
31179         return offset;
31180 }
31181
31182 static int
31183 spoolss_dissect_element_GetPrinterData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31184 {
31185         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterData_needed);
31186
31187         return offset;
31188 }
31189
31190 static int
31191 spoolss_dissect_element_GetPrinterData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31192 {
31193         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_needed, 0);
31194
31195         return offset;
31196 }
31197
31198 /* IDL: WERROR spoolss_GetPrinterData( */
31199 /* IDL: [in] [ref] policy_handle *handle, */
31200 /* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
31201 /* IDL: [out] [ref] winreg_Type *type, */
31202 /* IDL: [out] [ref] [size_is(offered)] uint8 *data, */
31203 /* IDL: [in] uint32 offered, */
31204 /* IDL: [out] [ref] uint32 *needed */
31205 /* IDL: ); */
31206
31207 static int
31208 spoolss_dissect_GetPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31209 {
31210         guint32 status;
31211
31212         pinfo->dcerpc_procedure_name="GetPrinterData";
31213         offset = spoolss_dissect_element_GetPrinterData_type(tvb, offset, pinfo, tree, drep);
31214         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31215
31216         offset = spoolss_dissect_element_GetPrinterData_data(tvb, offset, pinfo, tree, drep);
31217         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31218
31219         offset = spoolss_dissect_element_GetPrinterData_needed(tvb, offset, pinfo, tree, drep);
31220         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31221
31222         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31223
31224         if (status != 0)
31225                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31226
31227         return offset;
31228 }
31229
31230 static int
31231 spoolss_dissect_GetPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31232 {
31233         pinfo->dcerpc_procedure_name="GetPrinterData";
31234         offset = spoolss_dissect_element_GetPrinterData_handle(tvb, offset, pinfo, tree, drep);
31235         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31236         offset = spoolss_dissect_element_GetPrinterData_value_name(tvb, offset, pinfo, tree, drep);
31237         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31238         offset = spoolss_dissect_element_GetPrinterData_offered(tvb, offset, pinfo, tree, drep);
31239         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31240         return offset;
31241 }
31242
31243 static int
31244 spoolss_dissect_element_SetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31245 {
31246         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetPrinterData_handle);
31247
31248         return offset;
31249 }
31250
31251 static int
31252 spoolss_dissect_element_SetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31253 {
31254         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_handle, 0);
31255
31256         return offset;
31257 }
31258
31259 static int
31260 spoolss_dissect_element_SetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31261 {
31262         char *data;
31263
31264         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterData_value_name, FALSE, &data);
31265         proto_item_append_text(tree, ": %s", data);
31266
31267         return offset;
31268 }
31269
31270 static int
31271 spoolss_dissect_element_SetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31272 {
31273         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_type, 0);
31274
31275         return offset;
31276 }
31277
31278 static int
31279 spoolss_dissect_element_SetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31280 {
31281         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_SetPrinterData_data);
31282
31283         return offset;
31284 }
31285
31286 static int
31287 spoolss_dissect_element_SetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31288 {
31289         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_data__);
31290
31291         return offset;
31292 }
31293
31294 static int
31295 spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31296 {
31297         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_data, 0);
31298
31299         return offset;
31300 }
31301
31302 static int
31303 spoolss_dissect_element_SetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31304 {
31305         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_offered, 0);
31306
31307         return offset;
31308 }
31309
31310 /* IDL: WERROR spoolss_SetPrinterData( */
31311 /* IDL: [in] [ref] policy_handle *handle, */
31312 /* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
31313 /* IDL: [in] winreg_Type type, */
31314 /* IDL: [ref] [in] [size_is(offered)] uint8 *data, */
31315 /* IDL: [in] uint32 offered */
31316 /* IDL: ); */
31317
31318 static int
31319 spoolss_dissect_SetPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31320 {
31321         guint32 status;
31322
31323         pinfo->dcerpc_procedure_name="SetPrinterData";
31324         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31325
31326         if (status != 0)
31327                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31328
31329         return offset;
31330 }
31331
31332 static int
31333 spoolss_dissect_SetPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31334 {
31335         pinfo->dcerpc_procedure_name="SetPrinterData";
31336         offset = spoolss_dissect_element_SetPrinterData_handle(tvb, offset, pinfo, tree, drep);
31337         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31338         offset = spoolss_dissect_element_SetPrinterData_value_name(tvb, offset, pinfo, tree, drep);
31339         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31340         offset = spoolss_dissect_element_SetPrinterData_type(tvb, offset, pinfo, tree, drep);
31341         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31342         offset = spoolss_dissect_element_SetPrinterData_data(tvb, offset, pinfo, tree, drep);
31343         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31344         offset = spoolss_dissect_element_SetPrinterData_offered(tvb, offset, pinfo, tree, drep);
31345         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31346         return offset;
31347 }
31348
31349 /* IDL: WERROR spoolss_WaitForPrinterChange( */
31350 /* IDL:  */
31351 /* IDL: ); */
31352
31353 static int
31354 spoolss_dissect_WaitForPrinterChange_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31355 {
31356         guint32 status;
31357
31358         pinfo->dcerpc_procedure_name="WaitForPrinterChange";
31359         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31360
31361         if (status != 0)
31362                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31363
31364         return offset;
31365 }
31366
31367 static int
31368 spoolss_dissect_WaitForPrinterChange_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31369 {
31370         pinfo->dcerpc_procedure_name="WaitForPrinterChange";
31371         return offset;
31372 }
31373
31374 static int
31375 spoolss_dissect_element_ClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31376 {
31377         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ClosePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ClosePrinter_handle);
31378
31379         return offset;
31380 }
31381
31382 static int
31383 spoolss_dissect_element_ClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31384 {
31385         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ClosePrinter_handle, 0);
31386
31387         return offset;
31388 }
31389
31390 /* IDL: WERROR spoolss_ClosePrinter( */
31391 /* IDL: [out] [in] [ref] policy_handle *handle */
31392 /* IDL: ); */
31393
31394 static int
31395 spoolss_dissect_ClosePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31396 {
31397         guint32 status;
31398
31399         pinfo->dcerpc_procedure_name="ClosePrinter";
31400         offset = spoolss_dissect_element_ClosePrinter_handle(tvb, offset, pinfo, tree, drep);
31401         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31402
31403         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31404
31405         if (status != 0)
31406                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31407
31408         return offset;
31409 }
31410
31411 static int
31412 spoolss_dissect_ClosePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31413 {
31414         pinfo->dcerpc_procedure_name="ClosePrinter";
31415         offset = spoolss_dissect_element_ClosePrinter_handle(tvb, offset, pinfo, tree, drep);
31416         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31417         return offset;
31418 }
31419
31420 static int
31421 spoolss_dissect_element_AddForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31422 {
31423         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddForm_handle);
31424
31425         return offset;
31426 }
31427
31428 static int
31429 spoolss_dissect_element_AddForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31430 {
31431         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddForm_handle, 0);
31432
31433         return offset;
31434 }
31435
31436 static int
31437 spoolss_dissect_element_AddForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31438 {
31439         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddForm_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddFormInfoCtr)",hf_spoolss_spoolss_AddForm_info_ctr);
31440
31441         return offset;
31442 }
31443
31444 static int
31445 spoolss_dissect_element_AddForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31446 {
31447         offset = spoolss_dissect_struct_AddFormInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddForm_info_ctr,0);
31448
31449         return offset;
31450 }
31451
31452 /* IDL: WERROR spoolss_AddForm( */
31453 /* IDL: [in] [ref] policy_handle *handle, */
31454 /* IDL: [in] [ref] spoolss_AddFormInfoCtr *info_ctr */
31455 /* IDL: ); */
31456
31457 static int
31458 spoolss_dissect_AddForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31459 {
31460         guint32 status;
31461
31462         pinfo->dcerpc_procedure_name="AddForm";
31463         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31464
31465         if (status != 0)
31466                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31467
31468         return offset;
31469 }
31470
31471 static int
31472 spoolss_dissect_AddForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31473 {
31474         pinfo->dcerpc_procedure_name="AddForm";
31475         offset = spoolss_dissect_element_AddForm_handle(tvb, offset, pinfo, tree, drep);
31476         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31477         offset = spoolss_dissect_element_AddForm_info_ctr(tvb, offset, pinfo, tree, drep);
31478         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31479         return offset;
31480 }
31481
31482 static int
31483 spoolss_dissect_element_DeleteForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31484 {
31485         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeleteForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeleteForm_handle);
31486
31487         return offset;
31488 }
31489
31490 static int
31491 spoolss_dissect_element_DeleteForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31492 {
31493         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeleteForm_handle, 0);
31494
31495         return offset;
31496 }
31497
31498 static int
31499 spoolss_dissect_element_DeleteForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31500 {
31501         char *data;
31502
31503         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeleteForm_form_name, FALSE, &data);
31504         proto_item_append_text(tree, ": %s", data);
31505
31506         return offset;
31507 }
31508
31509 /* IDL: WERROR spoolss_DeleteForm( */
31510 /* IDL: [in] [ref] policy_handle *handle, */
31511 /* IDL: [in] [charset(UTF16)] uint16 form_name[*] */
31512 /* IDL: ); */
31513
31514 static int
31515 spoolss_dissect_DeleteForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31516 {
31517         guint32 status;
31518
31519         pinfo->dcerpc_procedure_name="DeleteForm";
31520         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31521
31522         if (status != 0)
31523                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31524
31525         return offset;
31526 }
31527
31528 static int
31529 spoolss_dissect_DeleteForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31530 {
31531         pinfo->dcerpc_procedure_name="DeleteForm";
31532         offset = spoolss_dissect_element_DeleteForm_handle(tvb, offset, pinfo, tree, drep);
31533         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31534         offset = spoolss_dissect_element_DeleteForm_form_name(tvb, offset, pinfo, tree, drep);
31535         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31536         return offset;
31537 }
31538
31539 static int
31540 spoolss_dissect_element_GetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31541 {
31542         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetForm_handle);
31543
31544         return offset;
31545 }
31546
31547 static int
31548 spoolss_dissect_element_GetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31549 {
31550         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_handle, 0);
31551
31552         return offset;
31553 }
31554
31555 static int
31556 spoolss_dissect_element_GetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31557 {
31558         char *data;
31559
31560         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetForm_form_name, FALSE, &data);
31561         proto_item_append_text(tree, ": %s", data);
31562
31563         return offset;
31564 }
31565
31566 static int
31567 spoolss_dissect_element_GetForm_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31568 {
31569         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_level, 0);
31570
31571         return offset;
31572 }
31573
31574 static int
31575 spoolss_dissect_element_GetForm_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31576 {
31577         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetForm_buffer);
31578
31579         return offset;
31580 }
31581
31582 static int
31583 spoolss_dissect_element_GetForm_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31584 {
31585         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_buffer, 0);
31586
31587         return offset;
31588 }
31589
31590 static int
31591 spoolss_dissect_element_GetForm_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31592 {
31593         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_offered, 0);
31594
31595         return offset;
31596 }
31597
31598 static int
31599 spoolss_dissect_element_GetForm_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31600 {
31601         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_FormInfo)",hf_spoolss_spoolss_GetForm_info);
31602
31603         return offset;
31604 }
31605
31606 static int
31607 spoolss_dissect_element_GetForm_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31608 {
31609         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
31610         guint3264 size;
31611         int conformant = di->conformant_run;
31612         tvbuff_t *subtvb;
31613
31614         if (!conformant) {
31615                 guint32 saved_flags = di->call_data->flags;
31616                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_info_, &size);
31617                 di->call_data->flags &= ~DCERPC_IS_NDR64;
31618                 subtvb = tvb_new_subset(tvb, offset, size, -1);
31619                 spoolss_dissect_element_GetForm_info__(subtvb, 0, pinfo, tree, drep);
31620                 offset += size;
31621                 di->call_data->flags = saved_flags;
31622         }
31623
31624         return offset;
31625 }
31626
31627 static int
31628 spoolss_dissect_element_GetForm_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31629 {
31630         offset = spoolss_dissect_FormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_info, *0);
31631
31632         return offset;
31633 }
31634
31635 static int
31636 spoolss_dissect_element_GetForm_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31637 {
31638         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetForm_needed);
31639
31640         return offset;
31641 }
31642
31643 static int
31644 spoolss_dissect_element_GetForm_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31645 {
31646         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_needed, 0);
31647
31648         return offset;
31649 }
31650
31651 /* IDL: WERROR spoolss_GetForm( */
31652 /* IDL: [in] [ref] policy_handle *handle, */
31653 /* IDL: [in] [charset(UTF16)] uint16 form_name[*], */
31654 /* IDL: [in] uint32 level, */
31655 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
31656 /* IDL: [in] uint32 offered, */
31657 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_FormInfo *info, */
31658 /* IDL: [out] [ref] uint32 *needed */
31659 /* IDL: ); */
31660
31661 static int
31662 spoolss_dissect_GetForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31663 {
31664         guint32 status;
31665
31666         pinfo->dcerpc_procedure_name="GetForm";
31667         offset = spoolss_dissect_element_GetForm_info(tvb, offset, pinfo, tree, drep);
31668         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31669
31670         offset = spoolss_dissect_element_GetForm_needed(tvb, offset, pinfo, tree, drep);
31671         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31672
31673         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31674
31675         if (status != 0)
31676                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31677
31678         return offset;
31679 }
31680
31681 static int
31682 spoolss_dissect_GetForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31683 {
31684         pinfo->dcerpc_procedure_name="GetForm";
31685         offset = spoolss_dissect_element_GetForm_handle(tvb, offset, pinfo, tree, drep);
31686         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31687         offset = spoolss_dissect_element_GetForm_form_name(tvb, offset, pinfo, tree, drep);
31688         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31689         offset = spoolss_dissect_element_GetForm_level(tvb, offset, pinfo, tree, drep);
31690         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31691         offset = spoolss_dissect_element_GetForm_buffer(tvb, offset, pinfo, tree, drep);
31692         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31693         offset = spoolss_dissect_element_GetForm_offered(tvb, offset, pinfo, tree, drep);
31694         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31695         return offset;
31696 }
31697
31698 static int
31699 spoolss_dissect_element_SetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31700 {
31701         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetForm_handle);
31702
31703         return offset;
31704 }
31705
31706 static int
31707 spoolss_dissect_element_SetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31708 {
31709         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetForm_handle, 0);
31710
31711         return offset;
31712 }
31713
31714 static int
31715 spoolss_dissect_element_SetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31716 {
31717         char *data;
31718
31719         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetForm_form_name, FALSE, &data);
31720         proto_item_append_text(tree, ": %s", data);
31721
31722         return offset;
31723 }
31724
31725 static int
31726 spoolss_dissect_element_SetForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31727 {
31728         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetForm_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddFormInfoCtr)",hf_spoolss_spoolss_SetForm_info_ctr);
31729
31730         return offset;
31731 }
31732
31733 static int
31734 spoolss_dissect_element_SetForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31735 {
31736         offset = spoolss_dissect_struct_AddFormInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetForm_info_ctr,0);
31737
31738         return offset;
31739 }
31740
31741 /* IDL: WERROR spoolss_SetForm( */
31742 /* IDL: [in] [ref] policy_handle *handle, */
31743 /* IDL: [in] [charset(UTF16)] uint16 form_name[*], */
31744 /* IDL: [in] [ref] spoolss_AddFormInfoCtr *info_ctr */
31745 /* IDL: ); */
31746
31747 static int
31748 spoolss_dissect_SetForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31749 {
31750         guint32 status;
31751
31752         pinfo->dcerpc_procedure_name="SetForm";
31753         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31754
31755         if (status != 0)
31756                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31757
31758         return offset;
31759 }
31760
31761 static int
31762 spoolss_dissect_SetForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31763 {
31764         pinfo->dcerpc_procedure_name="SetForm";
31765         offset = spoolss_dissect_element_SetForm_handle(tvb, offset, pinfo, tree, drep);
31766         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31767         offset = spoolss_dissect_element_SetForm_form_name(tvb, offset, pinfo, tree, drep);
31768         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31769         offset = spoolss_dissect_element_SetForm_info_ctr(tvb, offset, pinfo, tree, drep);
31770         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31771         return offset;
31772 }
31773
31774 static int
31775 spoolss_dissect_element__spoolss_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31776 {
31777         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss__spoolss_EnumForms_handle);
31778
31779         return offset;
31780 }
31781
31782 static int
31783 spoolss_dissect_element__spoolss_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31784 {
31785         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_handle, 0);
31786
31787         return offset;
31788 }
31789
31790 static int
31791 spoolss_dissect_element__spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31792 {
31793         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_level, 0);
31794
31795         return offset;
31796 }
31797
31798 static int
31799 spoolss_dissect_element__spoolss_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31800 {
31801         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumForms_buffer);
31802
31803         return offset;
31804 }
31805
31806 static int
31807 spoolss_dissect_element__spoolss_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31808 {
31809         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_buffer, 0);
31810
31811         return offset;
31812 }
31813
31814 static int
31815 spoolss_dissect_element__spoolss_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31816 {
31817         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_offered, 0);
31818
31819         return offset;
31820 }
31821
31822 static int
31823 spoolss_dissect_element__spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31824 {
31825         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumForms_info);
31826
31827         return offset;
31828 }
31829
31830 static int
31831 spoolss_dissect_element__spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31832 {
31833         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_info, 0);
31834
31835         return offset;
31836 }
31837
31838 static int
31839 spoolss_dissect_element__spoolss_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31840 {
31841         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumForms_needed);
31842
31843         return offset;
31844 }
31845
31846 static int
31847 spoolss_dissect_element__spoolss_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31848 {
31849         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_needed, 0);
31850
31851         return offset;
31852 }
31853
31854 static int
31855 spoolss_dissect_element__spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31856 {
31857         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumForms_count);
31858
31859         return offset;
31860 }
31861
31862 static int
31863 spoolss_dissect_element__spoolss_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31864 {
31865         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_count, 0);
31866
31867         return offset;
31868 }
31869
31870 /* IDL: WERROR _spoolss_EnumForms( */
31871 /* IDL: [in] [ref] policy_handle *handle, */
31872 /* IDL: [in] uint32 level, */
31873 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
31874 /* IDL: [in] uint32 offered, */
31875 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
31876 /* IDL: [out] [ref] uint32 *needed, */
31877 /* IDL: [out] [ref] uint32 *count */
31878 /* IDL: ); */
31879
31880 static int
31881 spoolss_dissect__spoolss_EnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31882 {
31883         guint32 status;
31884
31885         pinfo->dcerpc_procedure_name="_spoolss_EnumForms";
31886         offset = spoolss_dissect_element__spoolss_EnumForms_info(tvb, offset, pinfo, tree, drep);
31887         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31888
31889         offset = spoolss_dissect_element__spoolss_EnumForms_needed(tvb, offset, pinfo, tree, drep);
31890         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31891
31892         offset = spoolss_dissect_element__spoolss_EnumForms_count(tvb, offset, pinfo, tree, drep);
31893         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31894
31895         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
31896
31897         if (status != 0)
31898                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
31899
31900         return offset;
31901 }
31902
31903 static int
31904 spoolss_dissect__spoolss_EnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31905 {
31906         pinfo->dcerpc_procedure_name="_spoolss_EnumForms";
31907         offset = spoolss_dissect_element__spoolss_EnumForms_handle(tvb, offset, pinfo, tree, drep);
31908         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31909         offset = spoolss_dissect_element__spoolss_EnumForms_level(tvb, offset, pinfo, tree, drep);
31910         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31911         offset = spoolss_dissect_element__spoolss_EnumForms_buffer(tvb, offset, pinfo, tree, drep);
31912         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31913         offset = spoolss_dissect_element__spoolss_EnumForms_offered(tvb, offset, pinfo, tree, drep);
31914         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31915         return offset;
31916 }
31917
31918 static int
31919 spoolss_dissect_element___spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31920 {
31921         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumForms_level, 0);
31922
31923         return offset;
31924 }
31925
31926 static int
31927 spoolss_dissect_element___spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31928 {
31929         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumForms_count, 0);
31930
31931         return offset;
31932 }
31933
31934 static int
31935 spoolss_dissect_element___spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31936 {
31937
31938         return offset;
31939 }
31940
31941 static int
31942 spoolss_dissect_element___spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31943 {
31944         offset = spoolss_dissect_FormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumForms_info, *0);
31945
31946         return offset;
31947 }
31948
31949 /* IDL: void __spoolss_EnumForms( */
31950 /* IDL: [in] uint32 level, */
31951 /* IDL: [in] uint32 count, */
31952 /* IDL: [out] [switch_is(level)] spoolss_FormInfo info[count] */
31953 /* IDL: ); */
31954
31955 static int
31956 spoolss_dissect___spoolss_EnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31957 {
31958         pinfo->dcerpc_procedure_name="__spoolss_EnumForms";
31959         offset = spoolss_dissect_element___spoolss_EnumForms_info(tvb, offset, pinfo, tree, drep);
31960         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31961
31962         return offset;
31963 }
31964
31965 static int
31966 spoolss_dissect___spoolss_EnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31967 {
31968         pinfo->dcerpc_procedure_name="__spoolss_EnumForms";
31969         offset = spoolss_dissect_element___spoolss_EnumForms_level(tvb, offset, pinfo, tree, drep);
31970         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31971         offset = spoolss_dissect_element___spoolss_EnumForms_count(tvb, offset, pinfo, tree, drep);
31972         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
31973         return offset;
31974 }
31975
31976 static int
31977 spoolss_dissect_element_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31978 {
31979         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumForms_handle);
31980
31981         return offset;
31982 }
31983
31984 static int
31985 spoolss_dissect_element_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31986 {
31987         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_handle, 0);
31988
31989         return offset;
31990 }
31991
31992 static int
31993 spoolss_dissect_element_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
31994 {
31995         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_level, 0);
31996
31997         return offset;
31998 }
31999
32000 static int
32001 spoolss_dissect_element_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32002 {
32003         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumForms_buffer);
32004
32005         return offset;
32006 }
32007
32008 static int
32009 spoolss_dissect_element_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32010 {
32011         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_buffer, 0);
32012
32013         return offset;
32014 }
32015
32016 static int
32017 spoolss_dissect_element_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32018 {
32019         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_offered, 0);
32020
32021         return offset;
32022 }
32023
32024 static int
32025 spoolss_dissect_element_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32026 {
32027         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumForms_count);
32028
32029         return offset;
32030 }
32031
32032 static int
32033 spoolss_dissect_element_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32034 {
32035         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_count, 0);
32036
32037         return offset;
32038 }
32039
32040 static int
32041 spoolss_dissect_element_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32042 {
32043         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_FormInfo)",hf_spoolss_spoolss_EnumForms_info);
32044
32045         return offset;
32046 }
32047
32048 static int
32049 spoolss_dissect_element_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32050 {
32051         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_FormInfo)",hf_spoolss_spoolss_EnumForms_info);
32052
32053         return offset;
32054 }
32055
32056 static int
32057 spoolss_dissect_element_EnumForms_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32058 {
32059         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_info___);
32060
32061         return offset;
32062 }
32063
32064 static int
32065 spoolss_dissect_element_EnumForms_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32066 {
32067         offset = spoolss_dissect_FormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_info, *0);
32068
32069         return offset;
32070 }
32071
32072 static int
32073 spoolss_dissect_element_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32074 {
32075         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumForms_needed);
32076
32077         return offset;
32078 }
32079
32080 static int
32081 spoolss_dissect_element_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32082 {
32083         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_needed, 0);
32084
32085         return offset;
32086 }
32087
32088 /* IDL: WERROR spoolss_EnumForms( */
32089 /* IDL: [in] [ref] policy_handle *handle, */
32090 /* IDL: [in] uint32 level, */
32091 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
32092 /* IDL: [in] uint32 offered, */
32093 /* IDL: [out] [ref] uint32 *count, */
32094 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_FormInfo **info, */
32095 /* IDL: [out] [ref] uint32 *needed */
32096 /* IDL: ); */
32097
32098 static int
32099 spoolss_dissect_EnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32100 {
32101         guint32 status;
32102
32103         pinfo->dcerpc_procedure_name="EnumForms";
32104         offset = spoolss_dissect_element_EnumForms_count(tvb, offset, pinfo, tree, drep);
32105         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32106
32107         offset = spoolss_dissect_element_EnumForms_info(tvb, offset, pinfo, tree, drep);
32108         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32109
32110         offset = spoolss_dissect_element_EnumForms_needed(tvb, offset, pinfo, tree, drep);
32111         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32112
32113         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32114
32115         if (status != 0)
32116                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32117
32118         return offset;
32119 }
32120
32121 static int
32122 spoolss_dissect_EnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32123 {
32124         pinfo->dcerpc_procedure_name="EnumForms";
32125         offset = spoolss_dissect_element_EnumForms_handle(tvb, offset, pinfo, tree, drep);
32126         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32127         offset = spoolss_dissect_element_EnumForms_level(tvb, offset, pinfo, tree, drep);
32128         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32129         offset = spoolss_dissect_element_EnumForms_buffer(tvb, offset, pinfo, tree, drep);
32130         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32131         offset = spoolss_dissect_element_EnumForms_offered(tvb, offset, pinfo, tree, drep);
32132         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32133         return offset;
32134 }
32135
32136 static int
32137 spoolss_dissect_element__spoolss_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32138 {
32139         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumPorts_servername);
32140
32141         return offset;
32142 }
32143
32144 static int
32145 spoolss_dissect_element__spoolss_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32146 {
32147         char *data;
32148
32149         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPorts_servername, FALSE, &data);
32150         proto_item_append_text(tree, ": %s", data);
32151
32152         return offset;
32153 }
32154
32155 static int
32156 spoolss_dissect_element__spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32157 {
32158         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_level, 0);
32159
32160         return offset;
32161 }
32162
32163 static int
32164 spoolss_dissect_element__spoolss_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32165 {
32166         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPorts_buffer);
32167
32168         return offset;
32169 }
32170
32171 static int
32172 spoolss_dissect_element__spoolss_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32173 {
32174         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_buffer, 0);
32175
32176         return offset;
32177 }
32178
32179 static int
32180 spoolss_dissect_element__spoolss_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32181 {
32182         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_offered, 0);
32183
32184         return offset;
32185 }
32186
32187 static int
32188 spoolss_dissect_element__spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32189 {
32190         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPorts_info);
32191
32192         return offset;
32193 }
32194
32195 static int
32196 spoolss_dissect_element__spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32197 {
32198         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_info, 0);
32199
32200         return offset;
32201 }
32202
32203 static int
32204 spoolss_dissect_element__spoolss_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32205 {
32206         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPorts_needed);
32207
32208         return offset;
32209 }
32210
32211 static int
32212 spoolss_dissect_element__spoolss_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32213 {
32214         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_needed, 0);
32215
32216         return offset;
32217 }
32218
32219 static int
32220 spoolss_dissect_element__spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32221 {
32222         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPorts_count);
32223
32224         return offset;
32225 }
32226
32227 static int
32228 spoolss_dissect_element__spoolss_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32229 {
32230         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_count, 0);
32231
32232         return offset;
32233 }
32234
32235 /* IDL: WERROR _spoolss_EnumPorts( */
32236 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
32237 /* IDL: [in] uint32 level, */
32238 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
32239 /* IDL: [in] uint32 offered, */
32240 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
32241 /* IDL: [out] [ref] uint32 *needed, */
32242 /* IDL: [out] [ref] uint32 *count */
32243 /* IDL: ); */
32244
32245 static int
32246 spoolss_dissect__spoolss_EnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32247 {
32248         guint32 status;
32249
32250         pinfo->dcerpc_procedure_name="_spoolss_EnumPorts";
32251         offset = spoolss_dissect_element__spoolss_EnumPorts_info(tvb, offset, pinfo, tree, drep);
32252         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32253
32254         offset = spoolss_dissect_element__spoolss_EnumPorts_needed(tvb, offset, pinfo, tree, drep);
32255         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32256
32257         offset = spoolss_dissect_element__spoolss_EnumPorts_count(tvb, offset, pinfo, tree, drep);
32258         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32259
32260         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32261
32262         if (status != 0)
32263                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32264
32265         return offset;
32266 }
32267
32268 static int
32269 spoolss_dissect__spoolss_EnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32270 {
32271         pinfo->dcerpc_procedure_name="_spoolss_EnumPorts";
32272         offset = spoolss_dissect_element__spoolss_EnumPorts_servername(tvb, offset, pinfo, tree, drep);
32273         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32274         offset = spoolss_dissect_element__spoolss_EnumPorts_level(tvb, offset, pinfo, tree, drep);
32275         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32276         offset = spoolss_dissect_element__spoolss_EnumPorts_buffer(tvb, offset, pinfo, tree, drep);
32277         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32278         offset = spoolss_dissect_element__spoolss_EnumPorts_offered(tvb, offset, pinfo, tree, drep);
32279         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32280         return offset;
32281 }
32282
32283 static int
32284 spoolss_dissect_element___spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32285 {
32286         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPorts_level, 0);
32287
32288         return offset;
32289 }
32290
32291 static int
32292 spoolss_dissect_element___spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32293 {
32294         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPorts_count, 0);
32295
32296         return offset;
32297 }
32298
32299 static int
32300 spoolss_dissect_element___spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32301 {
32302
32303         return offset;
32304 }
32305
32306 static int
32307 spoolss_dissect_element___spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32308 {
32309         offset = spoolss_dissect_PortInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPorts_info, *0);
32310
32311         return offset;
32312 }
32313
32314 /* IDL: void __spoolss_EnumPorts( */
32315 /* IDL: [in] uint32 level, */
32316 /* IDL: [in] uint32 count, */
32317 /* IDL: [out] [switch_is(level)] spoolss_PortInfo info[count] */
32318 /* IDL: ); */
32319
32320 static int
32321 spoolss_dissect___spoolss_EnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32322 {
32323         pinfo->dcerpc_procedure_name="__spoolss_EnumPorts";
32324         offset = spoolss_dissect_element___spoolss_EnumPorts_info(tvb, offset, pinfo, tree, drep);
32325         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32326
32327         return offset;
32328 }
32329
32330 static int
32331 spoolss_dissect___spoolss_EnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32332 {
32333         pinfo->dcerpc_procedure_name="__spoolss_EnumPorts";
32334         offset = spoolss_dissect_element___spoolss_EnumPorts_level(tvb, offset, pinfo, tree, drep);
32335         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32336         offset = spoolss_dissect_element___spoolss_EnumPorts_count(tvb, offset, pinfo, tree, drep);
32337         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32338         return offset;
32339 }
32340
32341 static int
32342 spoolss_dissect_element_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32343 {
32344         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumPorts_servername);
32345
32346         return offset;
32347 }
32348
32349 static int
32350 spoolss_dissect_element_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32351 {
32352         char *data;
32353
32354         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPorts_servername, FALSE, &data);
32355         proto_item_append_text(tree, ": %s", data);
32356
32357         return offset;
32358 }
32359
32360 static int
32361 spoolss_dissect_element_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32362 {
32363         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_level, 0);
32364
32365         return offset;
32366 }
32367
32368 static int
32369 spoolss_dissect_element_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32370 {
32371         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPorts_buffer);
32372
32373         return offset;
32374 }
32375
32376 static int
32377 spoolss_dissect_element_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32378 {
32379         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_buffer, 0);
32380
32381         return offset;
32382 }
32383
32384 static int
32385 spoolss_dissect_element_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32386 {
32387         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_offered, 0);
32388
32389         return offset;
32390 }
32391
32392 static int
32393 spoolss_dissect_element_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32394 {
32395         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPorts_count);
32396
32397         return offset;
32398 }
32399
32400 static int
32401 spoolss_dissect_element_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32402 {
32403         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_count, 0);
32404
32405         return offset;
32406 }
32407
32408 static int
32409 spoolss_dissect_element_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32410 {
32411         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PortInfo)",hf_spoolss_spoolss_EnumPorts_info);
32412
32413         return offset;
32414 }
32415
32416 static int
32417 spoolss_dissect_element_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32418 {
32419         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PortInfo)",hf_spoolss_spoolss_EnumPorts_info);
32420
32421         return offset;
32422 }
32423
32424 static int
32425 spoolss_dissect_element_EnumPorts_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32426 {
32427         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_info___);
32428
32429         return offset;
32430 }
32431
32432 static int
32433 spoolss_dissect_element_EnumPorts_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32434 {
32435         offset = spoolss_dissect_PortInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_info, *0);
32436
32437         return offset;
32438 }
32439
32440 static int
32441 spoolss_dissect_element_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32442 {
32443         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPorts_needed);
32444
32445         return offset;
32446 }
32447
32448 static int
32449 spoolss_dissect_element_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32450 {
32451         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_needed, 0);
32452
32453         return offset;
32454 }
32455
32456 /* IDL: WERROR spoolss_EnumPorts( */
32457 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
32458 /* IDL: [in] uint32 level, */
32459 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
32460 /* IDL: [in] uint32 offered, */
32461 /* IDL: [out] [ref] uint32 *count, */
32462 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PortInfo **info, */
32463 /* IDL: [out] [ref] uint32 *needed */
32464 /* IDL: ); */
32465
32466 static int
32467 spoolss_dissect_EnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32468 {
32469         guint32 status;
32470
32471         pinfo->dcerpc_procedure_name="EnumPorts";
32472         offset = spoolss_dissect_element_EnumPorts_count(tvb, offset, pinfo, tree, drep);
32473         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32474
32475         offset = spoolss_dissect_element_EnumPorts_info(tvb, offset, pinfo, tree, drep);
32476         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32477
32478         offset = spoolss_dissect_element_EnumPorts_needed(tvb, offset, pinfo, tree, drep);
32479         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32480
32481         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32482
32483         if (status != 0)
32484                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32485
32486         return offset;
32487 }
32488
32489 static int
32490 spoolss_dissect_EnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32491 {
32492         pinfo->dcerpc_procedure_name="EnumPorts";
32493         offset = spoolss_dissect_element_EnumPorts_servername(tvb, offset, pinfo, tree, drep);
32494         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32495         offset = spoolss_dissect_element_EnumPorts_level(tvb, offset, pinfo, tree, drep);
32496         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32497         offset = spoolss_dissect_element_EnumPorts_buffer(tvb, offset, pinfo, tree, drep);
32498         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32499         offset = spoolss_dissect_element_EnumPorts_offered(tvb, offset, pinfo, tree, drep);
32500         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32501         return offset;
32502 }
32503
32504 static int
32505 spoolss_dissect_element__spoolss_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32506 {
32507         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumMonitors_servername);
32508
32509         return offset;
32510 }
32511
32512 static int
32513 spoolss_dissect_element__spoolss_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32514 {
32515         char *data;
32516
32517         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumMonitors_servername, FALSE, &data);
32518         proto_item_append_text(tree, ": %s", data);
32519
32520         return offset;
32521 }
32522
32523 static int
32524 spoolss_dissect_element__spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32525 {
32526         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_level, 0);
32527
32528         return offset;
32529 }
32530
32531 static int
32532 spoolss_dissect_element__spoolss_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32533 {
32534         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumMonitors_buffer);
32535
32536         return offset;
32537 }
32538
32539 static int
32540 spoolss_dissect_element__spoolss_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32541 {
32542         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_buffer, 0);
32543
32544         return offset;
32545 }
32546
32547 static int
32548 spoolss_dissect_element__spoolss_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32549 {
32550         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_offered, 0);
32551
32552         return offset;
32553 }
32554
32555 static int
32556 spoolss_dissect_element__spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32557 {
32558         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumMonitors_info);
32559
32560         return offset;
32561 }
32562
32563 static int
32564 spoolss_dissect_element__spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32565 {
32566         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_info, 0);
32567
32568         return offset;
32569 }
32570
32571 static int
32572 spoolss_dissect_element__spoolss_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32573 {
32574         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumMonitors_needed);
32575
32576         return offset;
32577 }
32578
32579 static int
32580 spoolss_dissect_element__spoolss_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32581 {
32582         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_needed, 0);
32583
32584         return offset;
32585 }
32586
32587 static int
32588 spoolss_dissect_element__spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32589 {
32590         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumMonitors_count);
32591
32592         return offset;
32593 }
32594
32595 static int
32596 spoolss_dissect_element__spoolss_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32597 {
32598         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_count, 0);
32599
32600         return offset;
32601 }
32602
32603 /* IDL: WERROR _spoolss_EnumMonitors( */
32604 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
32605 /* IDL: [in] uint32 level, */
32606 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
32607 /* IDL: [in] uint32 offered, */
32608 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
32609 /* IDL: [out] [ref] uint32 *needed, */
32610 /* IDL: [out] [ref] uint32 *count */
32611 /* IDL: ); */
32612
32613 static int
32614 spoolss_dissect__spoolss_EnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32615 {
32616         guint32 status;
32617
32618         pinfo->dcerpc_procedure_name="_spoolss_EnumMonitors";
32619         offset = spoolss_dissect_element__spoolss_EnumMonitors_info(tvb, offset, pinfo, tree, drep);
32620         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32621
32622         offset = spoolss_dissect_element__spoolss_EnumMonitors_needed(tvb, offset, pinfo, tree, drep);
32623         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32624
32625         offset = spoolss_dissect_element__spoolss_EnumMonitors_count(tvb, offset, pinfo, tree, drep);
32626         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32627
32628         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32629
32630         if (status != 0)
32631                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32632
32633         return offset;
32634 }
32635
32636 static int
32637 spoolss_dissect__spoolss_EnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32638 {
32639         pinfo->dcerpc_procedure_name="_spoolss_EnumMonitors";
32640         offset = spoolss_dissect_element__spoolss_EnumMonitors_servername(tvb, offset, pinfo, tree, drep);
32641         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32642         offset = spoolss_dissect_element__spoolss_EnumMonitors_level(tvb, offset, pinfo, tree, drep);
32643         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32644         offset = spoolss_dissect_element__spoolss_EnumMonitors_buffer(tvb, offset, pinfo, tree, drep);
32645         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32646         offset = spoolss_dissect_element__spoolss_EnumMonitors_offered(tvb, offset, pinfo, tree, drep);
32647         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32648         return offset;
32649 }
32650
32651 static int
32652 spoolss_dissect_element___spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32653 {
32654         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumMonitors_level, 0);
32655
32656         return offset;
32657 }
32658
32659 static int
32660 spoolss_dissect_element___spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32661 {
32662         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumMonitors_count, 0);
32663
32664         return offset;
32665 }
32666
32667 static int
32668 spoolss_dissect_element___spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32669 {
32670
32671         return offset;
32672 }
32673
32674 static int
32675 spoolss_dissect_element___spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32676 {
32677         offset = spoolss_dissect_MonitorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumMonitors_info, *0);
32678
32679         return offset;
32680 }
32681
32682 /* IDL: void __spoolss_EnumMonitors( */
32683 /* IDL: [in] uint32 level, */
32684 /* IDL: [in] uint32 count, */
32685 /* IDL: [out] [switch_is(level)] spoolss_MonitorInfo info[count] */
32686 /* IDL: ); */
32687
32688 static int
32689 spoolss_dissect___spoolss_EnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32690 {
32691         pinfo->dcerpc_procedure_name="__spoolss_EnumMonitors";
32692         offset = spoolss_dissect_element___spoolss_EnumMonitors_info(tvb, offset, pinfo, tree, drep);
32693         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32694
32695         return offset;
32696 }
32697
32698 static int
32699 spoolss_dissect___spoolss_EnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32700 {
32701         pinfo->dcerpc_procedure_name="__spoolss_EnumMonitors";
32702         offset = spoolss_dissect_element___spoolss_EnumMonitors_level(tvb, offset, pinfo, tree, drep);
32703         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32704         offset = spoolss_dissect_element___spoolss_EnumMonitors_count(tvb, offset, pinfo, tree, drep);
32705         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32706         return offset;
32707 }
32708
32709 static int
32710 spoolss_dissect_element_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32711 {
32712         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumMonitors_servername);
32713
32714         return offset;
32715 }
32716
32717 static int
32718 spoolss_dissect_element_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32719 {
32720         char *data;
32721
32722         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumMonitors_servername, FALSE, &data);
32723         proto_item_append_text(tree, ": %s", data);
32724
32725         return offset;
32726 }
32727
32728 static int
32729 spoolss_dissect_element_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32730 {
32731         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_level, 0);
32732
32733         return offset;
32734 }
32735
32736 static int
32737 spoolss_dissect_element_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32738 {
32739         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumMonitors_buffer);
32740
32741         return offset;
32742 }
32743
32744 static int
32745 spoolss_dissect_element_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32746 {
32747         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_buffer, 0);
32748
32749         return offset;
32750 }
32751
32752 static int
32753 spoolss_dissect_element_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32754 {
32755         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_offered, 0);
32756
32757         return offset;
32758 }
32759
32760 static int
32761 spoolss_dissect_element_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32762 {
32763         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumMonitors_count);
32764
32765         return offset;
32766 }
32767
32768 static int
32769 spoolss_dissect_element_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32770 {
32771         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_count, 0);
32772
32773         return offset;
32774 }
32775
32776 static int
32777 spoolss_dissect_element_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32778 {
32779         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_MonitorInfo)",hf_spoolss_spoolss_EnumMonitors_info);
32780
32781         return offset;
32782 }
32783
32784 static int
32785 spoolss_dissect_element_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32786 {
32787         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_MonitorInfo)",hf_spoolss_spoolss_EnumMonitors_info);
32788
32789         return offset;
32790 }
32791
32792 static int
32793 spoolss_dissect_element_EnumMonitors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32794 {
32795         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_info___);
32796
32797         return offset;
32798 }
32799
32800 static int
32801 spoolss_dissect_element_EnumMonitors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32802 {
32803         offset = spoolss_dissect_MonitorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_info, *0);
32804
32805         return offset;
32806 }
32807
32808 static int
32809 spoolss_dissect_element_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32810 {
32811         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumMonitors_needed);
32812
32813         return offset;
32814 }
32815
32816 static int
32817 spoolss_dissect_element_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32818 {
32819         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_needed, 0);
32820
32821         return offset;
32822 }
32823
32824 /* IDL: WERROR spoolss_EnumMonitors( */
32825 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
32826 /* IDL: [in] uint32 level, */
32827 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
32828 /* IDL: [in] uint32 offered, */
32829 /* IDL: [out] [ref] uint32 *count, */
32830 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_MonitorInfo **info, */
32831 /* IDL: [out] [ref] uint32 *needed */
32832 /* IDL: ); */
32833
32834 static int
32835 spoolss_dissect_EnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32836 {
32837         guint32 status;
32838
32839         pinfo->dcerpc_procedure_name="EnumMonitors";
32840         offset = spoolss_dissect_element_EnumMonitors_count(tvb, offset, pinfo, tree, drep);
32841         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32842
32843         offset = spoolss_dissect_element_EnumMonitors_info(tvb, offset, pinfo, tree, drep);
32844         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32845
32846         offset = spoolss_dissect_element_EnumMonitors_needed(tvb, offset, pinfo, tree, drep);
32847         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32848
32849         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32850
32851         if (status != 0)
32852                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32853
32854         return offset;
32855 }
32856
32857 static int
32858 spoolss_dissect_EnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32859 {
32860         pinfo->dcerpc_procedure_name="EnumMonitors";
32861         offset = spoolss_dissect_element_EnumMonitors_servername(tvb, offset, pinfo, tree, drep);
32862         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32863         offset = spoolss_dissect_element_EnumMonitors_level(tvb, offset, pinfo, tree, drep);
32864         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32865         offset = spoolss_dissect_element_EnumMonitors_buffer(tvb, offset, pinfo, tree, drep);
32866         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32867         offset = spoolss_dissect_element_EnumMonitors_offered(tvb, offset, pinfo, tree, drep);
32868         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32869         return offset;
32870 }
32871
32872 static int
32873 spoolss_dissect_element_AddPort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32874 {
32875         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPort_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_AddPort_server_name);
32876
32877         return offset;
32878 }
32879
32880 static int
32881 spoolss_dissect_element_AddPort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32882 {
32883         char *data;
32884
32885         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPort_server_name, FALSE, &data);
32886         proto_item_append_text(tree, ": %s", data);
32887
32888         return offset;
32889 }
32890
32891 static int
32892 spoolss_dissect_element_AddPort_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32893 {
32894         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPort_unknown, 0);
32895
32896         return offset;
32897 }
32898
32899 static int
32900 spoolss_dissect_element_AddPort_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32901 {
32902         char *data;
32903
32904         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPort_monitor_name, FALSE, &data);
32905         proto_item_append_text(tree, ": %s", data);
32906
32907         return offset;
32908 }
32909
32910 /* IDL: WERROR spoolss_AddPort( */
32911 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
32912 /* IDL: [in] uint32 unknown, */
32913 /* IDL: [in] [charset(UTF16)] uint16 monitor_name[*] */
32914 /* IDL: ); */
32915
32916 static int
32917 spoolss_dissect_AddPort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32918 {
32919         guint32 status;
32920
32921         pinfo->dcerpc_procedure_name="AddPort";
32922         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32923
32924         if (status != 0)
32925                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32926
32927         return offset;
32928 }
32929
32930 static int
32931 spoolss_dissect_AddPort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32932 {
32933         pinfo->dcerpc_procedure_name="AddPort";
32934         offset = spoolss_dissect_element_AddPort_server_name(tvb, offset, pinfo, tree, drep);
32935         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32936         offset = spoolss_dissect_element_AddPort_unknown(tvb, offset, pinfo, tree, drep);
32937         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32938         offset = spoolss_dissect_element_AddPort_monitor_name(tvb, offset, pinfo, tree, drep);
32939         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
32940         return offset;
32941 }
32942
32943 /* IDL: WERROR spoolss_ConfigurePort( */
32944 /* IDL:  */
32945 /* IDL: ); */
32946
32947 static int
32948 spoolss_dissect_ConfigurePort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32949 {
32950         guint32 status;
32951
32952         pinfo->dcerpc_procedure_name="ConfigurePort";
32953         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
32954
32955         if (status != 0)
32956                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
32957
32958         return offset;
32959 }
32960
32961 static int
32962 spoolss_dissect_ConfigurePort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32963 {
32964         pinfo->dcerpc_procedure_name="ConfigurePort";
32965         return offset;
32966 }
32967
32968 static int
32969 spoolss_dissect_element_DeletePort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32970 {
32971         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePort_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_DeletePort_server_name);
32972
32973         return offset;
32974 }
32975
32976 static int
32977 spoolss_dissect_element_DeletePort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32978 {
32979         char *data;
32980
32981         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePort_server_name, FALSE, &data);
32982         proto_item_append_text(tree, ": %s", data);
32983
32984         return offset;
32985 }
32986
32987 static int
32988 spoolss_dissect_element_DeletePort_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32989 {
32990         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePort_ptr, 0);
32991
32992         return offset;
32993 }
32994
32995 static int
32996 spoolss_dissect_element_DeletePort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
32997 {
32998         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePort_port_name_, NDR_POINTER_REF, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_DeletePort_port_name);
32999
33000         return offset;
33001 }
33002
33003 static int
33004 spoolss_dissect_element_DeletePort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33005 {
33006         char *data;
33007
33008         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePort_port_name, FALSE, &data);
33009         proto_item_append_text(tree, ": %s", data);
33010
33011         return offset;
33012 }
33013
33014 /* IDL: WERROR spoolss_DeletePort( */
33015 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
33016 /* IDL: [in] uint32 ptr, */
33017 /* IDL: [ref] [in] [charset(UTF16)] uint16 *port_name */
33018 /* IDL: ); */
33019
33020 static int
33021 spoolss_dissect_DeletePort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33022 {
33023         guint32 status;
33024
33025         pinfo->dcerpc_procedure_name="DeletePort";
33026         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33027
33028         if (status != 0)
33029                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33030
33031         return offset;
33032 }
33033
33034 static int
33035 spoolss_dissect_DeletePort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33036 {
33037         pinfo->dcerpc_procedure_name="DeletePort";
33038         offset = spoolss_dissect_element_DeletePort_server_name(tvb, offset, pinfo, tree, drep);
33039         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33040         offset = spoolss_dissect_element_DeletePort_ptr(tvb, offset, pinfo, tree, drep);
33041         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33042         offset = spoolss_dissect_element_DeletePort_port_name(tvb, offset, pinfo, tree, drep);
33043         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33044         return offset;
33045 }
33046
33047 static int
33048 spoolss_dissect_element_CreatePrinterIC_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33049 {
33050         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_CreatePrinterIC_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_CreatePrinterIC_handle);
33051
33052         return offset;
33053 }
33054
33055 static int
33056 spoolss_dissect_element_CreatePrinterIC_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33057 {
33058         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CreatePrinterIC_handle, 0);
33059
33060         return offset;
33061 }
33062
33063 static int
33064 spoolss_dissect_element_CreatePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33065 {
33066         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_CreatePrinterIC_gdi_handle_, NDR_POINTER_REF, "Pointer to Gdi Handle (policy_handle)",hf_spoolss_spoolss_CreatePrinterIC_gdi_handle);
33067
33068         return offset;
33069 }
33070
33071 static int
33072 spoolss_dissect_element_CreatePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33073 {
33074         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CreatePrinterIC_gdi_handle, 0);
33075
33076         return offset;
33077 }
33078
33079 static int
33080 spoolss_dissect_element_CreatePrinterIC_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33081 {
33082         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_CreatePrinterIC_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr);
33083
33084         return offset;
33085 }
33086
33087 static int
33088 spoolss_dissect_element_CreatePrinterIC_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33089 {
33090         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr,0);
33091
33092         return offset;
33093 }
33094
33095 /* IDL: WERROR spoolss_CreatePrinterIC( */
33096 /* IDL: [in] [ref] policy_handle *handle, */
33097 /* IDL: [out] [ref] policy_handle *gdi_handle, */
33098 /* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr */
33099 /* IDL: ); */
33100
33101 static int
33102 spoolss_dissect_CreatePrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33103 {
33104         guint32 status;
33105
33106         pinfo->dcerpc_procedure_name="CreatePrinterIC";
33107         offset = spoolss_dissect_element_CreatePrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
33108         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33109
33110         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33111
33112         if (status != 0)
33113                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33114
33115         return offset;
33116 }
33117
33118 static int
33119 spoolss_dissect_CreatePrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33120 {
33121         pinfo->dcerpc_procedure_name="CreatePrinterIC";
33122         offset = spoolss_dissect_element_CreatePrinterIC_handle(tvb, offset, pinfo, tree, drep);
33123         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33124         offset = spoolss_dissect_element_CreatePrinterIC_devmode_ctr(tvb, offset, pinfo, tree, drep);
33125         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33126         return offset;
33127 }
33128
33129 static int
33130 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33131 {
33132         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_, NDR_POINTER_REF, "Pointer to Gdi Handle (policy_handle)",hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle);
33133
33134         return offset;
33135 }
33136
33137 static int
33138 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33139 {
33140         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle, 0);
33141
33142         return offset;
33143 }
33144
33145 static int
33146 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33147 {
33148         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_, NDR_POINTER_REF, "Pointer to Pin (uint8)",hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn);
33149
33150         return offset;
33151 }
33152
33153 static int
33154 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33155 {
33156         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__);
33157
33158         return offset;
33159 }
33160
33161 static int
33162 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33163 {
33164         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn, 0);
33165
33166         return offset;
33167 }
33168
33169 static int
33170 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33171 {
33172         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cIn, 0);
33173
33174         return offset;
33175 }
33176
33177 static int
33178 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33179 {
33180         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_, NDR_POINTER_REF, "Pointer to Pout (uint8)",hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut);
33181
33182         return offset;
33183 }
33184
33185 static int
33186 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33187 {
33188         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__);
33189
33190         return offset;
33191 }
33192
33193 static int
33194 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33195 {
33196         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut, 0);
33197
33198         return offset;
33199 }
33200
33201 static int
33202 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33203 {
33204         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cOut, 0);
33205
33206         return offset;
33207 }
33208
33209 static int
33210 spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33211 {
33212         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_ul, 0);
33213
33214         return offset;
33215 }
33216
33217 /* IDL: WERROR spoolss_PlayGDIScriptOnPrinterIC( */
33218 /* IDL: [in] [ref] policy_handle *gdi_handle, */
33219 /* IDL: [ref] [in] [size_is(cIn)] uint8 *pIn, */
33220 /* IDL: [in] uint32 cIn, */
33221 /* IDL: [out] [ref] [size_is(cOut)] uint8 *pOut, */
33222 /* IDL: [in] uint32 cOut, */
33223 /* IDL: [in] uint32 ul */
33224 /* IDL: ); */
33225
33226 static int
33227 spoolss_dissect_PlayGDIScriptOnPrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33228 {
33229         guint32 status;
33230
33231         pinfo->dcerpc_procedure_name="PlayGDIScriptOnPrinterIC";
33232         offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvb, offset, pinfo, tree, drep);
33233         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33234
33235         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33236
33237         if (status != 0)
33238                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33239
33240         return offset;
33241 }
33242
33243 static int
33244 spoolss_dissect_PlayGDIScriptOnPrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33245 {
33246         pinfo->dcerpc_procedure_name="PlayGDIScriptOnPrinterIC";
33247         offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
33248         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33249         offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvb, offset, pinfo, tree, drep);
33250         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33251         offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvb, offset, pinfo, tree, drep);
33252         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33253         offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvb, offset, pinfo, tree, drep);
33254         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33255         offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvb, offset, pinfo, tree, drep);
33256         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33257         return offset;
33258 }
33259
33260 static int
33261 spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33262 {
33263         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterIC_gdi_handle_, NDR_POINTER_REF, "Pointer to Gdi Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterIC_gdi_handle);
33264
33265         return offset;
33266 }
33267
33268 static int
33269 spoolss_dissect_element_DeletePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33270 {
33271         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterIC_gdi_handle, 0);
33272
33273         return offset;
33274 }
33275
33276 /* IDL: WERROR spoolss_DeletePrinterIC( */
33277 /* IDL: [out] [in] [ref] policy_handle *gdi_handle */
33278 /* IDL: ); */
33279
33280 static int
33281 spoolss_dissect_DeletePrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33282 {
33283         guint32 status;
33284
33285         pinfo->dcerpc_procedure_name="DeletePrinterIC";
33286         offset = spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
33287         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33288
33289         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33290
33291         if (status != 0)
33292                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33293
33294         return offset;
33295 }
33296
33297 static int
33298 spoolss_dissect_DeletePrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33299 {
33300         pinfo->dcerpc_procedure_name="DeletePrinterIC";
33301         offset = spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
33302         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33303         return offset;
33304 }
33305
33306 /* IDL: WERROR spoolss_AddPrinterConnection( */
33307 /* IDL:  */
33308 /* IDL: ); */
33309
33310 static int
33311 spoolss_dissect_AddPrinterConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33312 {
33313         guint32 status;
33314
33315         pinfo->dcerpc_procedure_name="AddPrinterConnection";
33316         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33317
33318         if (status != 0)
33319                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33320
33321         return offset;
33322 }
33323
33324 static int
33325 spoolss_dissect_AddPrinterConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33326 {
33327         pinfo->dcerpc_procedure_name="AddPrinterConnection";
33328         return offset;
33329 }
33330
33331 /* IDL: WERROR spoolss_DeletePrinterConnection( */
33332 /* IDL:  */
33333 /* IDL: ); */
33334
33335 static int
33336 spoolss_dissect_DeletePrinterConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33337 {
33338         guint32 status;
33339
33340         pinfo->dcerpc_procedure_name="DeletePrinterConnection";
33341         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33342
33343         if (status != 0)
33344                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33345
33346         return offset;
33347 }
33348
33349 static int
33350 spoolss_dissect_DeletePrinterConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33351 {
33352         pinfo->dcerpc_procedure_name="DeletePrinterConnection";
33353         return offset;
33354 }
33355
33356 /* IDL: WERROR spoolss_PrinterMessageBox( */
33357 /* IDL:  */
33358 /* IDL: ); */
33359
33360 static int
33361 spoolss_dissect_PrinterMessageBox_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33362 {
33363         guint32 status;
33364
33365         pinfo->dcerpc_procedure_name="PrinterMessageBox";
33366         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33367
33368         if (status != 0)
33369                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33370
33371         return offset;
33372 }
33373
33374 static int
33375 spoolss_dissect_PrinterMessageBox_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33376 {
33377         pinfo->dcerpc_procedure_name="PrinterMessageBox";
33378         return offset;
33379 }
33380
33381 /* IDL: WERROR spoolss_AddMonitor( */
33382 /* IDL:  */
33383 /* IDL: ); */
33384
33385 static int
33386 spoolss_dissect_AddMonitor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33387 {
33388         guint32 status;
33389
33390         pinfo->dcerpc_procedure_name="AddMonitor";
33391         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33392
33393         if (status != 0)
33394                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33395
33396         return offset;
33397 }
33398
33399 static int
33400 spoolss_dissect_AddMonitor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33401 {
33402         pinfo->dcerpc_procedure_name="AddMonitor";
33403         return offset;
33404 }
33405
33406 /* IDL: WERROR spoolss_DeleteMonitor( */
33407 /* IDL:  */
33408 /* IDL: ); */
33409
33410 static int
33411 spoolss_dissect_DeleteMonitor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33412 {
33413         guint32 status;
33414
33415         pinfo->dcerpc_procedure_name="DeleteMonitor";
33416         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33417
33418         if (status != 0)
33419                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33420
33421         return offset;
33422 }
33423
33424 static int
33425 spoolss_dissect_DeleteMonitor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33426 {
33427         pinfo->dcerpc_procedure_name="DeleteMonitor";
33428         return offset;
33429 }
33430
33431 static int
33432 spoolss_dissect_element_DeletePrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33433 {
33434         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrintProcessor_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePrintProcessor_server);
33435
33436         return offset;
33437 }
33438
33439 static int
33440 spoolss_dissect_element_DeletePrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33441 {
33442         char *data;
33443
33444         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrintProcessor_server, FALSE, &data);
33445         proto_item_append_text(tree, ": %s", data);
33446
33447         return offset;
33448 }
33449
33450 static int
33451 spoolss_dissect_element_DeletePrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33452 {
33453         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrintProcessor_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_DeletePrintProcessor_architecture);
33454
33455         return offset;
33456 }
33457
33458 static int
33459 spoolss_dissect_element_DeletePrintProcessor_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33460 {
33461         char *data;
33462
33463         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrintProcessor_architecture, FALSE, &data);
33464         proto_item_append_text(tree, ": %s", data);
33465
33466         return offset;
33467 }
33468
33469 static int
33470 spoolss_dissect_element_DeletePrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33471 {
33472         char *data;
33473
33474         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrintProcessor_print_processor_name, FALSE, &data);
33475         proto_item_append_text(tree, ": %s", data);
33476
33477         return offset;
33478 }
33479
33480 /* IDL: WERROR spoolss_DeletePrintProcessor( */
33481 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
33482 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *architecture, */
33483 /* IDL: [in] [charset(UTF16)] uint16 print_processor_name[*] */
33484 /* IDL: ); */
33485
33486 static int
33487 spoolss_dissect_DeletePrintProcessor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33488 {
33489         guint32 status;
33490
33491         pinfo->dcerpc_procedure_name="DeletePrintProcessor";
33492         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33493
33494         if (status != 0)
33495                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33496
33497         return offset;
33498 }
33499
33500 static int
33501 spoolss_dissect_DeletePrintProcessor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33502 {
33503         pinfo->dcerpc_procedure_name="DeletePrintProcessor";
33504         offset = spoolss_dissect_element_DeletePrintProcessor_server(tvb, offset, pinfo, tree, drep);
33505         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33506         offset = spoolss_dissect_element_DeletePrintProcessor_architecture(tvb, offset, pinfo, tree, drep);
33507         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33508         offset = spoolss_dissect_element_DeletePrintProcessor_print_processor_name(tvb, offset, pinfo, tree, drep);
33509         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33510         return offset;
33511 }
33512
33513 /* IDL: WERROR spoolss_AddPrintProvidor( */
33514 /* IDL:  */
33515 /* IDL: ); */
33516
33517 static int
33518 spoolss_dissect_AddPrintProvidor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33519 {
33520         guint32 status;
33521
33522         pinfo->dcerpc_procedure_name="AddPrintProvidor";
33523         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33524
33525         if (status != 0)
33526                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33527
33528         return offset;
33529 }
33530
33531 static int
33532 spoolss_dissect_AddPrintProvidor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33533 {
33534         pinfo->dcerpc_procedure_name="AddPrintProvidor";
33535         return offset;
33536 }
33537
33538 /* IDL: WERROR spoolss_DeletePrintProvidor( */
33539 /* IDL:  */
33540 /* IDL: ); */
33541
33542 static int
33543 spoolss_dissect_DeletePrintProvidor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33544 {
33545         guint32 status;
33546
33547         pinfo->dcerpc_procedure_name="DeletePrintProvidor";
33548         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33549
33550         if (status != 0)
33551                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33552
33553         return offset;
33554 }
33555
33556 static int
33557 spoolss_dissect_DeletePrintProvidor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33558 {
33559         pinfo->dcerpc_procedure_name="DeletePrintProvidor";
33560         return offset;
33561 }
33562
33563 static int
33564 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33565 {
33566         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumPrintProcDataTypes_servername);
33567
33568         return offset;
33569 }
33570
33571 static int
33572 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33573 {
33574         char *data;
33575
33576         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcDataTypes_servername, FALSE, &data);
33577         proto_item_append_text(tree, ": %s", data);
33578
33579         return offset;
33580 }
33581
33582 static int
33583 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33584 {
33585         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name_, NDR_POINTER_UNIQUE, "Pointer to Print Processor Name (uint16)",hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name);
33586
33587         return offset;
33588 }
33589
33590 static int
33591 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33592 {
33593         char *data;
33594
33595         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name, FALSE, &data);
33596         proto_item_append_text(tree, ": %s", data);
33597
33598         return offset;
33599 }
33600
33601 static int
33602 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33603 {
33604         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_level, 0);
33605
33606         return offset;
33607 }
33608
33609 static int
33610 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33611 {
33612         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer);
33613
33614         return offset;
33615 }
33616
33617 static int
33618 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33619 {
33620         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer, 0);
33621
33622         return offset;
33623 }
33624
33625 static int
33626 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33627 {
33628         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_offered, 0);
33629
33630         return offset;
33631 }
33632
33633 static int
33634 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33635 {
33636         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcDataTypes_info);
33637
33638         return offset;
33639 }
33640
33641 static int
33642 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33643 {
33644         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_info, 0);
33645
33646         return offset;
33647 }
33648
33649 static int
33650 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33651 {
33652         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrintProcDataTypes_needed);
33653
33654         return offset;
33655 }
33656
33657 static int
33658 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33659 {
33660         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_needed, 0);
33661
33662         return offset;
33663 }
33664
33665 static int
33666 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33667 {
33668         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrintProcDataTypes_count);
33669
33670         return offset;
33671 }
33672
33673 static int
33674 spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33675 {
33676         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_count, 0);
33677
33678         return offset;
33679 }
33680
33681 /* IDL: WERROR _spoolss_EnumPrintProcDataTypes( */
33682 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
33683 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *print_processor_name, */
33684 /* IDL: [in] uint32 level, */
33685 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
33686 /* IDL: [in] uint32 offered, */
33687 /* IDL: [out] [unique(1)] DATA_BLOB *info, */
33688 /* IDL: [out] [ref] uint32 *needed, */
33689 /* IDL: [out] [ref] uint32 *count */
33690 /* IDL: ); */
33691
33692 static int
33693 spoolss_dissect__spoolss_EnumPrintProcDataTypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33694 {
33695         guint32 status;
33696
33697         pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcDataTypes";
33698         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info(tvb, offset, pinfo, tree, drep);
33699         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33700
33701         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed(tvb, offset, pinfo, tree, drep);
33702         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33703
33704         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count(tvb, offset, pinfo, tree, drep);
33705         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33706
33707         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33708
33709         if (status != 0)
33710                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33711
33712         return offset;
33713 }
33714
33715 static int
33716 spoolss_dissect__spoolss_EnumPrintProcDataTypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33717 {
33718         pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcDataTypes";
33719         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername(tvb, offset, pinfo, tree, drep);
33720         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33721         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name(tvb, offset, pinfo, tree, drep);
33722         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33723         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_level(tvb, offset, pinfo, tree, drep);
33724         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33725         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer(tvb, offset, pinfo, tree, drep);
33726         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33727         offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_offered(tvb, offset, pinfo, tree, drep);
33728         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33729         return offset;
33730 }
33731
33732 static int
33733 spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33734 {
33735         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcDataTypes_level, 0);
33736
33737         return offset;
33738 }
33739
33740 static int
33741 spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33742 {
33743         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcDataTypes_count, 0);
33744
33745         return offset;
33746 }
33747
33748 static int
33749 spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33750 {
33751
33752         return offset;
33753 }
33754
33755 static int
33756 spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33757 {
33758         offset = spoolss_dissect_PrintProcDataTypesInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcDataTypes_info, *0);
33759
33760         return offset;
33761 }
33762
33763 /* IDL: void __spoolss_EnumPrintProcDataTypes( */
33764 /* IDL: [in] uint32 level, */
33765 /* IDL: [in] uint32 count, */
33766 /* IDL: [out] [switch_is(level)] spoolss_PrintProcDataTypesInfo info[count] */
33767 /* IDL: ); */
33768
33769 static int
33770 spoolss_dissect___spoolss_EnumPrintProcDataTypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33771 {
33772         pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcDataTypes";
33773         offset = spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info(tvb, offset, pinfo, tree, drep);
33774         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33775
33776         return offset;
33777 }
33778
33779 static int
33780 spoolss_dissect___spoolss_EnumPrintProcDataTypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33781 {
33782         pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcDataTypes";
33783         offset = spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_level(tvb, offset, pinfo, tree, drep);
33784         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33785         offset = spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_count(tvb, offset, pinfo, tree, drep);
33786         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33787         return offset;
33788 }
33789
33790 static int
33791 spoolss_dissect_element_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33792 {
33793         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumPrintProcDataTypes_servername);
33794
33795         return offset;
33796 }
33797
33798 static int
33799 spoolss_dissect_element_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33800 {
33801         char *data;
33802
33803         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcDataTypes_servername, FALSE, &data);
33804         proto_item_append_text(tree, ": %s", data);
33805
33806         return offset;
33807 }
33808
33809 static int
33810 spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33811 {
33812         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name_, NDR_POINTER_UNIQUE, "Pointer to Print Processor Name (uint16)",hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name);
33813
33814         return offset;
33815 }
33816
33817 static int
33818 spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33819 {
33820         char *data;
33821
33822         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name, FALSE, &data);
33823         proto_item_append_text(tree, ": %s", data);
33824
33825         return offset;
33826 }
33827
33828 static int
33829 spoolss_dissect_element_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33830 {
33831         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_level, 0);
33832
33833         return offset;
33834 }
33835
33836 static int
33837 spoolss_dissect_element_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33838 {
33839         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer);
33840
33841         return offset;
33842 }
33843
33844 static int
33845 spoolss_dissect_element_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33846 {
33847         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer, 0);
33848
33849         return offset;
33850 }
33851
33852 static int
33853 spoolss_dissect_element_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33854 {
33855         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_offered, 0);
33856
33857         return offset;
33858 }
33859
33860 static int
33861 spoolss_dissect_element_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33862 {
33863         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrintProcDataTypes_count);
33864
33865         return offset;
33866 }
33867
33868 static int
33869 spoolss_dissect_element_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33870 {
33871         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_count, 0);
33872
33873         return offset;
33874 }
33875
33876 static int
33877 spoolss_dissect_element_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33878 {
33879         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrintProcDataTypesInfo)",hf_spoolss_spoolss_EnumPrintProcDataTypes_info);
33880
33881         return offset;
33882 }
33883
33884 static int
33885 spoolss_dissect_element_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33886 {
33887         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrintProcDataTypesInfo)",hf_spoolss_spoolss_EnumPrintProcDataTypes_info);
33888
33889         return offset;
33890 }
33891
33892 static int
33893 spoolss_dissect_element_EnumPrintProcDataTypes_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33894 {
33895         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_info___);
33896
33897         return offset;
33898 }
33899
33900 static int
33901 spoolss_dissect_element_EnumPrintProcDataTypes_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33902 {
33903         offset = spoolss_dissect_PrintProcDataTypesInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_info, *0);
33904
33905         return offset;
33906 }
33907
33908 static int
33909 spoolss_dissect_element_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33910 {
33911         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrintProcDataTypes_needed);
33912
33913         return offset;
33914 }
33915
33916 static int
33917 spoolss_dissect_element_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33918 {
33919         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_needed, 0);
33920
33921         return offset;
33922 }
33923
33924 /* IDL: WERROR spoolss_EnumPrintProcDataTypes( */
33925 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
33926 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *print_processor_name, */
33927 /* IDL: [in] uint32 level, */
33928 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
33929 /* IDL: [in] uint32 offered, */
33930 /* IDL: [out] [ref] uint32 *count, */
33931 /* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PrintProcDataTypesInfo **info, */
33932 /* IDL: [out] [ref] uint32 *needed */
33933 /* IDL: ); */
33934
33935 static int
33936 spoolss_dissect_EnumPrintProcDataTypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33937 {
33938         guint32 status;
33939
33940         pinfo->dcerpc_procedure_name="EnumPrintProcDataTypes";
33941         offset = spoolss_dissect_element_EnumPrintProcDataTypes_count(tvb, offset, pinfo, tree, drep);
33942         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33943
33944         offset = spoolss_dissect_element_EnumPrintProcDataTypes_info(tvb, offset, pinfo, tree, drep);
33945         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33946
33947         offset = spoolss_dissect_element_EnumPrintProcDataTypes_needed(tvb, offset, pinfo, tree, drep);
33948         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33949
33950         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
33951
33952         if (status != 0)
33953                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
33954
33955         return offset;
33956 }
33957
33958 static int
33959 spoolss_dissect_EnumPrintProcDataTypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33960 {
33961         pinfo->dcerpc_procedure_name="EnumPrintProcDataTypes";
33962         offset = spoolss_dissect_element_EnumPrintProcDataTypes_servername(tvb, offset, pinfo, tree, drep);
33963         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33964         offset = spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name(tvb, offset, pinfo, tree, drep);
33965         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33966         offset = spoolss_dissect_element_EnumPrintProcDataTypes_level(tvb, offset, pinfo, tree, drep);
33967         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33968         offset = spoolss_dissect_element_EnumPrintProcDataTypes_buffer(tvb, offset, pinfo, tree, drep);
33969         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33970         offset = spoolss_dissect_element_EnumPrintProcDataTypes_offered(tvb, offset, pinfo, tree, drep);
33971         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
33972         return offset;
33973 }
33974
33975 static int
33976 spoolss_dissect_element_ResetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33977 {
33978         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ResetPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ResetPrinter_handle);
33979
33980         return offset;
33981 }
33982
33983 static int
33984 spoolss_dissect_element_ResetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33985 {
33986         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ResetPrinter_handle, 0);
33987
33988         return offset;
33989 }
33990
33991 static int
33992 spoolss_dissect_element_ResetPrinter_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
33993 {
33994         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ResetPrinter_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_ResetPrinter_data_type);
33995
33996         return offset;
33997 }
33998
33999 static int
34000 spoolss_dissect_element_ResetPrinter_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34001 {
34002         char *data;
34003
34004         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_ResetPrinter_data_type, FALSE, &data);
34005         proto_item_append_text(tree, ": %s", data);
34006
34007         return offset;
34008 }
34009
34010 static int
34011 spoolss_dissect_element_ResetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34012 {
34013         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ResetPrinter_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_ResetPrinter_devmode_ctr);
34014
34015         return offset;
34016 }
34017
34018 static int
34019 spoolss_dissect_element_ResetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34020 {
34021         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_ResetPrinter_devmode_ctr,0);
34022
34023         return offset;
34024 }
34025
34026 /* IDL: WERROR spoolss_ResetPrinter( */
34027 /* IDL: [in] [ref] policy_handle *handle, */
34028 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *data_type, */
34029 /* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr */
34030 /* IDL: ); */
34031
34032 static int
34033 spoolss_dissect_ResetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34034 {
34035         guint32 status;
34036
34037         pinfo->dcerpc_procedure_name="ResetPrinter";
34038         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34039
34040         if (status != 0)
34041                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34042
34043         return offset;
34044 }
34045
34046 static int
34047 spoolss_dissect_ResetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34048 {
34049         pinfo->dcerpc_procedure_name="ResetPrinter";
34050         offset = spoolss_dissect_element_ResetPrinter_handle(tvb, offset, pinfo, tree, drep);
34051         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34052         offset = spoolss_dissect_element_ResetPrinter_data_type(tvb, offset, pinfo, tree, drep);
34053         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34054         offset = spoolss_dissect_element_ResetPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
34055         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34056         return offset;
34057 }
34058
34059 static int
34060 spoolss_dissect_element_GetPrinterDriver2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34061 {
34062         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterDriver2_handle);
34063
34064         return offset;
34065 }
34066
34067 static int
34068 spoolss_dissect_element_GetPrinterDriver2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34069 {
34070         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_handle, 0);
34071
34072         return offset;
34073 }
34074
34075 static int
34076 spoolss_dissect_element_GetPrinterDriver2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34077 {
34078         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetPrinterDriver2_architecture);
34079
34080         return offset;
34081 }
34082
34083 static int
34084 spoolss_dissect_element_GetPrinterDriver2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34085 {
34086         char *data;
34087
34088         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriver2_architecture, FALSE, &data);
34089         proto_item_append_text(tree, ": %s", data);
34090
34091         return offset;
34092 }
34093
34094 static int
34095 spoolss_dissect_element_GetPrinterDriver2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34096 {
34097         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_level, 0);
34098
34099         return offset;
34100 }
34101
34102 static int
34103 spoolss_dissect_element_GetPrinterDriver2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34104 {
34105         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinterDriver2_buffer);
34106
34107         return offset;
34108 }
34109
34110 static int
34111 spoolss_dissect_element_GetPrinterDriver2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34112 {
34113         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_buffer, 0);
34114
34115         return offset;
34116 }
34117
34118 static int
34119 spoolss_dissect_element_GetPrinterDriver2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34120 {
34121         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_offered, 0);
34122
34123         return offset;
34124 }
34125
34126 static int
34127 spoolss_dissect_element_GetPrinterDriver2_client_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34128 {
34129         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_client_major_version, 0);
34130
34131         return offset;
34132 }
34133
34134 static int
34135 spoolss_dissect_element_GetPrinterDriver2_client_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34136 {
34137         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_client_minor_version, 0);
34138
34139         return offset;
34140 }
34141
34142 static int
34143 spoolss_dissect_element_GetPrinterDriver2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34144 {
34145         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_GetPrinterDriver2_info);
34146
34147         return offset;
34148 }
34149
34150 static int
34151 spoolss_dissect_element_GetPrinterDriver2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34152 {
34153         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
34154         guint3264 size;
34155         int conformant = di->conformant_run;
34156         tvbuff_t *subtvb;
34157
34158         if (!conformant) {
34159                 guint32 saved_flags = di->call_data->flags;
34160                 offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_info_, &size);
34161                 di->call_data->flags &= ~DCERPC_IS_NDR64;
34162                 subtvb = tvb_new_subset(tvb, offset, size, -1);
34163                 spoolss_dissect_element_GetPrinterDriver2_info__(subtvb, 0, pinfo, tree, drep);
34164                 offset += size;
34165                 di->call_data->flags = saved_flags;
34166         }
34167
34168         return offset;
34169 }
34170
34171 static int
34172 spoolss_dissect_element_GetPrinterDriver2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34173 {
34174         offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_info, *0);
34175
34176         return offset;
34177 }
34178
34179 static int
34180 spoolss_dissect_element_GetPrinterDriver2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34181 {
34182         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDriver2_needed);
34183
34184         return offset;
34185 }
34186
34187 static int
34188 spoolss_dissect_element_GetPrinterDriver2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34189 {
34190         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_needed, 0);
34191
34192         return offset;
34193 }
34194
34195 static int
34196 spoolss_dissect_element_GetPrinterDriver2_server_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34197 {
34198         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_server_major_version_, NDR_POINTER_REF, "Pointer to Server Major Version (uint32)",hf_spoolss_spoolss_GetPrinterDriver2_server_major_version);
34199
34200         return offset;
34201 }
34202
34203 static int
34204 spoolss_dissect_element_GetPrinterDriver2_server_major_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34205 {
34206         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_server_major_version, 0);
34207
34208         return offset;
34209 }
34210
34211 static int
34212 spoolss_dissect_element_GetPrinterDriver2_server_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34213 {
34214         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_server_minor_version_, NDR_POINTER_REF, "Pointer to Server Minor Version (uint32)",hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version);
34215
34216         return offset;
34217 }
34218
34219 static int
34220 spoolss_dissect_element_GetPrinterDriver2_server_minor_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34221 {
34222         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version, 0);
34223
34224         return offset;
34225 }
34226
34227 /* IDL: WERROR spoolss_GetPrinterDriver2( */
34228 /* IDL: [in] [ref] policy_handle *handle, */
34229 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *architecture, */
34230 /* IDL: [in] uint32 level, */
34231 /* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
34232 /* IDL: [in] uint32 offered, */
34233 /* IDL: [in] uint32 client_major_version, */
34234 /* IDL: [in] uint32 client_minor_version, */
34235 /* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_DriverInfo *info, */
34236 /* IDL: [out] [ref] uint32 *needed, */
34237 /* IDL: [out] [ref] uint32 *server_major_version, */
34238 /* IDL: [out] [ref] uint32 *server_minor_version */
34239 /* IDL: ); */
34240
34241 static int
34242 spoolss_dissect_GetPrinterDriver2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34243 {
34244         guint32 status;
34245
34246         pinfo->dcerpc_procedure_name="GetPrinterDriver2";
34247         offset = spoolss_dissect_element_GetPrinterDriver2_info(tvb, offset, pinfo, tree, drep);
34248         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34249
34250         offset = spoolss_dissect_element_GetPrinterDriver2_needed(tvb, offset, pinfo, tree, drep);
34251         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34252
34253         offset = spoolss_dissect_element_GetPrinterDriver2_server_major_version(tvb, offset, pinfo, tree, drep);
34254         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34255
34256         offset = spoolss_dissect_element_GetPrinterDriver2_server_minor_version(tvb, offset, pinfo, tree, drep);
34257         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34258
34259         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34260
34261         if (status != 0)
34262                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34263
34264         return offset;
34265 }
34266
34267 static int
34268 spoolss_dissect_GetPrinterDriver2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34269 {
34270         pinfo->dcerpc_procedure_name="GetPrinterDriver2";
34271         offset = spoolss_dissect_element_GetPrinterDriver2_handle(tvb, offset, pinfo, tree, drep);
34272         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34273         offset = spoolss_dissect_element_GetPrinterDriver2_architecture(tvb, offset, pinfo, tree, drep);
34274         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34275         offset = spoolss_dissect_element_GetPrinterDriver2_level(tvb, offset, pinfo, tree, drep);
34276         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34277         offset = spoolss_dissect_element_GetPrinterDriver2_buffer(tvb, offset, pinfo, tree, drep);
34278         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34279         offset = spoolss_dissect_element_GetPrinterDriver2_offered(tvb, offset, pinfo, tree, drep);
34280         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34281         offset = spoolss_dissect_element_GetPrinterDriver2_client_major_version(tvb, offset, pinfo, tree, drep);
34282         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34283         offset = spoolss_dissect_element_GetPrinterDriver2_client_minor_version(tvb, offset, pinfo, tree, drep);
34284         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34285         return offset;
34286 }
34287
34288 /* IDL: WERROR spoolss_FindFirstPrinterChangeNotification( */
34289 /* IDL:  */
34290 /* IDL: ); */
34291
34292 static int
34293 spoolss_dissect_FindFirstPrinterChangeNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34294 {
34295         guint32 status;
34296
34297         pinfo->dcerpc_procedure_name="FindFirstPrinterChangeNotification";
34298         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34299
34300         if (status != 0)
34301                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34302
34303         return offset;
34304 }
34305
34306 static int
34307 spoolss_dissect_FindFirstPrinterChangeNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34308 {
34309         pinfo->dcerpc_procedure_name="FindFirstPrinterChangeNotification";
34310         return offset;
34311 }
34312
34313 /* IDL: WERROR spoolss_FindNextPrinterChangeNotification( */
34314 /* IDL:  */
34315 /* IDL: ); */
34316
34317 static int
34318 spoolss_dissect_FindNextPrinterChangeNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34319 {
34320         guint32 status;
34321
34322         pinfo->dcerpc_procedure_name="FindNextPrinterChangeNotification";
34323         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34324
34325         if (status != 0)
34326                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34327
34328         return offset;
34329 }
34330
34331 static int
34332 spoolss_dissect_FindNextPrinterChangeNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34333 {
34334         pinfo->dcerpc_procedure_name="FindNextPrinterChangeNotification";
34335         return offset;
34336 }
34337
34338 static int
34339 spoolss_dissect_element_FindClosePrinterNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34340 {
34341         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FindClosePrinterNotify_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_FindClosePrinterNotify_handle);
34342
34343         return offset;
34344 }
34345
34346 static int
34347 spoolss_dissect_element_FindClosePrinterNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34348 {
34349         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FindClosePrinterNotify_handle, 0);
34350
34351         return offset;
34352 }
34353
34354 /* IDL: WERROR spoolss_FindClosePrinterNotify( */
34355 /* IDL: [in] [ref] policy_handle *handle */
34356 /* IDL: ); */
34357
34358 static int
34359 spoolss_dissect_FindClosePrinterNotify_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34360 {
34361         guint32 status;
34362
34363         pinfo->dcerpc_procedure_name="FindClosePrinterNotify";
34364         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34365
34366         if (status != 0)
34367                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34368
34369         return offset;
34370 }
34371
34372 static int
34373 spoolss_dissect_FindClosePrinterNotify_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34374 {
34375         pinfo->dcerpc_procedure_name="FindClosePrinterNotify";
34376         offset = spoolss_dissect_element_FindClosePrinterNotify_handle(tvb, offset, pinfo, tree, drep);
34377         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34378         return offset;
34379 }
34380
34381 /* IDL: WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld( */
34382 /* IDL:  */
34383 /* IDL: ); */
34384
34385 static int
34386 spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34387 {
34388         guint32 status;
34389
34390         pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotificationOld";
34391         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34392
34393         if (status != 0)
34394                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34395
34396         return offset;
34397 }
34398
34399 static int
34400 spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34401 {
34402         pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotificationOld";
34403         return offset;
34404 }
34405
34406 static int
34407 spoolss_dissect_element_ReplyOpenPrinter_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34408 {
34409         char *data;
34410
34411         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_ReplyOpenPrinter_server_name, FALSE, &data);
34412         proto_item_append_text(tree, ": %s", data);
34413
34414         return offset;
34415 }
34416
34417 static int
34418 spoolss_dissect_element_ReplyOpenPrinter_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34419 {
34420         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_printer_local, 0);
34421
34422         return offset;
34423 }
34424
34425 static int
34426 spoolss_dissect_element_ReplyOpenPrinter_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34427 {
34428         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_type, 0);
34429
34430         return offset;
34431 }
34432
34433 static int
34434 spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34435 {
34436         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_bufsize, 0);
34437
34438         return offset;
34439 }
34440
34441 static int
34442 spoolss_dissect_element_ReplyOpenPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34443 {
34444         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_spoolss_spoolss_ReplyOpenPrinter_buffer);
34445
34446         return offset;
34447 }
34448
34449 static int
34450 spoolss_dissect_element_ReplyOpenPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34451 {
34452         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_buffer__);
34453
34454         return offset;
34455 }
34456
34457 static int
34458 spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34459 {
34460         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_buffer, 0);
34461
34462         return offset;
34463 }
34464
34465 static int
34466 spoolss_dissect_element_ReplyOpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34467 {
34468         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ReplyOpenPrinter_handle);
34469
34470         return offset;
34471 }
34472
34473 static int
34474 spoolss_dissect_element_ReplyOpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34475 {
34476         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_handle, 0);
34477
34478         return offset;
34479 }
34480
34481 /* IDL: WERROR spoolss_ReplyOpenPrinter( */
34482 /* IDL: [in] [charset(UTF16)] uint16 server_name[*], */
34483 /* IDL: [in] uint32 printer_local, */
34484 /* IDL: [in] winreg_Type type, */
34485 /* IDL: [in] [range(0,512)] uint32 bufsize, */
34486 /* IDL: [unique(1)] [in] [size_is(bufsize)] uint8 *buffer, */
34487 /* IDL: [out] [ref] policy_handle *handle */
34488 /* IDL: ); */
34489
34490 static int
34491 spoolss_dissect_ReplyOpenPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34492 {
34493         guint32 status;
34494
34495         pinfo->dcerpc_procedure_name="ReplyOpenPrinter";
34496         offset = spoolss_dissect_element_ReplyOpenPrinter_handle(tvb, offset, pinfo, tree, drep);
34497         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34498
34499         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34500
34501         if (status != 0)
34502                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34503
34504         return offset;
34505 }
34506
34507 static int
34508 spoolss_dissect_ReplyOpenPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34509 {
34510         pinfo->dcerpc_procedure_name="ReplyOpenPrinter";
34511         offset = spoolss_dissect_element_ReplyOpenPrinter_server_name(tvb, offset, pinfo, tree, drep);
34512         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34513         offset = spoolss_dissect_element_ReplyOpenPrinter_printer_local(tvb, offset, pinfo, tree, drep);
34514         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34515         offset = spoolss_dissect_element_ReplyOpenPrinter_type(tvb, offset, pinfo, tree, drep);
34516         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34517         offset = spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvb, offset, pinfo, tree, drep);
34518         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34519         offset = spoolss_dissect_element_ReplyOpenPrinter_buffer(tvb, offset, pinfo, tree, drep);
34520         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34521         return offset;
34522 }
34523
34524 static int
34525 spoolss_dissect_element_RouterReplyPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34526 {
34527         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RouterReplyPrinter_handle);
34528
34529         return offset;
34530 }
34531
34532 static int
34533 spoolss_dissect_element_RouterReplyPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34534 {
34535         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_handle, 0);
34536
34537         return offset;
34538 }
34539
34540 static int
34541 spoolss_dissect_element_RouterReplyPrinter_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34542 {
34543         offset = spoolss_dissect_bitmap_PrinterChangeFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_flags, 0);
34544
34545         return offset;
34546 }
34547
34548 static int
34549 spoolss_dissect_element_RouterReplyPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34550 {
34551         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_bufsize, 0);
34552
34553         return offset;
34554 }
34555
34556 static int
34557 spoolss_dissect_element_RouterReplyPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34558 {
34559         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_spoolss_spoolss_RouterReplyPrinter_buffer);
34560
34561         return offset;
34562 }
34563
34564 static int
34565 spoolss_dissect_element_RouterReplyPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34566 {
34567         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_buffer__);
34568
34569         return offset;
34570 }
34571
34572 static int
34573 spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34574 {
34575         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_buffer, 0);
34576
34577         return offset;
34578 }
34579
34580 /* IDL: WERROR spoolss_RouterReplyPrinter( */
34581 /* IDL: [in] [ref] policy_handle *handle, */
34582 /* IDL: [in] spoolss_PrinterChangeFlags flags, */
34583 /* IDL: [in] [range(0,512)] uint32 bufsize, */
34584 /* IDL: [unique(1)] [in] [size_is(bufsize)] uint8 *buffer */
34585 /* IDL: ); */
34586
34587 static int
34588 spoolss_dissect_RouterReplyPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34589 {
34590         guint32 status;
34591
34592         pinfo->dcerpc_procedure_name="RouterReplyPrinter";
34593         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34594
34595         if (status != 0)
34596                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34597
34598         return offset;
34599 }
34600
34601 static int
34602 spoolss_dissect_RouterReplyPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34603 {
34604         pinfo->dcerpc_procedure_name="RouterReplyPrinter";
34605         offset = spoolss_dissect_element_RouterReplyPrinter_handle(tvb, offset, pinfo, tree, drep);
34606         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34607         offset = spoolss_dissect_element_RouterReplyPrinter_flags(tvb, offset, pinfo, tree, drep);
34608         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34609         offset = spoolss_dissect_element_RouterReplyPrinter_bufsize(tvb, offset, pinfo, tree, drep);
34610         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34611         offset = spoolss_dissect_element_RouterReplyPrinter_buffer(tvb, offset, pinfo, tree, drep);
34612         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34613         return offset;
34614 }
34615
34616 static int
34617 spoolss_dissect_element_ReplyClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34618 {
34619         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyClosePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ReplyClosePrinter_handle);
34620
34621         return offset;
34622 }
34623
34624 static int
34625 spoolss_dissect_element_ReplyClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34626 {
34627         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyClosePrinter_handle, 0);
34628
34629         return offset;
34630 }
34631
34632 /* IDL: WERROR spoolss_ReplyClosePrinter( */
34633 /* IDL: [out] [in] [ref] policy_handle *handle */
34634 /* IDL: ); */
34635
34636 static int
34637 spoolss_dissect_ReplyClosePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34638 {
34639         guint32 status;
34640
34641         pinfo->dcerpc_procedure_name="ReplyClosePrinter";
34642         offset = spoolss_dissect_element_ReplyClosePrinter_handle(tvb, offset, pinfo, tree, drep);
34643         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34644
34645         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34646
34647         if (status != 0)
34648                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34649
34650         return offset;
34651 }
34652
34653 static int
34654 spoolss_dissect_ReplyClosePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34655 {
34656         pinfo->dcerpc_procedure_name="ReplyClosePrinter";
34657         offset = spoolss_dissect_element_ReplyClosePrinter_handle(tvb, offset, pinfo, tree, drep);
34658         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34659         return offset;
34660 }
34661
34662 static int
34663 spoolss_dissect_element_AddPortEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34664 {
34665         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_AddPortEx_servername);
34666
34667         return offset;
34668 }
34669
34670 static int
34671 spoolss_dissect_element_AddPortEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34672 {
34673         char *data;
34674
34675         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPortEx_servername, FALSE, &data);
34676         proto_item_append_text(tree, ": %s", data);
34677
34678         return offset;
34679 }
34680
34681 static int
34682 spoolss_dissect_element_AddPortEx_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34683 {
34684         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_port_ctr_, NDR_POINTER_REF, "Pointer to Port Ctr (spoolss_SetPortInfoContainer)",hf_spoolss_spoolss_AddPortEx_port_ctr);
34685
34686         return offset;
34687 }
34688
34689 static int
34690 spoolss_dissect_element_AddPortEx_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34691 {
34692         offset = spoolss_dissect_struct_SetPortInfoContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPortEx_port_ctr,0);
34693
34694         return offset;
34695 }
34696
34697 static int
34698 spoolss_dissect_element_AddPortEx_port_var_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34699 {
34700         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_port_var_ctr_, NDR_POINTER_REF, "Pointer to Port Var Ctr (spoolss_PortVarContainer)",hf_spoolss_spoolss_AddPortEx_port_var_ctr);
34701
34702         return offset;
34703 }
34704
34705 static int
34706 spoolss_dissect_element_AddPortEx_port_var_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34707 {
34708         offset = spoolss_dissect_struct_PortVarContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPortEx_port_var_ctr,0);
34709
34710         return offset;
34711 }
34712
34713 static int
34714 spoolss_dissect_element_AddPortEx_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34715 {
34716         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddPortEx_monitor_name);
34717
34718         return offset;
34719 }
34720
34721 static int
34722 spoolss_dissect_element_AddPortEx_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34723 {
34724         char *data;
34725
34726         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPortEx_monitor_name, FALSE, &data);
34727         proto_item_append_text(tree, ": %s", data);
34728
34729         return offset;
34730 }
34731
34732 /* IDL: WERROR spoolss_AddPortEx( */
34733 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
34734 /* IDL: [in] [ref] spoolss_SetPortInfoContainer *port_ctr, */
34735 /* IDL: [in] [ref] spoolss_PortVarContainer *port_var_ctr, */
34736 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *monitor_name */
34737 /* IDL: ); */
34738
34739 static int
34740 spoolss_dissect_AddPortEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34741 {
34742         guint32 status;
34743
34744         pinfo->dcerpc_procedure_name="AddPortEx";
34745         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34746
34747         if (status != 0)
34748                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34749
34750         return offset;
34751 }
34752
34753 static int
34754 spoolss_dissect_AddPortEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34755 {
34756         pinfo->dcerpc_procedure_name="AddPortEx";
34757         offset = spoolss_dissect_element_AddPortEx_servername(tvb, offset, pinfo, tree, drep);
34758         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34759         offset = spoolss_dissect_element_AddPortEx_port_ctr(tvb, offset, pinfo, tree, drep);
34760         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34761         offset = spoolss_dissect_element_AddPortEx_port_var_ctr(tvb, offset, pinfo, tree, drep);
34762         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34763         offset = spoolss_dissect_element_AddPortEx_monitor_name(tvb, offset, pinfo, tree, drep);
34764         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34765         return offset;
34766 }
34767
34768 /* IDL: WERROR spoolss_RouterFindFirstPrinterChangeNotification( */
34769 /* IDL:  */
34770 /* IDL: ); */
34771
34772 static int
34773 spoolss_dissect_RouterFindFirstPrinterChangeNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34774 {
34775         guint32 status;
34776
34777         pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotification";
34778         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34779
34780         if (status != 0)
34781                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34782
34783         return offset;
34784 }
34785
34786 static int
34787 spoolss_dissect_RouterFindFirstPrinterChangeNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34788 {
34789         pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotification";
34790         return offset;
34791 }
34792
34793 /* IDL: WERROR spoolss_SpoolerInit( */
34794 /* IDL:  */
34795 /* IDL: ); */
34796
34797 static int
34798 spoolss_dissect_SpoolerInit_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34799 {
34800         guint32 status;
34801
34802         pinfo->dcerpc_procedure_name="SpoolerInit";
34803         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34804
34805         if (status != 0)
34806                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34807
34808         return offset;
34809 }
34810
34811 static int
34812 spoolss_dissect_SpoolerInit_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34813 {
34814         pinfo->dcerpc_procedure_name="SpoolerInit";
34815         return offset;
34816 }
34817
34818 /* IDL: WERROR spoolss_ResetPrinterEx( */
34819 /* IDL:  */
34820 /* IDL: ); */
34821
34822 static int
34823 spoolss_dissect_ResetPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34824 {
34825         guint32 status;
34826
34827         pinfo->dcerpc_procedure_name="ResetPrinterEx";
34828         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34829
34830         if (status != 0)
34831                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34832
34833         return offset;
34834 }
34835
34836 static int
34837 spoolss_dissect_ResetPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34838 {
34839         pinfo->dcerpc_procedure_name="ResetPrinterEx";
34840         return offset;
34841 }
34842
34843 static int
34844 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34845 {
34846         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle);
34847
34848         return offset;
34849 }
34850
34851 static int
34852 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34853 {
34854         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle, 0);
34855
34856         return offset;
34857 }
34858
34859 static int
34860 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34861 {
34862         offset = spoolss_dissect_bitmap_PrinterChangeFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_flags, 0);
34863
34864         return offset;
34865 }
34866
34867 static int
34868 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34869 {
34870         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_options, 0);
34871
34872         return offset;
34873 }
34874
34875 static int
34876 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34877 {
34878         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine_, NDR_POINTER_UNIQUE, "Pointer to Local Machine (uint16)",hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine);
34879
34880         return offset;
34881 }
34882
34883 static int
34884 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34885 {
34886         char *data;
34887
34888         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine, FALSE, &data);
34889         proto_item_append_text(tree, ": %s", data);
34890
34891         return offset;
34892 }
34893
34894 static int
34895 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34896 {
34897         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_printer_local, 0);
34898
34899         return offset;
34900 }
34901
34902 static int
34903 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34904 {
34905         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options_, NDR_POINTER_UNIQUE, "Pointer to Notify Options (spoolss_NotifyOption)",hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options);
34906
34907         return offset;
34908 }
34909
34910 static int
34911 spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34912 {
34913         offset = spoolss_dissect_struct_NotifyOption(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options,0);
34914
34915         return offset;
34916 }
34917
34918 /* IDL: WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx( */
34919 /* IDL: [in] [ref] policy_handle *handle, */
34920 /* IDL: [in] spoolss_PrinterChangeFlags flags, */
34921 /* IDL: [in] uint32 options, */
34922 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *local_machine, */
34923 /* IDL: [in] uint32 printer_local, */
34924 /* IDL: [unique(1)] [in] spoolss_NotifyOption *notify_options */
34925 /* IDL: ); */
34926
34927 static int
34928 spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34929 {
34930         guint32 status;
34931
34932         pinfo->dcerpc_procedure_name="RemoteFindFirstPrinterChangeNotifyEx";
34933         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
34934
34935         if (status != 0)
34936                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
34937
34938         return offset;
34939 }
34940
34941 static int
34942 spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34943 {
34944         pinfo->dcerpc_procedure_name="RemoteFindFirstPrinterChangeNotifyEx";
34945         offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle(tvb, offset, pinfo, tree, drep);
34946         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34947         offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_flags(tvb, offset, pinfo, tree, drep);
34948         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34949         offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_options(tvb, offset, pinfo, tree, drep);
34950         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34951         offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine(tvb, offset, pinfo, tree, drep);
34952         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34953         offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_printer_local(tvb, offset, pinfo, tree, drep);
34954         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34955         offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options(tvb, offset, pinfo, tree, drep);
34956         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
34957         return offset;
34958 }
34959
34960 static int
34961 spoolss_dissect_element_RouterReplyPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34962 {
34963         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinterEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RouterReplyPrinterEx_handle);
34964
34965         return offset;
34966 }
34967
34968 static int
34969 spoolss_dissect_element_RouterReplyPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34970 {
34971         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_handle, 0);
34972
34973         return offset;
34974 }
34975
34976 static int
34977 spoolss_dissect_element_RouterReplyPrinterEx_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34978 {
34979         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_color, 0);
34980
34981         return offset;
34982 }
34983
34984 static int
34985 spoolss_dissect_element_RouterReplyPrinterEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34986 {
34987         offset = spoolss_dissect_bitmap_PrinterChangeFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_flags, 0);
34988
34989         return offset;
34990 }
34991
34992 static int
34993 spoolss_dissect_element_RouterReplyPrinterEx_reply_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
34994 {
34995         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinterEx_reply_result_, NDR_POINTER_REF, "Pointer to Reply Result (spoolss_PrinterNotifyFlags)",hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result);
34996
34997         return offset;
34998 }
34999
35000 static int
35001 spoolss_dissect_element_RouterReplyPrinterEx_reply_result_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35002 {
35003         offset = spoolss_dissect_bitmap_PrinterNotifyFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result, 0);
35004
35005         return offset;
35006 }
35007
35008 static int
35009 spoolss_dissect_element_RouterReplyPrinterEx_reply_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35010 {
35011         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_reply_type, 0);
35012
35013         return offset;
35014 }
35015
35016 static int
35017 spoolss_dissect_element_RouterReplyPrinterEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35018 {
35019         offset = spoolss_dissect_ReplyPrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_info, *0);
35020
35021         return offset;
35022 }
35023
35024 /* IDL: WERROR spoolss_RouterReplyPrinterEx( */
35025 /* IDL: [in] [ref] policy_handle *handle, */
35026 /* IDL: [in] uint32 color, */
35027 /* IDL: [in] spoolss_PrinterChangeFlags flags, */
35028 /* IDL: [out] [ref] spoolss_PrinterNotifyFlags *reply_result, */
35029 /* IDL: [in] uint32 reply_type, */
35030 /* IDL: [in] [switch_is(reply_type)] spoolss_ReplyPrinterInfo info */
35031 /* IDL: ); */
35032
35033 static int
35034 spoolss_dissect_RouterReplyPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35035 {
35036         guint32 status;
35037
35038         pinfo->dcerpc_procedure_name="RouterReplyPrinterEx";
35039         offset = spoolss_dissect_element_RouterReplyPrinterEx_reply_result(tvb, offset, pinfo, tree, drep);
35040         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35041
35042         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35043
35044         if (status != 0)
35045                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35046
35047         return offset;
35048 }
35049
35050 static int
35051 spoolss_dissect_RouterReplyPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35052 {
35053         pinfo->dcerpc_procedure_name="RouterReplyPrinterEx";
35054         offset = spoolss_dissect_element_RouterReplyPrinterEx_handle(tvb, offset, pinfo, tree, drep);
35055         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35056         offset = spoolss_dissect_element_RouterReplyPrinterEx_color(tvb, offset, pinfo, tree, drep);
35057         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35058         offset = spoolss_dissect_element_RouterReplyPrinterEx_flags(tvb, offset, pinfo, tree, drep);
35059         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35060         offset = spoolss_dissect_element_RouterReplyPrinterEx_reply_type(tvb, offset, pinfo, tree, drep);
35061         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35062         offset = spoolss_dissect_element_RouterReplyPrinterEx_info(tvb, offset, pinfo, tree, drep);
35063         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35064         return offset;
35065 }
35066
35067 static int
35068 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35069 {
35070         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle);
35071
35072         return offset;
35073 }
35074
35075 static int
35076 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35077 {
35078         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle, 0);
35079
35080         return offset;
35081 }
35082
35083 static int
35084 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_change_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35085 {
35086         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_change_low, 0);
35087
35088         return offset;
35089 }
35090
35091 static int
35092 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35093 {
35094         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options_, NDR_POINTER_UNIQUE, "Pointer to Options (spoolss_NotifyOption)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options);
35095
35096         return offset;
35097 }
35098
35099 static int
35100 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35101 {
35102         offset = spoolss_dissect_struct_NotifyOption(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options,0);
35103
35104         return offset;
35105 }
35106
35107 static int
35108 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35109 {
35110         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_NotifyInfo)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info);
35111
35112         return offset;
35113 }
35114
35115 static int
35116 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35117 {
35118         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_NotifyInfo)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info);
35119
35120         return offset;
35121 }
35122
35123 static int
35124 spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35125 {
35126         offset = spoolss_dissect_struct_NotifyInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info,0);
35127
35128         return offset;
35129 }
35130
35131 /* IDL: WERROR spoolss_RouterRefreshPrinterChangeNotify( */
35132 /* IDL: [in] [ref] policy_handle *handle, */
35133 /* IDL: [in] uint32 change_low, */
35134 /* IDL: [unique(1)] [in] spoolss_NotifyOption *options, */
35135 /* IDL: [out] [ref] spoolss_NotifyInfo **info */
35136 /* IDL: ); */
35137
35138 static int
35139 spoolss_dissect_RouterRefreshPrinterChangeNotify_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35140 {
35141         guint32 status;
35142
35143         pinfo->dcerpc_procedure_name="RouterRefreshPrinterChangeNotify";
35144         offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info(tvb, offset, pinfo, tree, drep);
35145         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35146
35147         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35148
35149         if (status != 0)
35150                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35151
35152         return offset;
35153 }
35154
35155 static int
35156 spoolss_dissect_RouterRefreshPrinterChangeNotify_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35157 {
35158         pinfo->dcerpc_procedure_name="RouterRefreshPrinterChangeNotify";
35159         offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle(tvb, offset, pinfo, tree, drep);
35160         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35161         offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_change_low(tvb, offset, pinfo, tree, drep);
35162         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35163         offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options(tvb, offset, pinfo, tree, drep);
35164         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35165         return offset;
35166 }
35167
35168 /* IDL: WERROR spoolss_44( */
35169 /* IDL:  */
35170 /* IDL: ); */
35171
35172 static int
35173 spoolss_dissect_44_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35174 {
35175         guint32 status;
35176
35177         pinfo->dcerpc_procedure_name="44";
35178         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35179
35180         if (status != 0)
35181                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35182
35183         return offset;
35184 }
35185
35186 static int
35187 spoolss_dissect_44_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35188 {
35189         pinfo->dcerpc_procedure_name="44";
35190         return offset;
35191 }
35192
35193 static int
35194 spoolss_dissect_element_OpenPrinterEx_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35195 {
35196         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinterEx_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_OpenPrinterEx_printername);
35197
35198         return offset;
35199 }
35200
35201 static int
35202 spoolss_dissect_element_OpenPrinterEx_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35203 {
35204         char *data;
35205
35206         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinterEx_printername, FALSE, &data);
35207         proto_item_append_text(tree, ": %s", data);
35208
35209         return offset;
35210 }
35211
35212 static int
35213 spoolss_dissect_element_OpenPrinterEx_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35214 {
35215         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinterEx_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_OpenPrinterEx_datatype);
35216
35217         return offset;
35218 }
35219
35220 static int
35221 spoolss_dissect_element_OpenPrinterEx_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35222 {
35223         char *data;
35224
35225         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinterEx_datatype, FALSE, &data);
35226         proto_item_append_text(tree, ": %s", data);
35227
35228         return offset;
35229 }
35230
35231 static int
35232 spoolss_dissect_element_OpenPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35233 {
35234         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_OpenPrinterEx_devmode_ctr,0);
35235
35236         return offset;
35237 }
35238
35239 static int
35240 spoolss_dissect_element_OpenPrinterEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35241 {
35242         offset = spoolss_dissect_bitmap_AccessRights(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinterEx_access_mask, 0);
35243
35244         return offset;
35245 }
35246
35247 static int
35248 spoolss_dissect_element_OpenPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35249 {
35250         offset = spoolss_dissect_struct_UserLevelCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_OpenPrinterEx_userlevel_ctr,0);
35251
35252         return offset;
35253 }
35254
35255 static int
35256 spoolss_dissect_element_OpenPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35257 {
35258         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinterEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_OpenPrinterEx_handle);
35259
35260         return offset;
35261 }
35262
35263 static int
35264 spoolss_dissect_element_OpenPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35265 {
35266         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinterEx_handle, 0);
35267
35268         return offset;
35269 }
35270
35271 /* IDL: WERROR spoolss_OpenPrinterEx( */
35272 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *printername, */
35273 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *datatype, */
35274 /* IDL: [in] spoolss_DevmodeContainer devmode_ctr, */
35275 /* IDL: [in] spoolss_AccessRights access_mask, */
35276 /* IDL: [in] spoolss_UserLevelCtr userlevel_ctr, */
35277 /* IDL: [out] [ref] policy_handle *handle */
35278 /* IDL: ); */
35279
35280 static int
35281 spoolss_dissect_OpenPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35282 {
35283         guint32 status;
35284
35285         pinfo->dcerpc_procedure_name="OpenPrinterEx";
35286         offset = spoolss_dissect_element_OpenPrinterEx_handle(tvb, offset, pinfo, tree, drep);
35287         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35288
35289         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35290
35291         if (status != 0)
35292                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35293
35294         return offset;
35295 }
35296
35297 static int
35298 spoolss_dissect_OpenPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35299 {
35300         pinfo->dcerpc_procedure_name="OpenPrinterEx";
35301         offset = spoolss_dissect_element_OpenPrinterEx_printername(tvb, offset, pinfo, tree, drep);
35302         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35303         offset = spoolss_dissect_element_OpenPrinterEx_datatype(tvb, offset, pinfo, tree, drep);
35304         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35305         offset = spoolss_dissect_element_OpenPrinterEx_devmode_ctr(tvb, offset, pinfo, tree, drep);
35306         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35307         offset = spoolss_dissect_element_OpenPrinterEx_access_mask(tvb, offset, pinfo, tree, drep);
35308         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35309         offset = spoolss_dissect_element_OpenPrinterEx_userlevel_ctr(tvb, offset, pinfo, tree, drep);
35310         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35311         return offset;
35312 }
35313
35314 static int
35315 spoolss_dissect_element_AddPrinterEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35316 {
35317         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPrinterEx_server);
35318
35319         return offset;
35320 }
35321
35322 static int
35323 spoolss_dissect_element_AddPrinterEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35324 {
35325         char *data;
35326
35327         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinterEx_server, FALSE, &data);
35328         proto_item_append_text(tree, ": %s", data);
35329
35330         return offset;
35331 }
35332
35333 static int
35334 spoolss_dissect_element_AddPrinterEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35335 {
35336         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_SetPrinterInfoCtr)",hf_spoolss_spoolss_AddPrinterEx_info_ctr);
35337
35338         return offset;
35339 }
35340
35341 static int
35342 spoolss_dissect_element_AddPrinterEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35343 {
35344         offset = spoolss_dissect_struct_SetPrinterInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_info_ctr,0);
35345
35346         return offset;
35347 }
35348
35349 static int
35350 spoolss_dissect_element_AddPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35351 {
35352         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_AddPrinterEx_devmode_ctr);
35353
35354         return offset;
35355 }
35356
35357 static int
35358 spoolss_dissect_element_AddPrinterEx_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35359 {
35360         offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_devmode_ctr,0);
35361
35362         return offset;
35363 }
35364
35365 static int
35366 spoolss_dissect_element_AddPrinterEx_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35367 {
35368         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_secdesc_ctr_, NDR_POINTER_REF, "Pointer to Secdesc Ctr (sec_desc_buf)",hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr);
35369
35370         return offset;
35371 }
35372
35373 static int
35374 spoolss_dissect_element_AddPrinterEx_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35375 {
35376         offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr,0);
35377
35378         return offset;
35379 }
35380
35381 static int
35382 spoolss_dissect_element_AddPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35383 {
35384         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_userlevel_ctr_, NDR_POINTER_REF, "Pointer to Userlevel Ctr (spoolss_UserLevelCtr)",hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr);
35385
35386         return offset;
35387 }
35388
35389 static int
35390 spoolss_dissect_element_AddPrinterEx_userlevel_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35391 {
35392         offset = spoolss_dissect_struct_UserLevelCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr,0);
35393
35394         return offset;
35395 }
35396
35397 static int
35398 spoolss_dissect_element_AddPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35399 {
35400         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddPrinterEx_handle);
35401
35402         return offset;
35403 }
35404
35405 static int
35406 spoolss_dissect_element_AddPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35407 {
35408         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPrinterEx_handle, 0);
35409
35410         return offset;
35411 }
35412
35413 /* IDL: WERROR spoolss_AddPrinterEx( */
35414 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
35415 /* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *info_ctr, */
35416 /* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr, */
35417 /* IDL: [in] [ref] sec_desc_buf *secdesc_ctr, */
35418 /* IDL: [in] [ref] spoolss_UserLevelCtr *userlevel_ctr, */
35419 /* IDL: [out] [ref] policy_handle *handle */
35420 /* IDL: ); */
35421
35422 static int
35423 spoolss_dissect_AddPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35424 {
35425         guint32 status;
35426
35427         pinfo->dcerpc_procedure_name="AddPrinterEx";
35428         offset = spoolss_dissect_element_AddPrinterEx_handle(tvb, offset, pinfo, tree, drep);
35429         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35430
35431         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35432
35433         if (status != 0)
35434                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35435
35436         return offset;
35437 }
35438
35439 static int
35440 spoolss_dissect_AddPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35441 {
35442         pinfo->dcerpc_procedure_name="AddPrinterEx";
35443         offset = spoolss_dissect_element_AddPrinterEx_server(tvb, offset, pinfo, tree, drep);
35444         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35445         offset = spoolss_dissect_element_AddPrinterEx_info_ctr(tvb, offset, pinfo, tree, drep);
35446         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35447         offset = spoolss_dissect_element_AddPrinterEx_devmode_ctr(tvb, offset, pinfo, tree, drep);
35448         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35449         offset = spoolss_dissect_element_AddPrinterEx_secdesc_ctr(tvb, offset, pinfo, tree, drep);
35450         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35451         offset = spoolss_dissect_element_AddPrinterEx_userlevel_ctr(tvb, offset, pinfo, tree, drep);
35452         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35453         return offset;
35454 }
35455
35456 static int
35457 spoolss_dissect_element_SetPort_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35458 {
35459         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPort_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPort_servername);
35460
35461         return offset;
35462 }
35463
35464 static int
35465 spoolss_dissect_element_SetPort_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35466 {
35467         char *data;
35468
35469         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPort_servername, FALSE, &data);
35470         proto_item_append_text(tree, ": %s", data);
35471
35472         return offset;
35473 }
35474
35475 static int
35476 spoolss_dissect_element_SetPort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35477 {
35478         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPort_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPort_port_name);
35479
35480         return offset;
35481 }
35482
35483 static int
35484 spoolss_dissect_element_SetPort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35485 {
35486         char *data;
35487
35488         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPort_port_name, FALSE, &data);
35489         proto_item_append_text(tree, ": %s", data);
35490
35491         return offset;
35492 }
35493
35494 static int
35495 spoolss_dissect_element_SetPort_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35496 {
35497         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPort_port_ctr_, NDR_POINTER_REF, "Pointer to Port Ctr (spoolss_SetPortInfoContainer)",hf_spoolss_spoolss_SetPort_port_ctr);
35498
35499         return offset;
35500 }
35501
35502 static int
35503 spoolss_dissect_element_SetPort_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35504 {
35505         offset = spoolss_dissect_struct_SetPortInfoContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPort_port_ctr,0);
35506
35507         return offset;
35508 }
35509
35510 /* IDL: WERROR spoolss_SetPort( */
35511 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
35512 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *port_name, */
35513 /* IDL: [in] [ref] spoolss_SetPortInfoContainer *port_ctr */
35514 /* IDL: ); */
35515
35516 static int
35517 spoolss_dissect_SetPort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35518 {
35519         guint32 status;
35520
35521         pinfo->dcerpc_procedure_name="SetPort";
35522         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35523
35524         if (status != 0)
35525                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35526
35527         return offset;
35528 }
35529
35530 static int
35531 spoolss_dissect_SetPort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35532 {
35533         pinfo->dcerpc_procedure_name="SetPort";
35534         offset = spoolss_dissect_element_SetPort_servername(tvb, offset, pinfo, tree, drep);
35535         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35536         offset = spoolss_dissect_element_SetPort_port_name(tvb, offset, pinfo, tree, drep);
35537         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35538         offset = spoolss_dissect_element_SetPort_port_ctr(tvb, offset, pinfo, tree, drep);
35539         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35540         return offset;
35541 }
35542
35543 static int
35544 spoolss_dissect_element_EnumPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35545 {
35546         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumPrinterData_handle);
35547
35548         return offset;
35549 }
35550
35551 static int
35552 spoolss_dissect_element_EnumPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35553 {
35554         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_handle, 0);
35555
35556         return offset;
35557 }
35558
35559 static int
35560 spoolss_dissect_element_EnumPrinterData_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35561 {
35562         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_enum_index, 0);
35563
35564         return offset;
35565 }
35566
35567 static int
35568 spoolss_dissect_element_EnumPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35569 {
35570         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_value_name_);
35571
35572         return offset;
35573 }
35574
35575 static int
35576 spoolss_dissect_element_EnumPrinterData_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35577 {
35578         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_value_name, 0);
35579
35580         return offset;
35581 }
35582
35583 static int
35584 spoolss_dissect_element_EnumPrinterData_value_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35585 {
35586         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_value_offered, 0);
35587
35588         return offset;
35589 }
35590
35591 static int
35592 spoolss_dissect_element_EnumPrinterData_value_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35593 {
35594         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_value_needed_, NDR_POINTER_REF, "Pointer to Value Needed (uint32)",hf_spoolss_spoolss_EnumPrinterData_value_needed);
35595
35596         return offset;
35597 }
35598
35599 static int
35600 spoolss_dissect_element_EnumPrinterData_value_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35601 {
35602         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_value_needed, 0);
35603
35604         return offset;
35605 }
35606
35607 static int
35608 spoolss_dissect_element_EnumPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35609 {
35610         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_type_, NDR_POINTER_REF, "Pointer to Type (winreg_Type)",hf_spoolss_spoolss_EnumPrinterData_type);
35611
35612         return offset;
35613 }
35614
35615 static int
35616 spoolss_dissect_element_EnumPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35617 {
35618         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_type, 0);
35619
35620         return offset;
35621 }
35622
35623 static int
35624 spoolss_dissect_element_EnumPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35625 {
35626         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_EnumPrinterData_data);
35627
35628         return offset;
35629 }
35630
35631 static int
35632 spoolss_dissect_element_EnumPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35633 {
35634         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data__);
35635
35636         return offset;
35637 }
35638
35639 static int
35640 spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35641 {
35642         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data, 0);
35643
35644         return offset;
35645 }
35646
35647 static int
35648 spoolss_dissect_element_EnumPrinterData_data_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35649 {
35650         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data_offered, 0);
35651
35652         return offset;
35653 }
35654
35655 static int
35656 spoolss_dissect_element_EnumPrinterData_data_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35657 {
35658         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data_needed_, NDR_POINTER_REF, "Pointer to Data Needed (uint32)",hf_spoolss_spoolss_EnumPrinterData_data_needed);
35659
35660         return offset;
35661 }
35662
35663 static int
35664 spoolss_dissect_element_EnumPrinterData_data_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35665 {
35666         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data_needed, 0);
35667
35668         return offset;
35669 }
35670
35671 /* IDL: WERROR spoolss_EnumPrinterData( */
35672 /* IDL: [in] [ref] policy_handle *handle, */
35673 /* IDL: [in] uint32 enum_index, */
35674 /* IDL: [out] [charset(UTF16)] [size_is(value_offered/2)] uint16 value_name[*], */
35675 /* IDL: [in] uint32 value_offered, */
35676 /* IDL: [out] [ref] uint32 *value_needed, */
35677 /* IDL: [out] [ref] winreg_Type *type, */
35678 /* IDL: [out] [ref] [flag(LIBNDR_PRINT_ARRAY_HEX)] [size_is(data_offered)] uint8 *data, */
35679 /* IDL: [in] uint32 data_offered, */
35680 /* IDL: [out] [ref] uint32 *data_needed */
35681 /* IDL: ); */
35682
35683 static int
35684 spoolss_dissect_EnumPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35685 {
35686         guint32 status;
35687
35688         pinfo->dcerpc_procedure_name="EnumPrinterData";
35689         offset = spoolss_dissect_element_EnumPrinterData_value_name(tvb, offset, pinfo, tree, drep);
35690         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35691
35692         offset = spoolss_dissect_element_EnumPrinterData_value_needed(tvb, offset, pinfo, tree, drep);
35693         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35694
35695         offset = spoolss_dissect_element_EnumPrinterData_type(tvb, offset, pinfo, tree, drep);
35696         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35697
35698         offset = spoolss_dissect_element_EnumPrinterData_data(tvb, offset, pinfo, tree, drep);
35699         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35700
35701         offset = spoolss_dissect_element_EnumPrinterData_data_needed(tvb, offset, pinfo, tree, drep);
35702         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35703
35704         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35705
35706         if (status != 0)
35707                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35708
35709         return offset;
35710 }
35711
35712 static int
35713 spoolss_dissect_EnumPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35714 {
35715         pinfo->dcerpc_procedure_name="EnumPrinterData";
35716         offset = spoolss_dissect_element_EnumPrinterData_handle(tvb, offset, pinfo, tree, drep);
35717         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35718         offset = spoolss_dissect_element_EnumPrinterData_enum_index(tvb, offset, pinfo, tree, drep);
35719         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35720         offset = spoolss_dissect_element_EnumPrinterData_value_offered(tvb, offset, pinfo, tree, drep);
35721         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35722         offset = spoolss_dissect_element_EnumPrinterData_data_offered(tvb, offset, pinfo, tree, drep);
35723         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35724         return offset;
35725 }
35726
35727 static int
35728 spoolss_dissect_element_DeletePrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35729 {
35730         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterData_handle);
35731
35732         return offset;
35733 }
35734
35735 static int
35736 spoolss_dissect_element_DeletePrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35737 {
35738         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterData_handle, 0);
35739
35740         return offset;
35741 }
35742
35743 static int
35744 spoolss_dissect_element_DeletePrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35745 {
35746         char *data;
35747
35748         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterData_value_name, FALSE, &data);
35749         proto_item_append_text(tree, ": %s", data);
35750
35751         return offset;
35752 }
35753
35754 /* IDL: WERROR spoolss_DeletePrinterData( */
35755 /* IDL: [in] [ref] policy_handle *handle, */
35756 /* IDL: [in] [charset(UTF16)] uint16 value_name[*] */
35757 /* IDL: ); */
35758
35759 static int
35760 spoolss_dissect_DeletePrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35761 {
35762         guint32 status;
35763
35764         pinfo->dcerpc_procedure_name="DeletePrinterData";
35765         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35766
35767         if (status != 0)
35768                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35769
35770         return offset;
35771 }
35772
35773 static int
35774 spoolss_dissect_DeletePrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35775 {
35776         pinfo->dcerpc_procedure_name="DeletePrinterData";
35777         offset = spoolss_dissect_element_DeletePrinterData_handle(tvb, offset, pinfo, tree, drep);
35778         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35779         offset = spoolss_dissect_element_DeletePrinterData_value_name(tvb, offset, pinfo, tree, drep);
35780         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35781         return offset;
35782 }
35783
35784 /* IDL: WERROR spoolss_4a( */
35785 /* IDL:  */
35786 /* IDL: ); */
35787
35788 static int
35789 spoolss_dissect_4a_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35790 {
35791         guint32 status;
35792
35793         pinfo->dcerpc_procedure_name="4a";
35794         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35795
35796         if (status != 0)
35797                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35798
35799         return offset;
35800 }
35801
35802 static int
35803 spoolss_dissect_4a_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35804 {
35805         pinfo->dcerpc_procedure_name="4a";
35806         return offset;
35807 }
35808
35809 /* IDL: WERROR spoolss_4b( */
35810 /* IDL:  */
35811 /* IDL: ); */
35812
35813 static int
35814 spoolss_dissect_4b_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35815 {
35816         guint32 status;
35817
35818         pinfo->dcerpc_procedure_name="4b";
35819         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35820
35821         if (status != 0)
35822                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35823
35824         return offset;
35825 }
35826
35827 static int
35828 spoolss_dissect_4b_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35829 {
35830         pinfo->dcerpc_procedure_name="4b";
35831         return offset;
35832 }
35833
35834 /* IDL: WERROR spoolss_4c( */
35835 /* IDL:  */
35836 /* IDL: ); */
35837
35838 static int
35839 spoolss_dissect_4c_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35840 {
35841         guint32 status;
35842
35843         pinfo->dcerpc_procedure_name="4c";
35844         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35845
35846         if (status != 0)
35847                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35848
35849         return offset;
35850 }
35851
35852 static int
35853 spoolss_dissect_4c_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35854 {
35855         pinfo->dcerpc_procedure_name="4c";
35856         return offset;
35857 }
35858
35859 static int
35860 spoolss_dissect_element_SetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35861 {
35862         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetPrinterDataEx_handle);
35863
35864         return offset;
35865 }
35866
35867 static int
35868 spoolss_dissect_element_SetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35869 {
35870         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_handle, 0);
35871
35872         return offset;
35873 }
35874
35875 static int
35876 spoolss_dissect_element_SetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35877 {
35878         char *data;
35879
35880         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterDataEx_key_name, FALSE, &data);
35881         proto_item_append_text(tree, ": %s", data);
35882
35883         return offset;
35884 }
35885
35886 static int
35887 spoolss_dissect_element_SetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35888 {
35889         char *data;
35890
35891         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterDataEx_value_name, FALSE, &data);
35892         proto_item_append_text(tree, ": %s", data);
35893
35894         return offset;
35895 }
35896
35897 static int
35898 spoolss_dissect_element_SetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35899 {
35900         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_type, 0);
35901
35902         return offset;
35903 }
35904
35905 static int
35906 spoolss_dissect_element_SetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35907 {
35908         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_SetPrinterDataEx_data);
35909
35910         return offset;
35911 }
35912
35913 static int
35914 spoolss_dissect_element_SetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35915 {
35916         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_data__);
35917
35918         return offset;
35919 }
35920
35921 static int
35922 spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35923 {
35924         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_data, 0);
35925
35926         return offset;
35927 }
35928
35929 static int
35930 spoolss_dissect_element_SetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35931 {
35932         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_offered, 0);
35933
35934         return offset;
35935 }
35936
35937 /* IDL: WERROR spoolss_SetPrinterDataEx( */
35938 /* IDL: [in] [ref] policy_handle *handle, */
35939 /* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
35940 /* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
35941 /* IDL: [in] winreg_Type type, */
35942 /* IDL: [ref] [in] [size_is(offered)] uint8 *data, */
35943 /* IDL: [in] uint32 offered */
35944 /* IDL: ); */
35945
35946 static int
35947 spoolss_dissect_SetPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35948 {
35949         guint32 status;
35950
35951         pinfo->dcerpc_procedure_name="SetPrinterDataEx";
35952         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
35953
35954         if (status != 0)
35955                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
35956
35957         return offset;
35958 }
35959
35960 static int
35961 spoolss_dissect_SetPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35962 {
35963         pinfo->dcerpc_procedure_name="SetPrinterDataEx";
35964         offset = spoolss_dissect_element_SetPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
35965         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35966         offset = spoolss_dissect_element_SetPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
35967         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35968         offset = spoolss_dissect_element_SetPrinterDataEx_value_name(tvb, offset, pinfo, tree, drep);
35969         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35970         offset = spoolss_dissect_element_SetPrinterDataEx_type(tvb, offset, pinfo, tree, drep);
35971         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35972         offset = spoolss_dissect_element_SetPrinterDataEx_data(tvb, offset, pinfo, tree, drep);
35973         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35974         offset = spoolss_dissect_element_SetPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
35975         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
35976         return offset;
35977 }
35978
35979 static int
35980 spoolss_dissect_element_GetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35981 {
35982         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterDataEx_handle);
35983
35984         return offset;
35985 }
35986
35987 static int
35988 spoolss_dissect_element_GetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35989 {
35990         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_handle, 0);
35991
35992         return offset;
35993 }
35994
35995 static int
35996 spoolss_dissect_element_GetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
35997 {
35998         char *data;
35999
36000         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDataEx_key_name, FALSE, &data);
36001         proto_item_append_text(tree, ": %s", data);
36002
36003         return offset;
36004 }
36005
36006 static int
36007 spoolss_dissect_element_GetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36008 {
36009         char *data;
36010
36011         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDataEx_value_name, FALSE, &data);
36012         proto_item_append_text(tree, ": %s", data);
36013
36014         return offset;
36015 }
36016
36017 static int
36018 spoolss_dissect_element_GetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36019 {
36020         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_type_, NDR_POINTER_REF, "Pointer to Type (winreg_Type)",hf_spoolss_spoolss_GetPrinterDataEx_type);
36021
36022         return offset;
36023 }
36024
36025 static int
36026 spoolss_dissect_element_GetPrinterDataEx_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36027 {
36028         offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_type, 0);
36029
36030         return offset;
36031 }
36032
36033 static int
36034 spoolss_dissect_element_GetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36035 {
36036         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_GetPrinterDataEx_data);
36037
36038         return offset;
36039 }
36040
36041 static int
36042 spoolss_dissect_element_GetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36043 {
36044         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_data__);
36045
36046         return offset;
36047 }
36048
36049 static int
36050 spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36051 {
36052         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_data, 0);
36053
36054         return offset;
36055 }
36056
36057 static int
36058 spoolss_dissect_element_GetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36059 {
36060         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_offered, 0);
36061
36062         return offset;
36063 }
36064
36065 static int
36066 spoolss_dissect_element_GetPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36067 {
36068         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDataEx_needed);
36069
36070         return offset;
36071 }
36072
36073 static int
36074 spoolss_dissect_element_GetPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36075 {
36076         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_needed, 0);
36077
36078         return offset;
36079 }
36080
36081 /* IDL: WERROR spoolss_GetPrinterDataEx( */
36082 /* IDL: [in] [ref] policy_handle *handle, */
36083 /* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
36084 /* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
36085 /* IDL: [out] [ref] winreg_Type *type, */
36086 /* IDL: [out] [ref] [size_is(offered)] uint8 *data, */
36087 /* IDL: [in] uint32 offered, */
36088 /* IDL: [out] [ref] uint32 *needed */
36089 /* IDL: ); */
36090
36091 static int
36092 spoolss_dissect_GetPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36093 {
36094         guint32 status;
36095
36096         pinfo->dcerpc_procedure_name="GetPrinterDataEx";
36097         offset = spoolss_dissect_element_GetPrinterDataEx_type(tvb, offset, pinfo, tree, drep);
36098         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36099
36100         offset = spoolss_dissect_element_GetPrinterDataEx_data(tvb, offset, pinfo, tree, drep);
36101         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36102
36103         offset = spoolss_dissect_element_GetPrinterDataEx_needed(tvb, offset, pinfo, tree, drep);
36104         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36105
36106         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36107
36108         if (status != 0)
36109                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36110
36111         return offset;
36112 }
36113
36114 static int
36115 spoolss_dissect_GetPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36116 {
36117         pinfo->dcerpc_procedure_name="GetPrinterDataEx";
36118         offset = spoolss_dissect_element_GetPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
36119         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36120         offset = spoolss_dissect_element_GetPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
36121         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36122         offset = spoolss_dissect_element_GetPrinterDataEx_value_name(tvb, offset, pinfo, tree, drep);
36123         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36124         offset = spoolss_dissect_element_GetPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
36125         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36126         return offset;
36127 }
36128
36129 static int
36130 spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36131 {
36132         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss__spoolss_EnumPrinterDataEx_handle);
36133
36134         return offset;
36135 }
36136
36137 static int
36138 spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36139 {
36140         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_handle, 0);
36141
36142         return offset;
36143 }
36144
36145 static int
36146 spoolss_dissect_element__spoolss_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36147 {
36148         char *data;
36149
36150         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinterDataEx_key_name, FALSE, &data);
36151         proto_item_append_text(tree, ": %s", data);
36152
36153         return offset;
36154 }
36155
36156 static int
36157 spoolss_dissect_element__spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36158 {
36159         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_info, 0);
36160
36161         return offset;
36162 }
36163
36164 static int
36165 spoolss_dissect_element__spoolss_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36166 {
36167         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_offered, 0);
36168
36169         return offset;
36170 }
36171
36172 static int
36173 spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36174 {
36175         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrinterDataEx_needed);
36176
36177         return offset;
36178 }
36179
36180 static int
36181 spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36182 {
36183         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_needed, 0);
36184
36185         return offset;
36186 }
36187
36188 static int
36189 spoolss_dissect_element__spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36190 {
36191         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDataEx_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrinterDataEx_count);
36192
36193         return offset;
36194 }
36195
36196 static int
36197 spoolss_dissect_element__spoolss_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36198 {
36199         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_count, 0);
36200
36201         return offset;
36202 }
36203
36204 /* IDL: WERROR _spoolss_EnumPrinterDataEx( */
36205 /* IDL: [in] [ref] policy_handle *handle, */
36206 /* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
36207 /* IDL: [out] DATA_BLOB info, */
36208 /* IDL: [in] uint32 offered, */
36209 /* IDL: [out] [ref] uint32 *needed, */
36210 /* IDL: [out] [ref] uint32 *count */
36211 /* IDL: ); */
36212
36213 static int
36214 spoolss_dissect__spoolss_EnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36215 {
36216         guint32 status;
36217
36218         pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDataEx";
36219         offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_info(tvb, offset, pinfo, tree, drep);
36220         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36221
36222         offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed(tvb, offset, pinfo, tree, drep);
36223         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36224
36225         offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_count(tvb, offset, pinfo, tree, drep);
36226         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36227
36228         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36229
36230         if (status != 0)
36231                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36232
36233         return offset;
36234 }
36235
36236 static int
36237 spoolss_dissect__spoolss_EnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36238 {
36239         pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDataEx";
36240         offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
36241         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36242         offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
36243         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36244         offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
36245         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36246         return offset;
36247 }
36248
36249 static int
36250 spoolss_dissect_element___spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36251 {
36252         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDataEx_count, 0);
36253
36254         return offset;
36255 }
36256
36257 static int
36258 spoolss_dissect_element___spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36259 {
36260
36261         return offset;
36262 }
36263
36264 static int
36265 spoolss_dissect_element___spoolss_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36266 {
36267         offset = spoolss_dissect_struct_PrinterEnumValues(tvb,offset,pinfo,tree,drep,hf_spoolss___spoolss_EnumPrinterDataEx_info,0);
36268
36269         return offset;
36270 }
36271
36272 /* IDL: void __spoolss_EnumPrinterDataEx( */
36273 /* IDL: [in] uint32 count, */
36274 /* IDL: [out] spoolss_PrinterEnumValues info[count] */
36275 /* IDL: ); */
36276
36277 static int
36278 spoolss_dissect___spoolss_EnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36279 {
36280         pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDataEx";
36281         offset = spoolss_dissect_element___spoolss_EnumPrinterDataEx_info(tvb, offset, pinfo, tree, drep);
36282         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36283
36284         return offset;
36285 }
36286
36287 static int
36288 spoolss_dissect___spoolss_EnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36289 {
36290         pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDataEx";
36291         offset = spoolss_dissect_element___spoolss_EnumPrinterDataEx_count(tvb, offset, pinfo, tree, drep);
36292         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36293         return offset;
36294 }
36295
36296 static int
36297 spoolss_dissect_element_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36298 {
36299         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumPrinterDataEx_handle);
36300
36301         return offset;
36302 }
36303
36304 static int
36305 spoolss_dissect_element_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36306 {
36307         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_handle, 0);
36308
36309         return offset;
36310 }
36311
36312 static int
36313 spoolss_dissect_element_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36314 {
36315         char *data;
36316
36317         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterDataEx_key_name, FALSE, &data);
36318         proto_item_append_text(tree, ": %s", data);
36319
36320         return offset;
36321 }
36322
36323 static int
36324 spoolss_dissect_element_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36325 {
36326         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_offered, 0);
36327
36328         return offset;
36329 }
36330
36331 static int
36332 spoolss_dissect_element_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36333 {
36334         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrinterDataEx_count);
36335
36336         return offset;
36337 }
36338
36339 static int
36340 spoolss_dissect_element_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36341 {
36342         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_count, 0);
36343
36344         return offset;
36345 }
36346
36347 static int
36348 spoolss_dissect_element_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36349 {
36350         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrinterEnumValues)",hf_spoolss_spoolss_EnumPrinterDataEx_info);
36351
36352         return offset;
36353 }
36354
36355 static int
36356 spoolss_dissect_element_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36357 {
36358         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrinterEnumValues)",hf_spoolss_spoolss_EnumPrinterDataEx_info);
36359
36360         return offset;
36361 }
36362
36363 static int
36364 spoolss_dissect_element_EnumPrinterDataEx_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36365 {
36366         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_info___);
36367
36368         return offset;
36369 }
36370
36371 static int
36372 spoolss_dissect_element_EnumPrinterDataEx_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36373 {
36374         offset = spoolss_dissect_struct_PrinterEnumValues(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_EnumPrinterDataEx_info,0);
36375
36376         return offset;
36377 }
36378
36379 static int
36380 spoolss_dissect_element_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36381 {
36382         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinterDataEx_needed);
36383
36384         return offset;
36385 }
36386
36387 static int
36388 spoolss_dissect_element_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36389 {
36390         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_needed, 0);
36391
36392         return offset;
36393 }
36394
36395 /* IDL: WERROR spoolss_EnumPrinterDataEx( */
36396 /* IDL: [in] [ref] policy_handle *handle, */
36397 /* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
36398 /* IDL: [in] uint32 offered, */
36399 /* IDL: [out] [ref] uint32 *count, */
36400 /* IDL: [out] [ref] [size_is(,*count)] spoolss_PrinterEnumValues **info, */
36401 /* IDL: [out] [ref] uint32 *needed */
36402 /* IDL: ); */
36403
36404 static int
36405 spoolss_dissect_EnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36406 {
36407         guint32 status;
36408
36409         pinfo->dcerpc_procedure_name="EnumPrinterDataEx";
36410         offset = spoolss_dissect_element_EnumPrinterDataEx_count(tvb, offset, pinfo, tree, drep);
36411         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36412
36413         offset = spoolss_dissect_element_EnumPrinterDataEx_info(tvb, offset, pinfo, tree, drep);
36414         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36415
36416         offset = spoolss_dissect_element_EnumPrinterDataEx_needed(tvb, offset, pinfo, tree, drep);
36417         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36418
36419         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36420
36421         if (status != 0)
36422                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36423
36424         return offset;
36425 }
36426
36427 static int
36428 spoolss_dissect_EnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36429 {
36430         pinfo->dcerpc_procedure_name="EnumPrinterDataEx";
36431         offset = spoolss_dissect_element_EnumPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
36432         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36433         offset = spoolss_dissect_element_EnumPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
36434         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36435         offset = spoolss_dissect_element_EnumPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
36436         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36437         return offset;
36438 }
36439
36440 static int
36441 spoolss_dissect_element_EnumPrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36442 {
36443         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumPrinterKey_handle);
36444
36445         return offset;
36446 }
36447
36448 static int
36449 spoolss_dissect_element_EnumPrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36450 {
36451         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_handle, 0);
36452
36453         return offset;
36454 }
36455
36456 static int
36457 spoolss_dissect_element_EnumPrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36458 {
36459         char *data;
36460
36461         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterKey_key_name, FALSE, &data);
36462         proto_item_append_text(tree, ": %s", data);
36463
36464         return offset;
36465 }
36466
36467 static int
36468 spoolss_dissect_element_EnumPrinterKey__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36469 {
36470         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey__ndr_size_, NDR_POINTER_REF, "Pointer to  Ndr Size (uint32)",hf_spoolss_spoolss_EnumPrinterKey__ndr_size);
36471
36472         return offset;
36473 }
36474
36475 static int
36476 spoolss_dissect_element_EnumPrinterKey__ndr_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36477 {
36478         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey__ndr_size, 0);
36479
36480         return offset;
36481 }
36482
36483 static int
36484 spoolss_dissect_element_EnumPrinterKey_key_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36485 {
36486         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey_key_buffer_, NDR_POINTER_REF, "Pointer to Key Buffer (spoolss_KeyNames)",hf_spoolss_spoolss_EnumPrinterKey_key_buffer);
36487
36488         return offset;
36489 }
36490
36491 static int
36492 spoolss_dissect_element_EnumPrinterKey_key_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36493 {
36494         dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
36495         guint0 size;
36496         int conformant = di->conformant_run;
36497         tvbuff_t *subtvb;
36498
36499         if (!conformant) {
36500                 guint32 saved_flags = di->call_data->flags;
36501                 offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_key_buffer_, &size);
36502                 di->call_data->flags &= ~DCERPC_IS_NDR64;
36503                 subtvb = tvb_new_subset(tvb, offset, size, -1);
36504                 spoolss_dissect_element_EnumPrinterKey_key_buffer__(subtvb, 0, pinfo, tree, drep);
36505                 offset += size;
36506                 di->call_data->flags = saved_flags;
36507         }
36508
36509         return offset;
36510 }
36511
36512 static int
36513 spoolss_dissect_element_EnumPrinterKey_key_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36514 {
36515         offset = spoolss_dissect_KeyNames(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_key_buffer, *0);
36516
36517         return offset;
36518 }
36519
36520 static int
36521 spoolss_dissect_element_EnumPrinterKey_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36522 {
36523         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_offered, 0);
36524
36525         return offset;
36526 }
36527
36528 static int
36529 spoolss_dissect_element_EnumPrinterKey_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36530 {
36531         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinterKey_needed);
36532
36533         return offset;
36534 }
36535
36536 static int
36537 spoolss_dissect_element_EnumPrinterKey_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36538 {
36539         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_needed, 0);
36540
36541         return offset;
36542 }
36543
36544 /* IDL: WERROR spoolss_EnumPrinterKey( */
36545 /* IDL: [in] [ref] policy_handle *handle, */
36546 /* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
36547 /* IDL: [out] [ref] uint32 *_ndr_size, */
36548 /* IDL: [out] [subcontext_size(*_ndr_size*2)] [ref] [subcontext(0)] [switch_is(*_ndr_size)] spoolss_KeyNames *key_buffer, */
36549 /* IDL: [in] uint32 offered, */
36550 /* IDL: [out] [ref] uint32 *needed */
36551 /* IDL: ); */
36552
36553 static int
36554 spoolss_dissect_EnumPrinterKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36555 {
36556         guint32 status;
36557
36558         pinfo->dcerpc_procedure_name="EnumPrinterKey";
36559         offset = spoolss_dissect_element_EnumPrinterKey__ndr_size(tvb, offset, pinfo, tree, drep);
36560         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36561
36562         offset = spoolss_dissect_element_EnumPrinterKey_key_buffer(tvb, offset, pinfo, tree, drep);
36563         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36564
36565         offset = spoolss_dissect_element_EnumPrinterKey_needed(tvb, offset, pinfo, tree, drep);
36566         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36567
36568         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36569
36570         if (status != 0)
36571                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36572
36573         return offset;
36574 }
36575
36576 static int
36577 spoolss_dissect_EnumPrinterKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36578 {
36579         pinfo->dcerpc_procedure_name="EnumPrinterKey";
36580         offset = spoolss_dissect_element_EnumPrinterKey_handle(tvb, offset, pinfo, tree, drep);
36581         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36582         offset = spoolss_dissect_element_EnumPrinterKey_key_name(tvb, offset, pinfo, tree, drep);
36583         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36584         offset = spoolss_dissect_element_EnumPrinterKey_offered(tvb, offset, pinfo, tree, drep);
36585         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36586         return offset;
36587 }
36588
36589 static int
36590 spoolss_dissect_element_DeletePrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36591 {
36592         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterDataEx_handle);
36593
36594         return offset;
36595 }
36596
36597 static int
36598 spoolss_dissect_element_DeletePrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36599 {
36600         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterDataEx_handle, 0);
36601
36602         return offset;
36603 }
36604
36605 static int
36606 spoolss_dissect_element_DeletePrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36607 {
36608         char *data;
36609
36610         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDataEx_key_name, FALSE, &data);
36611         proto_item_append_text(tree, ": %s", data);
36612
36613         return offset;
36614 }
36615
36616 static int
36617 spoolss_dissect_element_DeletePrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36618 {
36619         char *data;
36620
36621         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDataEx_value_name, FALSE, &data);
36622         proto_item_append_text(tree, ": %s", data);
36623
36624         return offset;
36625 }
36626
36627 /* IDL: WERROR spoolss_DeletePrinterDataEx( */
36628 /* IDL: [in] [ref] policy_handle *handle, */
36629 /* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
36630 /* IDL: [in] [charset(UTF16)] uint16 value_name[*] */
36631 /* IDL: ); */
36632
36633 static int
36634 spoolss_dissect_DeletePrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36635 {
36636         guint32 status;
36637
36638         pinfo->dcerpc_procedure_name="DeletePrinterDataEx";
36639         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36640
36641         if (status != 0)
36642                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36643
36644         return offset;
36645 }
36646
36647 static int
36648 spoolss_dissect_DeletePrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36649 {
36650         pinfo->dcerpc_procedure_name="DeletePrinterDataEx";
36651         offset = spoolss_dissect_element_DeletePrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
36652         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36653         offset = spoolss_dissect_element_DeletePrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
36654         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36655         offset = spoolss_dissect_element_DeletePrinterDataEx_value_name(tvb, offset, pinfo, tree, drep);
36656         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36657         return offset;
36658 }
36659
36660 static int
36661 spoolss_dissect_element_DeletePrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36662 {
36663         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterKey_handle);
36664
36665         return offset;
36666 }
36667
36668 static int
36669 spoolss_dissect_element_DeletePrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36670 {
36671         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterKey_handle, 0);
36672
36673         return offset;
36674 }
36675
36676 static int
36677 spoolss_dissect_element_DeletePrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36678 {
36679         char *data;
36680
36681         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterKey_key_name, FALSE, &data);
36682         proto_item_append_text(tree, ": %s", data);
36683
36684         return offset;
36685 }
36686
36687 /* IDL: WERROR spoolss_DeletePrinterKey( */
36688 /* IDL: [in] [ref] policy_handle *handle, */
36689 /* IDL: [in] [charset(UTF16)] uint16 key_name[*] */
36690 /* IDL: ); */
36691
36692 static int
36693 spoolss_dissect_DeletePrinterKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36694 {
36695         guint32 status;
36696
36697         pinfo->dcerpc_procedure_name="DeletePrinterKey";
36698         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36699
36700         if (status != 0)
36701                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36702
36703         return offset;
36704 }
36705
36706 static int
36707 spoolss_dissect_DeletePrinterKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36708 {
36709         pinfo->dcerpc_procedure_name="DeletePrinterKey";
36710         offset = spoolss_dissect_element_DeletePrinterKey_handle(tvb, offset, pinfo, tree, drep);
36711         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36712         offset = spoolss_dissect_element_DeletePrinterKey_key_name(tvb, offset, pinfo, tree, drep);
36713         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36714         return offset;
36715 }
36716
36717 /* IDL: WERROR spoolss_53( */
36718 /* IDL:  */
36719 /* IDL: ); */
36720
36721 static int
36722 spoolss_dissect_53_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36723 {
36724         guint32 status;
36725
36726         pinfo->dcerpc_procedure_name="53";
36727         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36728
36729         if (status != 0)
36730                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36731
36732         return offset;
36733 }
36734
36735 static int
36736 spoolss_dissect_53_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36737 {
36738         pinfo->dcerpc_procedure_name="53";
36739         return offset;
36740 }
36741
36742 static int
36743 spoolss_dissect_element_DeletePrinterDriverEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36744 {
36745         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterDriverEx_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePrinterDriverEx_server);
36746
36747         return offset;
36748 }
36749
36750 static int
36751 spoolss_dissect_element_DeletePrinterDriverEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36752 {
36753         char *data;
36754
36755         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriverEx_server, FALSE, &data);
36756         proto_item_append_text(tree, ": %s", data);
36757
36758         return offset;
36759 }
36760
36761 static int
36762 spoolss_dissect_element_DeletePrinterDriverEx_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36763 {
36764         char *data;
36765
36766         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriverEx_architecture, FALSE, &data);
36767         proto_item_append_text(tree, ": %s", data);
36768
36769         return offset;
36770 }
36771
36772 static int
36773 spoolss_dissect_element_DeletePrinterDriverEx_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36774 {
36775         char *data;
36776
36777         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriverEx_driver, FALSE, &data);
36778         proto_item_append_text(tree, ": %s", data);
36779
36780         return offset;
36781 }
36782
36783 static int
36784 spoolss_dissect_element_DeletePrinterDriverEx_delete_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36785 {
36786         offset = spoolss_dissect_bitmap_DeleteDriverFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterDriverEx_delete_flags, 0);
36787
36788         return offset;
36789 }
36790
36791 static int
36792 spoolss_dissect_element_DeletePrinterDriverEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36793 {
36794         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterDriverEx_version, 0);
36795
36796         return offset;
36797 }
36798
36799 /* IDL: WERROR spoolss_DeletePrinterDriverEx( */
36800 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
36801 /* IDL: [in] [charset(UTF16)] uint16 architecture[*], */
36802 /* IDL: [in] [charset(UTF16)] uint16 driver[*], */
36803 /* IDL: [in] spoolss_DeleteDriverFlags delete_flags, */
36804 /* IDL: [in] uint32 version */
36805 /* IDL: ); */
36806
36807 static int
36808 spoolss_dissect_DeletePrinterDriverEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36809 {
36810         guint32 status;
36811
36812         pinfo->dcerpc_procedure_name="DeletePrinterDriverEx";
36813         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36814
36815         if (status != 0)
36816                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36817
36818         return offset;
36819 }
36820
36821 static int
36822 spoolss_dissect_DeletePrinterDriverEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36823 {
36824         pinfo->dcerpc_procedure_name="DeletePrinterDriverEx";
36825         offset = spoolss_dissect_element_DeletePrinterDriverEx_server(tvb, offset, pinfo, tree, drep);
36826         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36827         offset = spoolss_dissect_element_DeletePrinterDriverEx_architecture(tvb, offset, pinfo, tree, drep);
36828         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36829         offset = spoolss_dissect_element_DeletePrinterDriverEx_driver(tvb, offset, pinfo, tree, drep);
36830         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36831         offset = spoolss_dissect_element_DeletePrinterDriverEx_delete_flags(tvb, offset, pinfo, tree, drep);
36832         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36833         offset = spoolss_dissect_element_DeletePrinterDriverEx_version(tvb, offset, pinfo, tree, drep);
36834         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36835         return offset;
36836 }
36837
36838 static int
36839 spoolss_dissect_element_AddPerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36840 {
36841         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_server);
36842
36843         return offset;
36844 }
36845
36846 static int
36847 spoolss_dissect_element_AddPerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36848 {
36849         char *data;
36850
36851         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_server, FALSE, &data);
36852         proto_item_append_text(tree, ": %s", data);
36853
36854         return offset;
36855 }
36856
36857 static int
36858 spoolss_dissect_element_AddPerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36859 {
36860         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_printername_, NDR_POINTER_REF, "Pointer to Printername (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_printername);
36861
36862         return offset;
36863 }
36864
36865 static int
36866 spoolss_dissect_element_AddPerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36867 {
36868         char *data;
36869
36870         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_printername, FALSE, &data);
36871         proto_item_append_text(tree, ": %s", data);
36872
36873         return offset;
36874 }
36875
36876 static int
36877 spoolss_dissect_element_AddPerMachineConnection_printserver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36878 {
36879         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_printserver_, NDR_POINTER_REF, "Pointer to Printserver (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_printserver);
36880
36881         return offset;
36882 }
36883
36884 static int
36885 spoolss_dissect_element_AddPerMachineConnection_printserver_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36886 {
36887         char *data;
36888
36889         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_printserver, FALSE, &data);
36890         proto_item_append_text(tree, ": %s", data);
36891
36892         return offset;
36893 }
36894
36895 static int
36896 spoolss_dissect_element_AddPerMachineConnection_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36897 {
36898         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_provider_, NDR_POINTER_REF, "Pointer to Provider (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_provider);
36899
36900         return offset;
36901 }
36902
36903 static int
36904 spoolss_dissect_element_AddPerMachineConnection_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36905 {
36906         char *data;
36907
36908         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_provider, FALSE, &data);
36909         proto_item_append_text(tree, ": %s", data);
36910
36911         return offset;
36912 }
36913
36914 /* IDL: WERROR spoolss_AddPerMachineConnection( */
36915 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
36916 /* IDL: [ref] [in] [charset(UTF16)] uint16 *printername, */
36917 /* IDL: [ref] [in] [charset(UTF16)] uint16 *printserver, */
36918 /* IDL: [ref] [in] [charset(UTF16)] uint16 *provider */
36919 /* IDL: ); */
36920
36921 static int
36922 spoolss_dissect_AddPerMachineConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36923 {
36924         guint32 status;
36925
36926         pinfo->dcerpc_procedure_name="AddPerMachineConnection";
36927         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
36928
36929         if (status != 0)
36930                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
36931
36932         return offset;
36933 }
36934
36935 static int
36936 spoolss_dissect_AddPerMachineConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36937 {
36938         pinfo->dcerpc_procedure_name="AddPerMachineConnection";
36939         offset = spoolss_dissect_element_AddPerMachineConnection_server(tvb, offset, pinfo, tree, drep);
36940         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36941         offset = spoolss_dissect_element_AddPerMachineConnection_printername(tvb, offset, pinfo, tree, drep);
36942         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36943         offset = spoolss_dissect_element_AddPerMachineConnection_printserver(tvb, offset, pinfo, tree, drep);
36944         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36945         offset = spoolss_dissect_element_AddPerMachineConnection_provider(tvb, offset, pinfo, tree, drep);
36946         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
36947         return offset;
36948 }
36949
36950 static int
36951 spoolss_dissect_element_DeletePerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36952 {
36953         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePerMachineConnection_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePerMachineConnection_server);
36954
36955         return offset;
36956 }
36957
36958 static int
36959 spoolss_dissect_element_DeletePerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36960 {
36961         char *data;
36962
36963         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePerMachineConnection_server, FALSE, &data);
36964         proto_item_append_text(tree, ": %s", data);
36965
36966         return offset;
36967 }
36968
36969 static int
36970 spoolss_dissect_element_DeletePerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36971 {
36972         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePerMachineConnection_printername_, NDR_POINTER_REF, "Pointer to Printername (uint16)",hf_spoolss_spoolss_DeletePerMachineConnection_printername);
36973
36974         return offset;
36975 }
36976
36977 static int
36978 spoolss_dissect_element_DeletePerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36979 {
36980         char *data;
36981
36982         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePerMachineConnection_printername, FALSE, &data);
36983         proto_item_append_text(tree, ": %s", data);
36984
36985         return offset;
36986 }
36987
36988 /* IDL: WERROR spoolss_DeletePerMachineConnection( */
36989 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
36990 /* IDL: [ref] [in] [charset(UTF16)] uint16 *printername */
36991 /* IDL: ); */
36992
36993 static int
36994 spoolss_dissect_DeletePerMachineConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
36995 {
36996         guint32 status;
36997
36998         pinfo->dcerpc_procedure_name="DeletePerMachineConnection";
36999         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37000
37001         if (status != 0)
37002                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37003
37004         return offset;
37005 }
37006
37007 static int
37008 spoolss_dissect_DeletePerMachineConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37009 {
37010         pinfo->dcerpc_procedure_name="DeletePerMachineConnection";
37011         offset = spoolss_dissect_element_DeletePerMachineConnection_server(tvb, offset, pinfo, tree, drep);
37012         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37013         offset = spoolss_dissect_element_DeletePerMachineConnection_printername(tvb, offset, pinfo, tree, drep);
37014         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37015         return offset;
37016 }
37017
37018 /* IDL: WERROR spoolss_EnumPerMachineConnections( */
37019 /* IDL:  */
37020 /* IDL: ); */
37021
37022 static int
37023 spoolss_dissect_EnumPerMachineConnections_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37024 {
37025         guint32 status;
37026
37027         pinfo->dcerpc_procedure_name="EnumPerMachineConnections";
37028         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37029
37030         if (status != 0)
37031                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37032
37033         return offset;
37034 }
37035
37036 static int
37037 spoolss_dissect_EnumPerMachineConnections_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37038 {
37039         pinfo->dcerpc_procedure_name="EnumPerMachineConnections";
37040         return offset;
37041 }
37042
37043 static int
37044 spoolss_dissect_element_XcvData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37045 {
37046         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_XcvData_handle);
37047
37048         return offset;
37049 }
37050
37051 static int
37052 spoolss_dissect_element_XcvData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37053 {
37054         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_handle, 0);
37055
37056         return offset;
37057 }
37058
37059 static int
37060 spoolss_dissect_element_XcvData_function_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37061 {
37062         char *data;
37063
37064         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_XcvData_function_name, FALSE, &data);
37065         proto_item_append_text(tree, ": %s", data);
37066
37067         return offset;
37068 }
37069
37070 static int
37071 spoolss_dissect_element_XcvData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37072 {
37073         offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_in_data, 0);
37074
37075         return offset;
37076 }
37077
37078 static int
37079 spoolss_dissect_element_XcvData__in_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37080 {
37081         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData__in_data_length, 0);
37082
37083         return offset;
37084 }
37085
37086 static int
37087 spoolss_dissect_element_XcvData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37088 {
37089         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_out_data_, NDR_POINTER_REF, "Pointer to Out Data (uint8)",hf_spoolss_spoolss_XcvData_out_data);
37090
37091         return offset;
37092 }
37093
37094 static int
37095 spoolss_dissect_element_XcvData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37096 {
37097         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_out_data__);
37098
37099         return offset;
37100 }
37101
37102 static int
37103 spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37104 {
37105         offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_out_data, 0);
37106
37107         return offset;
37108 }
37109
37110 static int
37111 spoolss_dissect_element_XcvData_out_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37112 {
37113         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_out_data_size, 0);
37114
37115         return offset;
37116 }
37117
37118 static int
37119 spoolss_dissect_element_XcvData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37120 {
37121         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_XcvData_needed);
37122
37123         return offset;
37124 }
37125
37126 static int
37127 spoolss_dissect_element_XcvData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37128 {
37129         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_needed, 0);
37130
37131         return offset;
37132 }
37133
37134 static int
37135 spoolss_dissect_element_XcvData_status_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37136 {
37137         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_status_code_, NDR_POINTER_REF, "Pointer to Status Code (uint32)",hf_spoolss_spoolss_XcvData_status_code);
37138
37139         return offset;
37140 }
37141
37142 static int
37143 spoolss_dissect_element_XcvData_status_code_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37144 {
37145         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_status_code, 0);
37146
37147         return offset;
37148 }
37149
37150 /* IDL: WERROR spoolss_XcvData( */
37151 /* IDL: [in] [ref] policy_handle *handle, */
37152 /* IDL: [in] [charset(UTF16)] uint16 function_name[*], */
37153 /* IDL: [in] DATA_BLOB in_data, */
37154 /* IDL: [in] [value(r->in.in_data.length)] uint32 _in_data_length, */
37155 /* IDL: [out] [ref] [size_is(out_data_size)] uint8 *out_data, */
37156 /* IDL: [in] uint32 out_data_size, */
37157 /* IDL: [out] [ref] uint32 *needed, */
37158 /* IDL: [out] [in] [ref] uint32 *status_code */
37159 /* IDL: ); */
37160
37161 static int
37162 spoolss_dissect_XcvData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37163 {
37164         guint32 status;
37165
37166         pinfo->dcerpc_procedure_name="XcvData";
37167         offset = spoolss_dissect_element_XcvData_out_data(tvb, offset, pinfo, tree, drep);
37168         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37169
37170         offset = spoolss_dissect_element_XcvData_needed(tvb, offset, pinfo, tree, drep);
37171         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37172
37173         offset = spoolss_dissect_element_XcvData_status_code(tvb, offset, pinfo, tree, drep);
37174         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37175
37176         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37177
37178         if (status != 0)
37179                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37180
37181         return offset;
37182 }
37183
37184 static int
37185 spoolss_dissect_XcvData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37186 {
37187         pinfo->dcerpc_procedure_name="XcvData";
37188         offset = spoolss_dissect_element_XcvData_handle(tvb, offset, pinfo, tree, drep);
37189         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37190         offset = spoolss_dissect_element_XcvData_function_name(tvb, offset, pinfo, tree, drep);
37191         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37192         offset = spoolss_dissect_element_XcvData_in_data(tvb, offset, pinfo, tree, drep);
37193         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37194         offset = spoolss_dissect_element_XcvData__in_data_length(tvb, offset, pinfo, tree, drep);
37195         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37196         offset = spoolss_dissect_element_XcvData_out_data_size(tvb, offset, pinfo, tree, drep);
37197         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37198         offset = spoolss_dissect_element_XcvData_status_code(tvb, offset, pinfo, tree, drep);
37199         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37200         return offset;
37201 }
37202
37203 static int
37204 spoolss_dissect_element_AddPrinterDriverEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37205 {
37206         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriverEx_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_AddPrinterDriverEx_servername);
37207
37208         return offset;
37209 }
37210
37211 static int
37212 spoolss_dissect_element_AddPrinterDriverEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37213 {
37214         char *data;
37215
37216         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinterDriverEx_servername, FALSE, &data);
37217         proto_item_append_text(tree, ": %s", data);
37218
37219         return offset;
37220 }
37221
37222 static int
37223 spoolss_dissect_element_AddPrinterDriverEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37224 {
37225         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriverEx_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddDriverInfoCtr)",hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr);
37226
37227         return offset;
37228 }
37229
37230 static int
37231 spoolss_dissect_element_AddPrinterDriverEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37232 {
37233         offset = spoolss_dissect_struct_AddDriverInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr,0);
37234
37235         return offset;
37236 }
37237
37238 static int
37239 spoolss_dissect_element_AddPrinterDriverEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37240 {
37241         offset = spoolss_dissect_bitmap_AddPrinterDriverExFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPrinterDriverEx_flags, 0);
37242
37243         return offset;
37244 }
37245
37246 /* IDL: WERROR spoolss_AddPrinterDriverEx( */
37247 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
37248 /* IDL: [in] [ref] spoolss_AddDriverInfoCtr *info_ctr, */
37249 /* IDL: [in] spoolss_AddPrinterDriverExFlags flags */
37250 /* IDL: ); */
37251
37252 static int
37253 spoolss_dissect_AddPrinterDriverEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37254 {
37255         guint32 status;
37256
37257         pinfo->dcerpc_procedure_name="AddPrinterDriverEx";
37258         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37259
37260         if (status != 0)
37261                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37262
37263         return offset;
37264 }
37265
37266 static int
37267 spoolss_dissect_AddPrinterDriverEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37268 {
37269         pinfo->dcerpc_procedure_name="AddPrinterDriverEx";
37270         offset = spoolss_dissect_element_AddPrinterDriverEx_servername(tvb, offset, pinfo, tree, drep);
37271         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37272         offset = spoolss_dissect_element_AddPrinterDriverEx_info_ctr(tvb, offset, pinfo, tree, drep);
37273         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37274         offset = spoolss_dissect_element_AddPrinterDriverEx_flags(tvb, offset, pinfo, tree, drep);
37275         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37276         return offset;
37277 }
37278
37279 /* IDL: WERROR spoolss_5a( */
37280 /* IDL:  */
37281 /* IDL: ); */
37282
37283 static int
37284 spoolss_dissect_5a_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37285 {
37286         guint32 status;
37287
37288         pinfo->dcerpc_procedure_name="5a";
37289         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37290
37291         if (status != 0)
37292                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37293
37294         return offset;
37295 }
37296
37297 static int
37298 spoolss_dissect_5a_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37299 {
37300         pinfo->dcerpc_procedure_name="5a";
37301         return offset;
37302 }
37303
37304 /* IDL: WERROR spoolss_5b( */
37305 /* IDL:  */
37306 /* IDL: ); */
37307
37308 static int
37309 spoolss_dissect_5b_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37310 {
37311         guint32 status;
37312
37313         pinfo->dcerpc_procedure_name="5b";
37314         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37315
37316         if (status != 0)
37317                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37318
37319         return offset;
37320 }
37321
37322 static int
37323 spoolss_dissect_5b_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37324 {
37325         pinfo->dcerpc_procedure_name="5b";
37326         return offset;
37327 }
37328
37329 /* IDL: WERROR spoolss_5c( */
37330 /* IDL:  */
37331 /* IDL: ); */
37332
37333 static int
37334 spoolss_dissect_5c_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37335 {
37336         guint32 status;
37337
37338         pinfo->dcerpc_procedure_name="5c";
37339         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37340
37341         if (status != 0)
37342                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37343
37344         return offset;
37345 }
37346
37347 static int
37348 spoolss_dissect_5c_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37349 {
37350         pinfo->dcerpc_procedure_name="5c";
37351         return offset;
37352 }
37353
37354 /* IDL: WERROR spoolss_5d( */
37355 /* IDL:  */
37356 /* IDL: ); */
37357
37358 static int
37359 spoolss_dissect_5d_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37360 {
37361         guint32 status;
37362
37363         pinfo->dcerpc_procedure_name="5d";
37364         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37365
37366         if (status != 0)
37367                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37368
37369         return offset;
37370 }
37371
37372 static int
37373 spoolss_dissect_5d_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37374 {
37375         pinfo->dcerpc_procedure_name="5d";
37376         return offset;
37377 }
37378
37379 /* IDL: WERROR spoolss_5e( */
37380 /* IDL:  */
37381 /* IDL: ); */
37382
37383 static int
37384 spoolss_dissect_5e_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37385 {
37386         guint32 status;
37387
37388         pinfo->dcerpc_procedure_name="5e";
37389         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37390
37391         if (status != 0)
37392                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37393
37394         return offset;
37395 }
37396
37397 static int
37398 spoolss_dissect_5e_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37399 {
37400         pinfo->dcerpc_procedure_name="5e";
37401         return offset;
37402 }
37403
37404 /* IDL: WERROR spoolss_5f( */
37405 /* IDL:  */
37406 /* IDL: ); */
37407
37408 static int
37409 spoolss_dissect_5f_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37410 {
37411         guint32 status;
37412
37413         pinfo->dcerpc_procedure_name="5f";
37414         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37415
37416         if (status != 0)
37417                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37418
37419         return offset;
37420 }
37421
37422 static int
37423 spoolss_dissect_5f_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37424 {
37425         pinfo->dcerpc_procedure_name="5f";
37426         return offset;
37427 }
37428
37429 /* IDL: WERROR spoolss_60( */
37430 /* IDL:  */
37431 /* IDL: ); */
37432
37433 static int
37434 spoolss_dissect_60_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37435 {
37436         guint32 status;
37437
37438         pinfo->dcerpc_procedure_name="60";
37439         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37440
37441         if (status != 0)
37442                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37443
37444         return offset;
37445 }
37446
37447 static int
37448 spoolss_dissect_60_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37449 {
37450         pinfo->dcerpc_procedure_name="60";
37451         return offset;
37452 }
37453
37454 static int
37455 spoolss_dissect_element_RpcSendRecvBidiData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37456 {
37457         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcSendRecvBidiData_hPrinter, 0);
37458
37459         return offset;
37460 }
37461
37462 static int
37463 spoolss_dissect_element_RpcSendRecvBidiData_pAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37464 {
37465         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_pAction_, NDR_POINTER_UNIQUE, "Pointer to Paction (uint16)",hf_spoolss_spoolss_RpcSendRecvBidiData_pAction);
37466
37467         return offset;
37468 }
37469
37470 static int
37471 spoolss_dissect_element_RpcSendRecvBidiData_pAction_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37472 {
37473         char *data;
37474
37475         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RpcSendRecvBidiData_pAction, FALSE, &data);
37476         proto_item_append_text(tree, ": %s", data);
37477
37478         return offset;
37479 }
37480
37481 static int
37482 spoolss_dissect_element_RpcSendRecvBidiData_pReqData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37483 {
37484         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_pReqData_, NDR_POINTER_REF, "Pointer to Preqdata (RPC_BIDI_REQUEST_CONTAINER)",hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData);
37485
37486         return offset;
37487 }
37488
37489 static int
37490 spoolss_dissect_element_RpcSendRecvBidiData_pReqData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37491 {
37492         offset = spoolss_dissect_struct_RPC_BIDI_REQUEST_CONTAINER(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData,0);
37493
37494         return offset;
37495 }
37496
37497 static int
37498 spoolss_dissect_element_RpcSendRecvBidiData_ppRespData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37499 {
37500         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_ppRespData_, NDR_POINTER_REF, "Pointer to Pprespdata (RPC_BIDI_RESPONSE_CONTAINER)",hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData);
37501
37502         return offset;
37503 }
37504
37505 static int
37506 spoolss_dissect_element_RpcSendRecvBidiData_ppRespData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37507 {
37508         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_ppRespData__, NDR_POINTER_UNIQUE, "Pointer to Pprespdata (RPC_BIDI_RESPONSE_CONTAINER)",hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData);
37509
37510         return offset;
37511 }
37512
37513 static int
37514 spoolss_dissect_element_RpcSendRecvBidiData_ppRespData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37515 {
37516         offset = spoolss_dissect_struct_RPC_BIDI_RESPONSE_CONTAINER(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData,0);
37517
37518         return offset;
37519 }
37520
37521 /* IDL: WERROR spoolss_RpcSendRecvBidiData( */
37522 /* IDL: [in] policy_handle hPrinter, */
37523 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pAction, */
37524 /* IDL: [ref] [in] RPC_BIDI_REQUEST_CONTAINER *pReqData, */
37525 /* IDL: [out] [ref] RPC_BIDI_RESPONSE_CONTAINER **ppRespData */
37526 /* IDL: ); */
37527
37528 static int
37529 spoolss_dissect_RpcSendRecvBidiData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37530 {
37531         guint32 status;
37532
37533         pinfo->dcerpc_procedure_name="RpcSendRecvBidiData";
37534         offset = spoolss_dissect_element_RpcSendRecvBidiData_ppRespData(tvb, offset, pinfo, tree, drep);
37535         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37536
37537         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37538
37539         if (status != 0)
37540                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37541
37542         return offset;
37543 }
37544
37545 static int
37546 spoolss_dissect_RpcSendRecvBidiData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37547 {
37548         pinfo->dcerpc_procedure_name="RpcSendRecvBidiData";
37549         offset = spoolss_dissect_element_RpcSendRecvBidiData_hPrinter(tvb, offset, pinfo, tree, drep);
37550         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37551         offset = spoolss_dissect_element_RpcSendRecvBidiData_pAction(tvb, offset, pinfo, tree, drep);
37552         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37553         offset = spoolss_dissect_element_RpcSendRecvBidiData_pReqData(tvb, offset, pinfo, tree, drep);
37554         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37555         return offset;
37556 }
37557
37558 /* IDL: WERROR spoolss_62( */
37559 /* IDL:  */
37560 /* IDL: ); */
37561
37562 static int
37563 spoolss_dissect_62_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37564 {
37565         guint32 status;
37566
37567         pinfo->dcerpc_procedure_name="62";
37568         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37569
37570         if (status != 0)
37571                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37572
37573         return offset;
37574 }
37575
37576 static int
37577 spoolss_dissect_62_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37578 {
37579         pinfo->dcerpc_procedure_name="62";
37580         return offset;
37581 }
37582
37583 /* IDL: WERROR spoolss_63( */
37584 /* IDL:  */
37585 /* IDL: ); */
37586
37587 static int
37588 spoolss_dissect_63_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37589 {
37590         guint32 status;
37591
37592         pinfo->dcerpc_procedure_name="63";
37593         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37594
37595         if (status != 0)
37596                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37597
37598         return offset;
37599 }
37600
37601 static int
37602 spoolss_dissect_63_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37603 {
37604         pinfo->dcerpc_procedure_name="63";
37605         return offset;
37606 }
37607
37608 /* IDL: WERROR spoolss_64( */
37609 /* IDL:  */
37610 /* IDL: ); */
37611
37612 static int
37613 spoolss_dissect_64_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37614 {
37615         guint32 status;
37616
37617         pinfo->dcerpc_procedure_name="64";
37618         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37619
37620         if (status != 0)
37621                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37622
37623         return offset;
37624 }
37625
37626 static int
37627 spoolss_dissect_64_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37628 {
37629         pinfo->dcerpc_procedure_name="64";
37630         return offset;
37631 }
37632
37633 /* IDL: WERROR spoolss_65( */
37634 /* IDL:  */
37635 /* IDL: ); */
37636
37637 static int
37638 spoolss_dissect_65_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37639 {
37640         guint32 status;
37641
37642         pinfo->dcerpc_procedure_name="65";
37643         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37644
37645         if (status != 0)
37646                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37647
37648         return offset;
37649 }
37650
37651 static int
37652 spoolss_dissect_65_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37653 {
37654         pinfo->dcerpc_procedure_name="65";
37655         return offset;
37656 }
37657
37658 static int
37659 spoolss_dissect_element_GetCorePrinterDrivers_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37660 {
37661         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_GetCorePrinterDrivers_servername);
37662
37663         return offset;
37664 }
37665
37666 static int
37667 spoolss_dissect_element_GetCorePrinterDrivers_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37668 {
37669         char *data;
37670
37671         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetCorePrinterDrivers_servername, FALSE, &data);
37672         proto_item_append_text(tree, ": %s", data);
37673
37674         return offset;
37675 }
37676
37677 static int
37678 spoolss_dissect_element_GetCorePrinterDrivers_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37679 {
37680         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_architecture_, NDR_POINTER_REF, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetCorePrinterDrivers_architecture);
37681
37682         return offset;
37683 }
37684
37685 static int
37686 spoolss_dissect_element_GetCorePrinterDrivers_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37687 {
37688         char *data;
37689
37690         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetCorePrinterDrivers_architecture, FALSE, &data);
37691         proto_item_append_text(tree, ": %s", data);
37692
37693         return offset;
37694 }
37695
37696 static int
37697 spoolss_dissect_element_GetCorePrinterDrivers_core_driver_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37698 {
37699         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_size, 0);
37700
37701         return offset;
37702 }
37703
37704 static int
37705 spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37706 {
37707         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies_, NDR_POINTER_REF, "Pointer to Core Driver Dependencies (uint16)",hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies);
37708
37709         return offset;
37710 }
37711
37712 static int
37713 spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37714 {
37715         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies__);
37716
37717         return offset;
37718 }
37719
37720 static int
37721 spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37722 {
37723         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies, 0);
37724
37725         return offset;
37726 }
37727
37728 static int
37729 spoolss_dissect_element_GetCorePrinterDrivers_core_printer_driver_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37730 {
37731         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_driver_count, 0);
37732
37733         return offset;
37734 }
37735
37736 static int
37737 spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37738 {
37739         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers_, NDR_POINTER_REF, "Pointer to Core Printer Drivers (spoolss_CorePrinterDriver)",hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers);
37740
37741         return offset;
37742 }
37743
37744 static int
37745 spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37746 {
37747         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers__);
37748
37749         return offset;
37750 }
37751
37752 static int
37753 spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37754 {
37755         offset = spoolss_dissect_struct_CorePrinterDriver(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers,0);
37756
37757         return offset;
37758 }
37759
37760 /* IDL: WERROR spoolss_GetCorePrinterDrivers( */
37761 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
37762 /* IDL: [ref] [in] [charset(UTF16)] uint16 *architecture, */
37763 /* IDL: [in] uint32 core_driver_size, */
37764 /* IDL: [ref] [in] [charset(UTF16)] [size_is(core_driver_size)] uint16 *core_driver_dependencies, */
37765 /* IDL: [in] uint32 core_printer_driver_count, */
37766 /* IDL: [out] [ref] [size_is(core_printer_driver_count)] spoolss_CorePrinterDriver *core_printer_drivers */
37767 /* IDL: ); */
37768
37769 static int
37770 spoolss_dissect_GetCorePrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37771 {
37772         guint32 status;
37773
37774         pinfo->dcerpc_procedure_name="GetCorePrinterDrivers";
37775         offset = spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers(tvb, offset, pinfo, tree, drep);
37776         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37777
37778         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37779
37780         if (status != 0)
37781                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37782
37783         return offset;
37784 }
37785
37786 static int
37787 spoolss_dissect_GetCorePrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37788 {
37789         pinfo->dcerpc_procedure_name="GetCorePrinterDrivers";
37790         offset = spoolss_dissect_element_GetCorePrinterDrivers_servername(tvb, offset, pinfo, tree, drep);
37791         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37792         offset = spoolss_dissect_element_GetCorePrinterDrivers_architecture(tvb, offset, pinfo, tree, drep);
37793         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37794         offset = spoolss_dissect_element_GetCorePrinterDrivers_core_driver_size(tvb, offset, pinfo, tree, drep);
37795         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37796         offset = spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
37797         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37798         offset = spoolss_dissect_element_GetCorePrinterDrivers_core_printer_driver_count(tvb, offset, pinfo, tree, drep);
37799         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37800         return offset;
37801 }
37802
37803 /* IDL: WERROR spoolss_67( */
37804 /* IDL:  */
37805 /* IDL: ); */
37806
37807 static int
37808 spoolss_dissect_67_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37809 {
37810         guint32 status;
37811
37812         pinfo->dcerpc_procedure_name="67";
37813         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37814
37815         if (status != 0)
37816                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37817
37818         return offset;
37819 }
37820
37821 static int
37822 spoolss_dissect_67_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37823 {
37824         pinfo->dcerpc_procedure_name="67";
37825         return offset;
37826 }
37827
37828 static int
37829 spoolss_dissect_element_GetPrinterDriverPackagePath_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37830 {
37831         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername);
37832
37833         return offset;
37834 }
37835
37836 static int
37837 spoolss_dissect_element_GetPrinterDriverPackagePath_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37838 {
37839         char *data;
37840
37841         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername, FALSE, &data);
37842         proto_item_append_text(tree, ": %s", data);
37843
37844         return offset;
37845 }
37846
37847 static int
37848 spoolss_dissect_element_GetPrinterDriverPackagePath_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37849 {
37850         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_architecture_, NDR_POINTER_REF, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture);
37851
37852         return offset;
37853 }
37854
37855 static int
37856 spoolss_dissect_element_GetPrinterDriverPackagePath_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37857 {
37858         char *data;
37859
37860         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture, FALSE, &data);
37861         proto_item_append_text(tree, ": %s", data);
37862
37863         return offset;
37864 }
37865
37866 static int
37867 spoolss_dissect_element_GetPrinterDriverPackagePath_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37868 {
37869         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_language_, NDR_POINTER_UNIQUE, "Pointer to Language (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_language);
37870
37871         return offset;
37872 }
37873
37874 static int
37875 spoolss_dissect_element_GetPrinterDriverPackagePath_language_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37876 {
37877         char *data;
37878
37879         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_language, FALSE, &data);
37880         proto_item_append_text(tree, ": %s", data);
37881
37882         return offset;
37883 }
37884
37885 static int
37886 spoolss_dissect_element_GetPrinterDriverPackagePath_package_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37887 {
37888         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_package_id_, NDR_POINTER_REF, "Pointer to Package Id (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id);
37889
37890         return offset;
37891 }
37892
37893 static int
37894 spoolss_dissect_element_GetPrinterDriverPackagePath_package_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37895 {
37896         char *data;
37897
37898         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id, FALSE, &data);
37899         proto_item_append_text(tree, ": %s", data);
37900
37901         return offset;
37902 }
37903
37904 static int
37905 spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37906 {
37907         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_, NDR_POINTER_UNIQUE, "Pointer to Driver Package Cab (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab);
37908
37909         return offset;
37910 }
37911
37912 static int
37913 spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37914 {
37915         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab__);
37916
37917         return offset;
37918 }
37919
37920 static int
37921 spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37922 {
37923         offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab, 0);
37924
37925         return offset;
37926 }
37927
37928 static int
37929 spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37930 {
37931         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab_size, 0);
37932
37933         return offset;
37934 }
37935
37936 static int
37937 spoolss_dissect_element_GetPrinterDriverPackagePath_required(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37938 {
37939         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_required_, NDR_POINTER_REF, "Pointer to Required (uint32)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_required);
37940
37941         return offset;
37942 }
37943
37944 static int
37945 spoolss_dissect_element_GetPrinterDriverPackagePath_required_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37946 {
37947         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverPackagePath_required, 0);
37948
37949         return offset;
37950 }
37951
37952 /* IDL: WERROR spoolss_GetPrinterDriverPackagePath( */
37953 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
37954 /* IDL: [ref] [in] [charset(UTF16)] uint16 *architecture, */
37955 /* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *language, */
37956 /* IDL: [ref] [in] [charset(UTF16)] uint16 *package_id, */
37957 /* IDL: [out] [unique(1)] [in] [charset(UTF16)] [size_is(driver_package_cab_size)] uint16 *driver_package_cab, */
37958 /* IDL: [in] uint32 driver_package_cab_size, */
37959 /* IDL: [out] [ref] uint32 *required */
37960 /* IDL: ); */
37961
37962 static int
37963 spoolss_dissect_GetPrinterDriverPackagePath_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37964 {
37965         guint32 status;
37966
37967         pinfo->dcerpc_procedure_name="GetPrinterDriverPackagePath";
37968         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvb, offset, pinfo, tree, drep);
37969         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37970
37971         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_required(tvb, offset, pinfo, tree, drep);
37972         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37973
37974         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
37975
37976         if (status != 0)
37977                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
37978
37979         return offset;
37980 }
37981
37982 static int
37983 spoolss_dissect_GetPrinterDriverPackagePath_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
37984 {
37985         pinfo->dcerpc_procedure_name="GetPrinterDriverPackagePath";
37986         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_servername(tvb, offset, pinfo, tree, drep);
37987         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37988         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_architecture(tvb, offset, pinfo, tree, drep);
37989         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37990         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_language(tvb, offset, pinfo, tree, drep);
37991         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37992         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_package_id(tvb, offset, pinfo, tree, drep);
37993         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37994         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvb, offset, pinfo, tree, drep);
37995         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37996         offset = spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_size(tvb, offset, pinfo, tree, drep);
37997         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
37998         return offset;
37999 }
38000
38001 /* IDL: WERROR spoolss_69( */
38002 /* IDL:  */
38003 /* IDL: ); */
38004
38005 static int
38006 spoolss_dissect_69_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38007 {
38008         guint32 status;
38009
38010         pinfo->dcerpc_procedure_name="69";
38011         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38012
38013         if (status != 0)
38014                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38015
38016         return offset;
38017 }
38018
38019 static int
38020 spoolss_dissect_69_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38021 {
38022         pinfo->dcerpc_procedure_name="69";
38023         return offset;
38024 }
38025
38026 /* IDL: WERROR spoolss_6a( */
38027 /* IDL:  */
38028 /* IDL: ); */
38029
38030 static int
38031 spoolss_dissect_6a_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38032 {
38033         guint32 status;
38034
38035         pinfo->dcerpc_procedure_name="6a";
38036         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38037
38038         if (status != 0)
38039                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38040
38041         return offset;
38042 }
38043
38044 static int
38045 spoolss_dissect_6a_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38046 {
38047         pinfo->dcerpc_procedure_name="6a";
38048         return offset;
38049 }
38050
38051 /* IDL: WERROR spoolss_6b( */
38052 /* IDL:  */
38053 /* IDL: ); */
38054
38055 static int
38056 spoolss_dissect_6b_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38057 {
38058         guint32 status;
38059
38060         pinfo->dcerpc_procedure_name="6b";
38061         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38062
38063         if (status != 0)
38064                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38065
38066         return offset;
38067 }
38068
38069 static int
38070 spoolss_dissect_6b_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38071 {
38072         pinfo->dcerpc_procedure_name="6b";
38073         return offset;
38074 }
38075
38076 /* IDL: WERROR spoolss_6c( */
38077 /* IDL:  */
38078 /* IDL: ); */
38079
38080 static int
38081 spoolss_dissect_6c_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38082 {
38083         guint32 status;
38084
38085         pinfo->dcerpc_procedure_name="6c";
38086         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38087
38088         if (status != 0)
38089                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38090
38091         return offset;
38092 }
38093
38094 static int
38095 spoolss_dissect_6c_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38096 {
38097         pinfo->dcerpc_procedure_name="6c";
38098         return offset;
38099 }
38100
38101 /* IDL: WERROR spoolss_6d( */
38102 /* IDL:  */
38103 /* IDL: ); */
38104
38105 static int
38106 spoolss_dissect_6d_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38107 {
38108         guint32 status;
38109
38110         pinfo->dcerpc_procedure_name="6d";
38111         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38112
38113         if (status != 0)
38114                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38115
38116         return offset;
38117 }
38118
38119 static int
38120 spoolss_dissect_6d_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38121 {
38122         pinfo->dcerpc_procedure_name="6d";
38123         return offset;
38124 }
38125
38126 static int
38127 spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38128 {
38129         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter);
38130
38131         return offset;
38132 }
38133
38134 static int
38135 spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38136 {
38137         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter, 0);
38138
38139         return offset;
38140 }
38141
38142 static int
38143 spoolss_dissect_element_RpcGetJobNamedPropertyValue_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38144 {
38145         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_JobId, 0);
38146
38147         return offset;
38148 }
38149
38150 static int
38151 spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38152 {
38153         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName_, NDR_POINTER_REF, "Pointer to Pszname (uint16)",hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName);
38154
38155         return offset;
38156 }
38157
38158 static int
38159 spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38160 {
38161         char *data;
38162
38163         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName, FALSE, &data);
38164         proto_item_append_text(tree, ": %s", data);
38165
38166         return offset;
38167 }
38168
38169 static int
38170 spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38171 {
38172         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue_, NDR_POINTER_REF, "Pointer to Pvalue (RPC_PrintPropertyValue)",hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue);
38173
38174         return offset;
38175 }
38176
38177 static int
38178 spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38179 {
38180         offset = spoolss_dissect_struct_RPC_PrintPropertyValue(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue,0);
38181
38182         return offset;
38183 }
38184
38185 /* IDL: WERROR spoolss_RpcGetJobNamedPropertyValue( */
38186 /* IDL: [in] [ref] policy_handle *hPrinter, */
38187 /* IDL: [in] uint32 JobId, */
38188 /* IDL: [ref] [in] [charset(UTF16)] uint16 *pszName, */
38189 /* IDL: [out] [ref] RPC_PrintPropertyValue *pValue */
38190 /* IDL: ); */
38191
38192 static int
38193 spoolss_dissect_RpcGetJobNamedPropertyValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38194 {
38195         guint32 status;
38196
38197         pinfo->dcerpc_procedure_name="RpcGetJobNamedPropertyValue";
38198         offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue(tvb, offset, pinfo, tree, drep);
38199         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38200
38201         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38202
38203         if (status != 0)
38204                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38205
38206         return offset;
38207 }
38208
38209 static int
38210 spoolss_dissect_RpcGetJobNamedPropertyValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38211 {
38212         pinfo->dcerpc_procedure_name="RpcGetJobNamedPropertyValue";
38213         offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter(tvb, offset, pinfo, tree, drep);
38214         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38215         offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_JobId(tvb, offset, pinfo, tree, drep);
38216         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38217         offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName(tvb, offset, pinfo, tree, drep);
38218         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38219         return offset;
38220 }
38221
38222 static int
38223 spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38224 {
38225         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter);
38226
38227         return offset;
38228 }
38229
38230 static int
38231 spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38232 {
38233         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter, 0);
38234
38235         return offset;
38236 }
38237
38238 static int
38239 spoolss_dissect_element_RpcSetJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38240 {
38241         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcSetJobNamedProperty_JobId, 0);
38242
38243         return offset;
38244 }
38245
38246 static int
38247 spoolss_dissect_element_RpcSetJobNamedProperty_pProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38248 {
38249         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSetJobNamedProperty_pProperty_, NDR_POINTER_REF, "Pointer to Pproperty (RPC_PrintNamedProperty)",hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty);
38250
38251         return offset;
38252 }
38253
38254 static int
38255 spoolss_dissect_element_RpcSetJobNamedProperty_pProperty_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38256 {
38257         offset = spoolss_dissect_struct_RPC_PrintNamedProperty(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty,0);
38258
38259         return offset;
38260 }
38261
38262 /* IDL: WERROR spoolss_RpcSetJobNamedProperty( */
38263 /* IDL: [in] [ref] policy_handle *hPrinter, */
38264 /* IDL: [in] uint32 JobId, */
38265 /* IDL: [in] [ref] RPC_PrintNamedProperty *pProperty */
38266 /* IDL: ); */
38267
38268 static int
38269 spoolss_dissect_RpcSetJobNamedProperty_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38270 {
38271         guint32 status;
38272
38273         pinfo->dcerpc_procedure_name="RpcSetJobNamedProperty";
38274         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38275
38276         if (status != 0)
38277                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38278
38279         return offset;
38280 }
38281
38282 static int
38283 spoolss_dissect_RpcSetJobNamedProperty_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38284 {
38285         pinfo->dcerpc_procedure_name="RpcSetJobNamedProperty";
38286         offset = spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter(tvb, offset, pinfo, tree, drep);
38287         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38288         offset = spoolss_dissect_element_RpcSetJobNamedProperty_JobId(tvb, offset, pinfo, tree, drep);
38289         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38290         offset = spoolss_dissect_element_RpcSetJobNamedProperty_pProperty(tvb, offset, pinfo, tree, drep);
38291         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38292         return offset;
38293 }
38294
38295 static int
38296 spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38297 {
38298         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter);
38299
38300         return offset;
38301 }
38302
38303 static int
38304 spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38305 {
38306         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter, 0);
38307
38308         return offset;
38309 }
38310
38311 static int
38312 spoolss_dissect_element_RpcDeleteJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38313 {
38314         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcDeleteJobNamedProperty_JobId, 0);
38315
38316         return offset;
38317 }
38318
38319 static int
38320 spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38321 {
38322         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName_, NDR_POINTER_REF, "Pointer to Pszname (uint16)",hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName);
38323
38324         return offset;
38325 }
38326
38327 static int
38328 spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38329 {
38330         char *data;
38331
38332         offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName, FALSE, &data);
38333         proto_item_append_text(tree, ": %s", data);
38334
38335         return offset;
38336 }
38337
38338 /* IDL: WERROR spoolss_RpcDeleteJobNamedProperty( */
38339 /* IDL: [in] [ref] policy_handle *hPrinter, */
38340 /* IDL: [in] uint32 JobId, */
38341 /* IDL: [ref] [in] [charset(UTF16)] uint16 *pszName */
38342 /* IDL: ); */
38343
38344 static int
38345 spoolss_dissect_RpcDeleteJobNamedProperty_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38346 {
38347         guint32 status;
38348
38349         pinfo->dcerpc_procedure_name="RpcDeleteJobNamedProperty";
38350         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38351
38352         if (status != 0)
38353                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38354
38355         return offset;
38356 }
38357
38358 static int
38359 spoolss_dissect_RpcDeleteJobNamedProperty_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38360 {
38361         pinfo->dcerpc_procedure_name="RpcDeleteJobNamedProperty";
38362         offset = spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter(tvb, offset, pinfo, tree, drep);
38363         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38364         offset = spoolss_dissect_element_RpcDeleteJobNamedProperty_JobId(tvb, offset, pinfo, tree, drep);
38365         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38366         offset = spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName(tvb, offset, pinfo, tree, drep);
38367         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38368         return offset;
38369 }
38370
38371 static int
38372 spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38373 {
38374         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter);
38375
38376         return offset;
38377 }
38378
38379 static int
38380 spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38381 {
38382         offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter, 0);
38383
38384         return offset;
38385 }
38386
38387 static int
38388 spoolss_dissect_element_RpcEnumJobNamedProperties_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38389 {
38390         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcEnumJobNamedProperties_JobId, 0);
38391
38392         return offset;
38393 }
38394
38395 static int
38396 spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38397 {
38398         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties_, NDR_POINTER_REF, "Pointer to Pcproperties (uint32)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties);
38399
38400         return offset;
38401 }
38402
38403 static int
38404 spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38405 {
38406         offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties, 0);
38407
38408         return offset;
38409 }
38410
38411 static int
38412 spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38413 {
38414         offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties_, NDR_POINTER_REF, "Pointer to Ppproperties (RPC_PrintNamedProperty)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties);
38415
38416         return offset;
38417 }
38418
38419 static int
38420 spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38421 {
38422         offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties__, NDR_POINTER_UNIQUE, "Pointer to Ppproperties (RPC_PrintNamedProperty)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties);
38423
38424         return offset;
38425 }
38426
38427 static int
38428 spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38429 {
38430         offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties___);
38431
38432         return offset;
38433 }
38434
38435 static int
38436 spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38437 {
38438         offset = spoolss_dissect_struct_RPC_PrintNamedProperty(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties,0);
38439
38440         return offset;
38441 }
38442
38443 /* IDL: WERROR spoolss_RpcEnumJobNamedProperties( */
38444 /* IDL: [in] [ref] policy_handle *hPrinter, */
38445 /* IDL: [in] uint32 JobId, */
38446 /* IDL: [out] [ref] uint32 *pcProperties, */
38447 /* IDL: [out] [ref] [size_is(,*pcProperties)] RPC_PrintNamedProperty **ppProperties */
38448 /* IDL: ); */
38449
38450 static int
38451 spoolss_dissect_RpcEnumJobNamedProperties_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38452 {
38453         guint32 status;
38454
38455         pinfo->dcerpc_procedure_name="RpcEnumJobNamedProperties";
38456         offset = spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties(tvb, offset, pinfo, tree, drep);
38457         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38458
38459         offset = spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties(tvb, offset, pinfo, tree, drep);
38460         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38461
38462         offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
38463
38464         if (status != 0)
38465                 col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
38466
38467         return offset;
38468 }
38469
38470 static int
38471 spoolss_dissect_RpcEnumJobNamedProperties_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
38472 {
38473         pinfo->dcerpc_procedure_name="RpcEnumJobNamedProperties";
38474         offset = spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter(tvb, offset, pinfo, tree, drep);
38475         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38476         offset = spoolss_dissect_element_RpcEnumJobNamedProperties_JobId(tvb, offset, pinfo, tree, drep);
38477         offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
38478         return offset;
38479 }
38480
38481
38482 static dcerpc_sub_dissector spoolss_dissectors[] = {
38483         { , "_spoolss_EnumPrinters",
38484            spoolss_dissect__spoolss_EnumPrinters_request, spoolss_dissect__spoolss_EnumPrinters_response},
38485         { , "__spoolss_EnumPrinters",
38486            spoolss_dissect___spoolss_EnumPrinters_request, spoolss_dissect___spoolss_EnumPrinters_response},
38487         { 0, "EnumPrinters",
38488            spoolss_dissect_EnumPrinters_request, spoolss_dissect_EnumPrinters_response},
38489         { 1, "OpenPrinter",
38490            spoolss_dissect_OpenPrinter_request, spoolss_dissect_OpenPrinter_response},
38491         { 2, "SetJob",
38492            spoolss_dissect_SetJob_request, spoolss_dissect_SetJob_response},
38493         { 3, "GetJob",
38494            spoolss_dissect_GetJob_request, spoolss_dissect_GetJob_response},
38495         { , "_spoolss_EnumJobs",
38496            spoolss_dissect__spoolss_EnumJobs_request, spoolss_dissect__spoolss_EnumJobs_response},
38497         { , "__spoolss_EnumJobs",
38498            spoolss_dissect___spoolss_EnumJobs_request, spoolss_dissect___spoolss_EnumJobs_response},
38499         { 4, "EnumJobs",
38500            spoolss_dissect_EnumJobs_request, spoolss_dissect_EnumJobs_response},
38501         { 5, "AddPrinter",
38502            spoolss_dissect_AddPrinter_request, spoolss_dissect_AddPrinter_response},
38503         { 6, "DeletePrinter",
38504            spoolss_dissect_DeletePrinter_request, spoolss_dissect_DeletePrinter_response},
38505         { 7, "SetPrinter",
38506            spoolss_dissect_SetPrinter_request, spoolss_dissect_SetPrinter_response},
38507         { 8, "GetPrinter",
38508            spoolss_dissect_GetPrinter_request, spoolss_dissect_GetPrinter_response},
38509         { 9, "AddPrinterDriver",
38510            spoolss_dissect_AddPrinterDriver_request, spoolss_dissect_AddPrinterDriver_response},
38511         { , "_spoolss_EnumPrinterDrivers",
38512            spoolss_dissect__spoolss_EnumPrinterDrivers_request, spoolss_dissect__spoolss_EnumPrinterDrivers_response},
38513         { , "__spoolss_EnumPrinterDrivers",
38514            spoolss_dissect___spoolss_EnumPrinterDrivers_request, spoolss_dissect___spoolss_EnumPrinterDrivers_response},
38515         { 10, "EnumPrinterDrivers",
38516            spoolss_dissect_EnumPrinterDrivers_request, spoolss_dissect_EnumPrinterDrivers_response},
38517         { 11, "GetPrinterDriver",
38518            spoolss_dissect_GetPrinterDriver_request, spoolss_dissect_GetPrinterDriver_response},
38519         { 12, "GetPrinterDriverDirectory",
38520            spoolss_dissect_GetPrinterDriverDirectory_request, spoolss_dissect_GetPrinterDriverDirectory_response},
38521         { 13, "DeletePrinterDriver",
38522            spoolss_dissect_DeletePrinterDriver_request, spoolss_dissect_DeletePrinterDriver_response},
38523         { 14, "AddPrintProcessor",
38524            spoolss_dissect_AddPrintProcessor_request, spoolss_dissect_AddPrintProcessor_response},
38525         { , "_spoolss_EnumPrintProcessors",
38526            spoolss_dissect__spoolss_EnumPrintProcessors_request, spoolss_dissect__spoolss_EnumPrintProcessors_response},
38527         { , "__spoolss_EnumPrintProcessors",
38528            spoolss_dissect___spoolss_EnumPrintProcessors_request, spoolss_dissect___spoolss_EnumPrintProcessors_response},
38529         { 15, "EnumPrintProcessors",
38530            spoolss_dissect_EnumPrintProcessors_request, spoolss_dissect_EnumPrintProcessors_response},
38531         { 16, "GetPrintProcessorDirectory",
38532            spoolss_dissect_GetPrintProcessorDirectory_request, spoolss_dissect_GetPrintProcessorDirectory_response},
38533         { 17, "StartDocPrinter",
38534            spoolss_dissect_StartDocPrinter_request, spoolss_dissect_StartDocPrinter_response},
38535         { 18, "StartPagePrinter",
38536            spoolss_dissect_StartPagePrinter_request, spoolss_dissect_StartPagePrinter_response},
38537         { 19, "WritePrinter",
38538            spoolss_dissect_WritePrinter_request, spoolss_dissect_WritePrinter_response},
38539         { 20, "EndPagePrinter",
38540            spoolss_dissect_EndPagePrinter_request, spoolss_dissect_EndPagePrinter_response},
38541         { 21, "AbortPrinter",
38542            spoolss_dissect_AbortPrinter_request, spoolss_dissect_AbortPrinter_response},
38543         { 22, "ReadPrinter",
38544            spoolss_dissect_ReadPrinter_request, spoolss_dissect_ReadPrinter_response},
38545         { 23, "EndDocPrinter",
38546            spoolss_dissect_EndDocPrinter_request, spoolss_dissect_EndDocPrinter_response},
38547         { 24, "AddJob",
38548            spoolss_dissect_AddJob_request, spoolss_dissect_AddJob_response},
38549         { 25, "ScheduleJob",
38550            spoolss_dissect_ScheduleJob_request, spoolss_dissect_ScheduleJob_response},
38551         { 26, "GetPrinterData",
38552            spoolss_dissect_GetPrinterData_request, spoolss_dissect_GetPrinterData_response},
38553         { 27, "SetPrinterData",
38554            spoolss_dissect_SetPrinterData_request, spoolss_dissect_SetPrinterData_response},
38555         { 28, "WaitForPrinterChange",
38556            spoolss_dissect_WaitForPrinterChange_request, spoolss_dissect_WaitForPrinterChange_response},
38557         { 29, "ClosePrinter",
38558            spoolss_dissect_ClosePrinter_request, spoolss_dissect_ClosePrinter_response},
38559         { 30, "AddForm",
38560            spoolss_dissect_AddForm_request, spoolss_dissect_AddForm_response},
38561         { 31, "DeleteForm",
38562            spoolss_dissect_DeleteForm_request, spoolss_dissect_DeleteForm_response},
38563         { 32, "GetForm",
38564            spoolss_dissect_GetForm_request, spoolss_dissect_GetForm_response},
38565         { 33, "SetForm",
38566            spoolss_dissect_SetForm_request, spoolss_dissect_SetForm_response},
38567         { , "_spoolss_EnumForms",
38568            spoolss_dissect__spoolss_EnumForms_request, spoolss_dissect__spoolss_EnumForms_response},
38569         { , "__spoolss_EnumForms",
38570            spoolss_dissect___spoolss_EnumForms_request, spoolss_dissect___spoolss_EnumForms_response},
38571         { 34, "EnumForms",
38572            spoolss_dissect_EnumForms_request, spoolss_dissect_EnumForms_response},
38573         { , "_spoolss_EnumPorts",
38574            spoolss_dissect__spoolss_EnumPorts_request, spoolss_dissect__spoolss_EnumPorts_response},
38575         { , "__spoolss_EnumPorts",
38576            spoolss_dissect___spoolss_EnumPorts_request, spoolss_dissect___spoolss_EnumPorts_response},
38577         { 35, "EnumPorts",
38578            spoolss_dissect_EnumPorts_request, spoolss_dissect_EnumPorts_response},
38579         { , "_spoolss_EnumMonitors",
38580            spoolss_dissect__spoolss_EnumMonitors_request, spoolss_dissect__spoolss_EnumMonitors_response},
38581         { , "__spoolss_EnumMonitors",
38582            spoolss_dissect___spoolss_EnumMonitors_request, spoolss_dissect___spoolss_EnumMonitors_response},
38583         { 36, "EnumMonitors",
38584            spoolss_dissect_EnumMonitors_request, spoolss_dissect_EnumMonitors_response},
38585         { 37, "AddPort",
38586            spoolss_dissect_AddPort_request, spoolss_dissect_AddPort_response},
38587         { 38, "ConfigurePort",
38588            spoolss_dissect_ConfigurePort_request, spoolss_dissect_ConfigurePort_response},
38589         { 39, "DeletePort",
38590            spoolss_dissect_DeletePort_request, spoolss_dissect_DeletePort_response},
38591         { 40, "CreatePrinterIC",
38592            spoolss_dissect_CreatePrinterIC_request, spoolss_dissect_CreatePrinterIC_response},
38593         { 41, "PlayGDIScriptOnPrinterIC",
38594            spoolss_dissect_PlayGDIScriptOnPrinterIC_request, spoolss_dissect_PlayGDIScriptOnPrinterIC_response},
38595         { 42, "DeletePrinterIC",
38596            spoolss_dissect_DeletePrinterIC_request, spoolss_dissect_DeletePrinterIC_response},
38597         { 43, "AddPrinterConnection",
38598            spoolss_dissect_AddPrinterConnection_request, spoolss_dissect_AddPrinterConnection_response},
38599         { 44, "DeletePrinterConnection",
38600            spoolss_dissect_DeletePrinterConnection_request, spoolss_dissect_DeletePrinterConnection_response},
38601         { 45, "PrinterMessageBox",
38602            spoolss_dissect_PrinterMessageBox_request, spoolss_dissect_PrinterMessageBox_response},
38603         { 46, "AddMonitor",
38604            spoolss_dissect_AddMonitor_request, spoolss_dissect_AddMonitor_response},
38605         { 47, "DeleteMonitor",
38606            spoolss_dissect_DeleteMonitor_request, spoolss_dissect_DeleteMonitor_response},
38607         { 48, "DeletePrintProcessor",
38608            spoolss_dissect_DeletePrintProcessor_request, spoolss_dissect_DeletePrintProcessor_response},
38609         { 49, "AddPrintProvidor",
38610            spoolss_dissect_AddPrintProvidor_request, spoolss_dissect_AddPrintProvidor_response},
38611         { 50, "DeletePrintProvidor",
38612            spoolss_dissect_DeletePrintProvidor_request, spoolss_dissect_DeletePrintProvidor_response},
38613         { , "_spoolss_EnumPrintProcDataTypes",
38614            spoolss_dissect__spoolss_EnumPrintProcDataTypes_request, spoolss_dissect__spoolss_EnumPrintProcDataTypes_response},
38615         { , "__spoolss_EnumPrintProcDataTypes",
38616            spoolss_dissect___spoolss_EnumPrintProcDataTypes_request, spoolss_dissect___spoolss_EnumPrintProcDataTypes_response},
38617         { 51, "EnumPrintProcDataTypes",
38618            spoolss_dissect_EnumPrintProcDataTypes_request, spoolss_dissect_EnumPrintProcDataTypes_response},
38619         { 52, "ResetPrinter",
38620            spoolss_dissect_ResetPrinter_request, spoolss_dissect_ResetPrinter_response},
38621         { 53, "GetPrinterDriver2",
38622            spoolss_dissect_GetPrinterDriver2_request, spoolss_dissect_GetPrinterDriver2_response},
38623         { 54, "FindFirstPrinterChangeNotification",
38624            spoolss_dissect_FindFirstPrinterChangeNotification_request, spoolss_dissect_FindFirstPrinterChangeNotification_response},
38625         { 55, "FindNextPrinterChangeNotification",
38626            spoolss_dissect_FindNextPrinterChangeNotification_request, spoolss_dissect_FindNextPrinterChangeNotification_response},
38627         { 56, "FindClosePrinterNotify",
38628            spoolss_dissect_FindClosePrinterNotify_request, spoolss_dissect_FindClosePrinterNotify_response},
38629         { 57, "RouterFindFirstPrinterChangeNotificationOld",
38630            spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_request, spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_response},
38631         { 58, "ReplyOpenPrinter",
38632            spoolss_dissect_ReplyOpenPrinter_request, spoolss_dissect_ReplyOpenPrinter_response},
38633         { 59, "RouterReplyPrinter",
38634            spoolss_dissect_RouterReplyPrinter_request, spoolss_dissect_RouterReplyPrinter_response},
38635         { 60, "ReplyClosePrinter",
38636            spoolss_dissect_ReplyClosePrinter_request, spoolss_dissect_ReplyClosePrinter_response},
38637         { 61, "AddPortEx",
38638            spoolss_dissect_AddPortEx_request, spoolss_dissect_AddPortEx_response},
38639         { 62, "RouterFindFirstPrinterChangeNotification",
38640            spoolss_dissect_RouterFindFirstPrinterChangeNotification_request, spoolss_dissect_RouterFindFirstPrinterChangeNotification_response},
38641         { 63, "SpoolerInit",
38642            spoolss_dissect_SpoolerInit_request, spoolss_dissect_SpoolerInit_response},
38643         { 64, "ResetPrinterEx",
38644            spoolss_dissect_ResetPrinterEx_request, spoolss_dissect_ResetPrinterEx_response},
38645         { 65, "RemoteFindFirstPrinterChangeNotifyEx",
38646            spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_request, spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_response},
38647         { 66, "RouterReplyPrinterEx",
38648            spoolss_dissect_RouterReplyPrinterEx_request, spoolss_dissect_RouterReplyPrinterEx_response},
38649         { 67, "RouterRefreshPrinterChangeNotify",
38650            spoolss_dissect_RouterRefreshPrinterChangeNotify_request, spoolss_dissect_RouterRefreshPrinterChangeNotify_response},
38651         { 68, "44",
38652            spoolss_dissect_44_request, spoolss_dissect_44_response},
38653         { 69, "OpenPrinterEx",
38654            spoolss_dissect_OpenPrinterEx_request, spoolss_dissect_OpenPrinterEx_response},
38655         { 70, "AddPrinterEx",
38656            spoolss_dissect_AddPrinterEx_request, spoolss_dissect_AddPrinterEx_response},
38657         { 71, "SetPort",
38658            spoolss_dissect_SetPort_request, spoolss_dissect_SetPort_response},
38659         { 72, "EnumPrinterData",
38660            spoolss_dissect_EnumPrinterData_request, spoolss_dissect_EnumPrinterData_response},
38661         { 73, "DeletePrinterData",
38662            spoolss_dissect_DeletePrinterData_request, spoolss_dissect_DeletePrinterData_response},
38663         { 74, "4a",
38664            spoolss_dissect_4a_request, spoolss_dissect_4a_response},
38665         { 75, "4b",
38666            spoolss_dissect_4b_request, spoolss_dissect_4b_response},
38667         { 76, "4c",
38668            spoolss_dissect_4c_request, spoolss_dissect_4c_response},
38669         { 77, "SetPrinterDataEx",
38670            spoolss_dissect_SetPrinterDataEx_request, spoolss_dissect_SetPrinterDataEx_response},
38671         { 78, "GetPrinterDataEx",
38672            spoolss_dissect_GetPrinterDataEx_request, spoolss_dissect_GetPrinterDataEx_response},
38673         { , "_spoolss_EnumPrinterDataEx",
38674            spoolss_dissect__spoolss_EnumPrinterDataEx_request, spoolss_dissect__spoolss_EnumPrinterDataEx_response},
38675         { , "__spoolss_EnumPrinterDataEx",
38676            spoolss_dissect___spoolss_EnumPrinterDataEx_request, spoolss_dissect___spoolss_EnumPrinterDataEx_response},
38677         { 79, "EnumPrinterDataEx",
38678            spoolss_dissect_EnumPrinterDataEx_request, spoolss_dissect_EnumPrinterDataEx_response},
38679         { 80, "EnumPrinterKey",
38680            spoolss_dissect_EnumPrinterKey_request, spoolss_dissect_EnumPrinterKey_response},
38681         { 81, "DeletePrinterDataEx",
38682            spoolss_dissect_DeletePrinterDataEx_request, spoolss_dissect_DeletePrinterDataEx_response},
38683         { 82, "DeletePrinterKey",
38684            spoolss_dissect_DeletePrinterKey_request, spoolss_dissect_DeletePrinterKey_response},
38685         { 83, "53",
38686            spoolss_dissect_53_request, spoolss_dissect_53_response},
38687         { 84, "DeletePrinterDriverEx",
38688            spoolss_dissect_DeletePrinterDriverEx_request, spoolss_dissect_DeletePrinterDriverEx_response},
38689         { 85, "AddPerMachineConnection",
38690            spoolss_dissect_AddPerMachineConnection_request, spoolss_dissect_AddPerMachineConnection_response},
38691         { 86, "DeletePerMachineConnection",
38692            spoolss_dissect_DeletePerMachineConnection_request, spoolss_dissect_DeletePerMachineConnection_response},
38693         { 87, "EnumPerMachineConnections",
38694            spoolss_dissect_EnumPerMachineConnections_request, spoolss_dissect_EnumPerMachineConnections_response},
38695         { 88, "XcvData",
38696            spoolss_dissect_XcvData_request, spoolss_dissect_XcvData_response},
38697         { 89, "AddPrinterDriverEx",
38698            spoolss_dissect_AddPrinterDriverEx_request, spoolss_dissect_AddPrinterDriverEx_response},
38699         { 90, "5a",
38700            spoolss_dissect_5a_request, spoolss_dissect_5a_response},
38701         { 91, "5b",
38702            spoolss_dissect_5b_request, spoolss_dissect_5b_response},
38703         { 92, "5c",
38704            spoolss_dissect_5c_request, spoolss_dissect_5c_response},
38705         { 93, "5d",
38706            spoolss_dissect_5d_request, spoolss_dissect_5d_response},
38707         { 94, "5e",
38708            spoolss_dissect_5e_request, spoolss_dissect_5e_response},
38709         { 95, "5f",
38710            spoolss_dissect_5f_request, spoolss_dissect_5f_response},
38711         { 96, "60",
38712            spoolss_dissect_60_request, spoolss_dissect_60_response},
38713         { 97, "RpcSendRecvBidiData",
38714            spoolss_dissect_RpcSendRecvBidiData_request, spoolss_dissect_RpcSendRecvBidiData_response},
38715         { 98, "62",
38716            spoolss_dissect_62_request, spoolss_dissect_62_response},
38717         { 99, "63",
38718            spoolss_dissect_63_request, spoolss_dissect_63_response},
38719         { 100, "64",
38720            spoolss_dissect_64_request, spoolss_dissect_64_response},
38721         { 101, "65",
38722            spoolss_dissect_65_request, spoolss_dissect_65_response},
38723         { 102, "GetCorePrinterDrivers",
38724            spoolss_dissect_GetCorePrinterDrivers_request, spoolss_dissect_GetCorePrinterDrivers_response},
38725         { 103, "67",
38726            spoolss_dissect_67_request, spoolss_dissect_67_response},
38727         { 104, "GetPrinterDriverPackagePath",
38728            spoolss_dissect_GetPrinterDriverPackagePath_request, spoolss_dissect_GetPrinterDriverPackagePath_response},
38729         { 105, "69",
38730            spoolss_dissect_69_request, spoolss_dissect_69_response},
38731         { 106, "6a",
38732            spoolss_dissect_6a_request, spoolss_dissect_6a_response},
38733         { 107, "6b",
38734            spoolss_dissect_6b_request, spoolss_dissect_6b_response},
38735         { 108, "6c",
38736            spoolss_dissect_6c_request, spoolss_dissect_6c_response},
38737         { 109, "6d",
38738            spoolss_dissect_6d_request, spoolss_dissect_6d_response},
38739         { 110, "RpcGetJobNamedPropertyValue",
38740            spoolss_dissect_RpcGetJobNamedPropertyValue_request, spoolss_dissect_RpcGetJobNamedPropertyValue_response},
38741         { 111, "RpcSetJobNamedProperty",
38742            spoolss_dissect_RpcSetJobNamedProperty_request, spoolss_dissect_RpcSetJobNamedProperty_response},
38743         { 112, "RpcDeleteJobNamedProperty",
38744            spoolss_dissect_RpcDeleteJobNamedProperty_request, spoolss_dissect_RpcDeleteJobNamedProperty_response},
38745         { 113, "RpcEnumJobNamedProperties",
38746            spoolss_dissect_RpcEnumJobNamedProperties_request, spoolss_dissect_RpcEnumJobNamedProperties_response},
38747         { 0, NULL, NULL, NULL }
38748 };
38749
38750 void proto_register_dcerpc_spoolss(void)
38751 {
38752         static hf_register_info hf[] = {
38753         { &hf_spoolss_spoolss_PortInfo1_port_name,
38754           { "Port Name", "spoolss.spoolss_PortInfo1.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38755         { &hf_spoolss_spoolss_DeviceMode_size,
38756           { "Size", "spoolss.spoolss_DeviceMode.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38757         { &hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result,
38758           { "Reply Result", "spoolss.spoolss_RouterReplyPrinterEx.reply_result", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
38759         { &hf_spoolss_spoolss_GetJob_buffer,
38760           { "Buffer", "spoolss.spoolss_GetJob.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38761         { &hf_spoolss_spoolss_DriverInfo5_driver_path,
38762           { "Driver Path", "spoolss.spoolss_DriverInfo5.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38763         { &hf_spoolss_spoolss_SetPrinterInfo2_drivername,
38764           { "Drivername", "spoolss.spoolss_SetPrinterInfo2.drivername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38765         { &hf_spoolss_spoolss_DocumentInfo_info1,
38766           { "Info1", "spoolss.spoolss_DocumentInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38767         { &hf_spoolss_spoolss_AddFormInfo2_ressource_id,
38768           { "Ressource Id", "spoolss.spoolss_AddFormInfo2.ressource_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38769         { &hf_spoolss_spoolss_UserLevel3_reserved,
38770           { "Reserved", "spoolss.spoolss_UserLevel3.reserved", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
38771         { &hf_spoolss_spoolss_FormInfo2_keyword,
38772           { "Keyword", "spoolss.spoolss_FormInfo2.keyword", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38773         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE,
38774           { "Printer Driver Not Shareable", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_NOT_SHAREABLE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE_tfs), ( 0x00000020 ), NULL, HFILL }},
38775         { &hf_spoolss_spoolss_JobInfo2_start_time,
38776           { "Start Time", "spoolss.spoolss_JobInfo2.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38777         { &hf_spoolss_spoolss_PSDRVEXTRA_wCoreFullSize,
38778           { "Wcorefullsize", "spoolss.spoolss_PSDRVEXTRA.wCoreFullSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38779         { &hf_spoolss_spoolss_SetJobInfo1_text_status,
38780           { "Text Status", "spoolss.spoolss_SetJobInfo1.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38781         { &hf_spoolss_spoolss_XcvData_handle,
38782           { "Handle", "spoolss.spoolss_XcvData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
38783         { &hf_spoolss_spoolss_SetJobInfo1_total_pages,
38784           { "Total Pages", "spoolss.spoolss_SetJobInfo1.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38785         { &hf_spoolss_spoolss_DriverInfo8_data_file,
38786           { "Data File", "spoolss.spoolss_DriverInfo8.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38787         { &hf_spoolss_spoolss_SetPortInfo2_monitor_name,
38788           { "Monitor Name", "spoolss.spoolss_SetPortInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38789         { &hf_spoolss_spoolss_PortInfo_infoFF,
38790           { "Infoff", "spoolss.spoolss_PortInfo.infoFF", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38791         { &hf_spoolss_spoolss_JobInfo2_submitted,
38792           { "Submitted", "spoolss.spoolss_JobInfo2.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38793         { &hf_spoolss_spoolss_AddDriverInfo6_architecture,
38794           { "Architecture", "spoolss.spoolss_AddDriverInfo6.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38795         { &hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr,
38796           { "Devmode Ptr", "spoolss.spoolss_SetPrinterInfo9.devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38797         { &hf_spoolss_spoolss_SetJobInfo4_server_name,
38798           { "Server Name", "spoolss.spoolss_SetJobInfo4.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38799         { &hf_spoolss__spoolss_EnumForms_count,
38800           { "Count", "spoolss._spoolss_EnumForms.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38801         { &hf_spoolss_spoolss_SetPrinterInfo2_datatype,
38802           { "Datatype", "spoolss.spoolss_SetPrinterInfo2.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38803         { &hf_spoolss_spoolss_SetPrinterInfo5_attributes,
38804           { "Attributes", "spoolss.spoolss_SetPrinterInfo5.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
38805         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS,
38806           { "Apd Copy To All Spoolers", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_TO_ALL_SPOOLERS", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS_tfs), ( 0x00002000 ), NULL, HFILL }},
38807         { &hf_spoolss_spoolss_PrinterEnumValues_data,
38808           { "Data", "spoolss.spoolss_PrinterEnumValues.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38809         { &hf_spoolss_spoolss_DeletePrintProcessor_server,
38810           { "Server", "spoolss.spoolss_DeletePrintProcessor.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38811         { &hf_spoolss___spoolss_EnumPrintProcDataTypes_level,
38812           { "Level", "spoolss.__spoolss_EnumPrintProcDataTypes.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38813         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE,
38814           { "Apd Strict Downgrade", "spoolss.spoolss_AddPrinterDriverExFlags.APD_STRICT_DOWNGRADE", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE_tfs), ( 0x00000002 ), NULL, HFILL }},
38815         { &hf_spoolss_spoolss_SetPrinterInfo2_location,
38816           { "Location", "spoolss.spoolss_SetPrinterInfo2.location", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38817         { &hf_spoolss_spoolss_EnumPrinterData_data_needed,
38818           { "Data Needed", "spoolss.spoolss_EnumPrinterData.data_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38819         { &hf_spoolss_spoolss_NotifyData_integer,
38820           { "Integer", "spoolss.spoolss_NotifyData.integer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38821         { &hf_spoolss_spoolss_AddDriverInfo2_architecture,
38822           { "Architecture", "spoolss.spoolss_AddDriverInfo2.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38823         { &hf_spoolss_spoolss_SetPrinter_devmode_ctr,
38824           { "Devmode Ctr", "spoolss.spoolss_SetPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38825         { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema,
38826           { "Pschema", "spoolss.RPC_BIDI_RESPONSE_DATA.pSchema", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38827         { &hf_spoolss_spoolss_SetJobInfo1_document_name,
38828           { "Document Name", "spoolss.spoolss_SetJobInfo1.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38829         { &hf_spoolss_spoolss_DriverInfo7_inf_name,
38830           { "Inf Name", "spoolss.spoolss_DriverInfo7.inf_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38831         { &hf_spoolss_spoolss_SetPrinter_command,
38832           { "Command", "spoolss.spoolss_SetPrinter.command", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PrinterControl_vals), 0, NULL, HFILL }},
38833         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS,
38834           { "Printer Enum Connections", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_CONNECTIONS", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS_tfs), ( 0x00000004 ), NULL, HFILL }},
38835         { &hf_spoolss_spoolss_SetPrinterInfo_info2,
38836           { "Info2", "spoolss.spoolss_SetPrinterInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38837         { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_JobId,
38838           { "Jobid", "spoolss.spoolss_RpcGetJobNamedPropertyValue.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38839         { &hf_spoolss_spoolss_DeviceMode___driverextra_length,
38840           { "  Driverextra Length", "spoolss.spoolss_DeviceMode.__driverextra_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38841         { &hf_spoolss_spoolss_XcvData_function_name,
38842           { "Function Name", "spoolss.spoolss_XcvData.function_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38843         { &hf_spoolss_spoolss_AddDriverInfo_info1,
38844           { "Info1", "spoolss.spoolss_AddDriverInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38845         { &hf_spoolss_spoolss_SetJobInfo2_position,
38846           { "Position", "spoolss.spoolss_SetJobInfo2.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38847         { &hf_spoolss_spoolss_PrinterInfo2_sepfile,
38848           { "Sepfile", "spoolss.spoolss_PrinterInfo2.sepfile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38849         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_RESTART,
38850           { "Job Status Restart", "spoolss.spoolss_JobStatus.JOB_STATUS_RESTART", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_RESTART_tfs), ( 0x00000800 ), NULL, HFILL }},
38851         { &hf_spoolss___spoolss_EnumPrinterDataEx_count,
38852           { "Count", "spoolss.__spoolss_EnumPrinterDataEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38853         { &hf_spoolss_spoolss_SetJobInfo2__devmode_ptr,
38854           { " Devmode Ptr", "spoolss.spoolss_SetJobInfo2._devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38855         { &hf_spoolss_spoolss_JobInfo1_submitted,
38856           { "Submitted", "spoolss.spoolss_JobInfo1.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38857         { &hf_spoolss_spoolss_AddDriverInfo5_driver_attributes,
38858           { "Driver Attributes", "spoolss.spoolss_AddDriverInfo5.driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
38859         { &hf_spoolss_spoolss_AddDriverInfo8_monitor_name,
38860           { "Monitor Name", "spoolss.spoolss_AddDriverInfo8.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38861         { &hf_spoolss_spoolss_PortData2_size,
38862           { "Size", "spoolss.spoolss_PortData2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38863         { &hf_spoolss___spoolss_EnumPrintProcDataTypes_count,
38864           { "Count", "spoolss.__spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38865         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT,
38866           { "Printer Change Add Port", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PORT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT_tfs), ( 0x00100000 ), NULL, HFILL }},
38867         { &hf_spoolss_spoolss_StringArray_string,
38868           { "String", "spoolss.spoolss_StringArray.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38869         { &hf_spoolss_spoolss_PSDRVEXTRA400_aubOptions,
38870           { "Auboptions", "spoolss.spoolss_PSDRVEXTRA400.aubOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38871         { &hf_spoolss___spoolss_EnumPorts_level,
38872           { "Level", "spoolss.__spoolss_EnumPorts.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38873         { &hf_spoolss_spoolss_JobInfo4_until_time,
38874           { "Until Time", "spoolss.spoolss_JobInfo4.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38875         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED,
38876           { "Printer Driver Soft Reset Required", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_SOFT_RESET_REQUIRED", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED_tfs), ( 0x00000400 ), NULL, HFILL }},
38877         { &hf_spoolss_spoolss_AddDriverInfo8_config_file,
38878           { "Config File", "spoolss.spoolss_AddDriverInfo8.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38879         { &hf_spoolss_spoolss_PSDRVEXTRA500_wFeedDirection,
38880           { "Wfeeddirection", "spoolss.spoolss_PSDRVEXTRA500.wFeedDirection", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_DMPS_FeedDirection_vals), 0, NULL, HFILL }},
38881         { &hf_spoolss_spoolss_SetPrinterInfo2_averageppm,
38882           { "Averageppm", "spoolss.spoolss_SetPrinterInfo2.averageppm", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38883         { &hf_spoolss_spoolss_AddDriverInfo6_provider,
38884           { "Provider", "spoolss.spoolss_AddDriverInfo6.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38885         { &hf_spoolss_spoolss_SetJobInfo2_text_status,
38886           { "Text Status", "spoolss.spoolss_SetJobInfo2.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38887         { &hf_spoolss_spoolss_EnumPorts_level,
38888           { "Level", "spoolss.spoolss_EnumPorts.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38889         { &hf_spoolss_spoolss_EnumForms_count,
38890           { "Count", "spoolss.spoolss_EnumForms.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38891         { &hf_spoolss_spoolss_PortData2_snmpcommunity,
38892           { "Snmpcommunity", "spoolss.spoolss_PortData2.snmpcommunity", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38893         { &hf_spoolss_spoolss_PSDRVEXTRA_aOptions,
38894           { "Aoptions", "spoolss.spoolss_PSDRVEXTRA.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38895         { &hf_spoolss_spoolss_DriverInfo101_hardware_id,
38896           { "Hardware Id", "spoolss.spoolss_DriverInfo101.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38897         { &hf_spoolss_spoolss_PSDRVEXTRA500_wchEPSFile,
38898           { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA500.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38899         { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName,
38900           { "Pszname", "spoolss.spoolss_RpcGetJobNamedPropertyValue.pszName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38901         { &hf_spoolss_spoolss_AddPort_monitor_name,
38902           { "Monitor Name", "spoolss.spoolss_AddPort.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38903         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab_size,
38904           { "Driver Package Cab Size", "spoolss.spoolss_GetPrinterDriverPackagePath.driver_package_cab_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38905         { &hf_spoolss_spoolss_AddDriverInfo3_driver_path,
38906           { "Driver Path", "spoolss.spoolss_AddDriverInfo3.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38907         { &hf_spoolss_spoolss_DriverInfo2_architecture,
38908           { "Architecture", "spoolss.spoolss_DriverInfo2.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38909         { &hf_spoolss_spoolss_PrinterInfo2_printername,
38910           { "Printername", "spoolss.spoolss_PrinterInfo2.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38911         { &hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED,
38912           { "Printer Notify Info Discarded", "spoolss.spoolss_PrinterNotifyFlags.PRINTER_NOTIFY_INFO_DISCARDED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED_tfs), ( 0x00000001 ), NULL, HFILL }},
38913         { &hf_spoolss_spoolss_AddDriverInfo6_help_file,
38914           { "Help File", "spoolss.spoolss_AddDriverInfo6.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38915         { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwSignature,
38916           { "Dwsignature", "spoolss.spoolss_UNIDRVEXTRA500.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
38917         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED,
38918           { "Printer Status Manual Feed", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_MANUAL_FEED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED_tfs), ( 0x00000020 ), NULL, HFILL }},
38919         { &hf_spoolss_spoolss_UNIDRVEXTRA_iLayout,
38920           { "Ilayout", "spoolss.spoolss_UNIDRVEXTRA.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
38921         { &hf_spoolss_spoolss_DeletePrinterIC_gdi_handle,
38922           { "Gdi Handle", "spoolss.spoolss_DeletePrinterIC.gdi_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
38923         { &hf_spoolss__spoolss_EnumJobs_numjobs,
38924           { "Numjobs", "spoolss._spoolss_EnumJobs.numjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38925         { &hf_spoolss_spoolss_PrinterInfo3_secdesc,
38926           { "Secdesc", "spoolss.spoolss_PrinterInfo3.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38927         { &hf_spoolss_spoolss_AddDriverInfo4_version,
38928           { "Version", "spoolss.spoolss_AddDriverInfo4.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
38929         { &hf_spoolss_spoolss_PrinterInfo2_averageppm,
38930           { "Averageppm", "spoolss.spoolss_PrinterInfo2.averageppm", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38931         { &hf_spoolss_spoolss_FormInfo1_form_name,
38932           { "Form Name", "spoolss.spoolss_FormInfo1.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38933         { &hf_spoolss__spoolss_EnumJobs_level,
38934           { "Level", "spoolss._spoolss_EnumJobs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38935         { &hf_spoolss_spoolss_AddDriverInfo6_previous_names,
38936           { "Previous Names", "spoolss.spoolss_AddDriverInfo6.previous_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38937         { &hf_spoolss_spoolss_PSDRVEXTRA_iTTDLFmt,
38938           { "Ittdlfmt", "spoolss.spoolss_PSDRVEXTRA.iTTDLFmt", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_TTDLFmt_vals), 0, NULL, HFILL }},
38939         { &hf_spoolss_spoolss_PSDRVEXTRA500_caRedGreenTint,
38940           { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA500.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38941         { &hf_spoolss_spoolss_NotifyOption_version,
38942           { "Version", "spoolss.spoolss_NotifyOption.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38943         { &hf_spoolss_spoolss_OSVersionEx_platform_id,
38944           { "Platform Id", "spoolss.spoolss_OSVersionEx.platform_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38945         { &hf_spoolss_spoolss_SetPrinterInfo0_c_setprinter,
38946           { "C Setprinter", "spoolss.spoolss_SetPrinterInfo0.c_setprinter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38947         { &hf_spoolss_spoolss_PSDRVEXTRA_wVer,
38948           { "Wver", "spoolss.spoolss_PSDRVEXTRA.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38949         { &hf_spoolss_spoolss_EnumPrintProcessors_info,
38950           { "Info", "spoolss.spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38951         { &hf_spoolss_spoolss_JobInfo4_printer_name,
38952           { "Printer Name", "spoolss.spoolss_JobInfo4.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38953         { &hf_spoolss_spoolss_EnumPorts_buffer,
38954           { "Buffer", "spoolss.spoolss_EnumPorts.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38955         { &hf_spoolss_spoolss_PortVarContainer_monitor_data,
38956           { "Monitor Data", "spoolss.spoolss_PortVarContainer.monitor_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
38957         { &hf_spoolss_spoolss_OSVersionEx_service_pack_major,
38958           { "Service Pack Major", "spoolss.spoolss_OSVersionEx.service_pack_major", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38959         { &hf_spoolss_spoolss_DriverInfo5_config_file,
38960           { "Config File", "spoolss.spoolss_DriverInfo5.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38961         { &hf_spoolss_spoolss_DeviceMode_panningheight,
38962           { "Panningheight", "spoolss.spoolss_DeviceMode.panningheight", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38963         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_BITSPERPEL,
38964           { "Devmode Bitsperpel", "spoolss.spoolss_DeviceModeFields.DEVMODE_BITSPERPEL", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_BITSPERPEL_tfs), ( 0x00040000 ), NULL, HFILL }},
38965         { &hf_spoolss_spoolss_UserLevel3_major,
38966           { "Major", "spoolss.spoolss_UserLevel3.major", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MajorVersion_vals), 0, NULL, HFILL }},
38967         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7,
38968           { "Printer Enum Icon7", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON7", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7_tfs), ( 0x00400000 ), NULL, HFILL }},
38969         { &hf_spoolss_spoolss_GetForm_buffer,
38970           { "Buffer", "spoolss.spoolss_GetForm.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
38971         { &hf_spoolss_spoolss_PrinterInfo2_devmode_,
38972           { "Subcontext length", "spoolss.spoolss_PrinterInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
38973         { &hf_spoolss_spoolss_Notify_variable_type,
38974           { "Variable Type", "spoolss.spoolss_Notify.variable_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_NotifyTable_vals), 0, NULL, HFILL }},
38975         { &hf_spoolss_spoolss_SetPrinterInfo1_description,
38976           { "Description", "spoolss.spoolss_SetPrinterInfo1.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38977         { &hf_spoolss_spoolss_SetPrinterInfo0_number_of_processors,
38978           { "Number Of Processors", "spoolss.spoolss_SetPrinterInfo0.number_of_processors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38979         { &hf_spoolss__spoolss_EnumPrinterDrivers_environment,
38980           { "Environment", "spoolss._spoolss_EnumPrinterDrivers.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38981         { &hf_spoolss_spoolss_PrinterEnumValues_type,
38982           { "Type", "spoolss.spoolss_PrinterEnumValues.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
38983         { &hf_spoolss__spoolss_EnumPorts_count,
38984           { "Count", "spoolss._spoolss_EnumPorts.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38985         { &hf_spoolss_spoolss_DriverInfo4_data_file,
38986           { "Data File", "spoolss.spoolss_DriverInfo4.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
38987         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN,
38988           { "Printer Status Server Unknown", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_SERVER_UNKNOWN", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN_tfs), ( 0x00800000 ), NULL, HFILL }},
38989         { &hf_spoolss_spoolss_PSDRVEXTRA351_caSize,
38990           { "Casize", "spoolss.spoolss_PSDRVEXTRA351.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38991         { &hf_spoolss_spoolss_EnumPrinterDrivers_count,
38992           { "Count", "spoolss.spoolss_EnumPrinterDrivers.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38993         { &hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceWhite,
38994           { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA351.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38995         { &hf_spoolss_spoolss_PSDRVEXTRA400_caGreenGamma,
38996           { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA400.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
38997         { &hf_spoolss_spoolss_OSVersion_minor,
38998           { "Minor", "spoolss.spoolss_OSVersion.minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
38999         { &hf_spoolss___spoolss_EnumPrinterDrivers_level,
39000           { "Level", "spoolss.__spoolss_EnumPrinterDrivers.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39001         { &hf_spoolss_spoolss_PrinterInfo0_number_of_processors,
39002           { "Number Of Processors", "spoolss.spoolss_PrinterInfo0.number_of_processors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39003         { &hf_spoolss_spoolss_SetPort_servername,
39004           { "Servername", "spoolss.spoolss_SetPort.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39005         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_info,
39006           { "Info", "spoolss.spoolss_GetPrintProcessorDirectory.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39007         { &hf_spoolss_spoolss_DriverInfo101_driver_name,
39008           { "Driver Name", "spoolss.spoolss_DriverInfo101.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39009         { &hf_spoolss_spoolss_AddDriverInfo8_help_file,
39010           { "Help File", "spoolss.spoolss_AddDriverInfo8.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39011         { &hf_spoolss_spoolss_PSDRVEXTRA500_caSize,
39012           { "Casize", "spoolss.spoolss_PSDRVEXTRA500.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39013         { &hf_spoolss__spoolss_EnumJobs_needed,
39014           { "Needed", "spoolss._spoolss_EnumJobs.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39015         { &hf_spoolss_spoolss_DriverInfo6_previous_names,
39016           { "Previous Names", "spoolss.spoolss_DriverInfo6.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39017         { &hf_spoolss_spoolss_EnumPrinterData_enum_index,
39018           { "Enum Index", "spoolss.spoolss_EnumPrinterData.enum_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39019         { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine,
39020           { "Local Machine", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.local_machine", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39021         { &hf_spoolss_spoolss_EnumJobs_info,
39022           { "Info", "spoolss.spoolss_EnumJobs.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39023         { &hf_spoolss_spoolss_PSDRVEXTRA351_caBrightness,
39024           { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA351.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39025         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_level,
39026           { "Level", "spoolss.spoolss_EnumPrintProcDataTypes.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39027         { &hf_spoolss___spoolss_EnumMonitors_info,
39028           { "Info", "spoolss.__spoolss_EnumMonitors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39029         { &hf_spoolss_spoolss_SetPortInfo3_status_string,
39030           { "Status String", "spoolss.spoolss_SetPortInfo3.status_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39031         { &hf_spoolss_spoolss_PrinterInfo2_starttime,
39032           { "Starttime", "spoolss.spoolss_PrinterInfo2.starttime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39033         { &hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter,
39034           { "Hprinter", "spoolss.spoolss_RpcDeleteJobNamedProperty.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39035         { &hf_spoolss_spoolss_JobInfo1_pages_printed,
39036           { "Pages Printed", "spoolss.spoolss_JobInfo1.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39037         { &hf_spoolss_spoolss_PSDRVEXTRA351_caColorfulness,
39038           { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA351.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39039         { &hf_spoolss_spoolss_EnumPrinterDrivers_buffer,
39040           { "Buffer", "spoolss.spoolss_EnumPrinterDrivers.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39041         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_language,
39042           { "Language", "spoolss.spoolss_GetPrinterDriverPackagePath.language", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39043         { &hf_spoolss_spoolss_DriverInfo8_dependent_files,
39044           { "Dependent Files", "spoolss.spoolss_DriverInfo8.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39045         { &hf_spoolss_spoolss_FormInfo_info1,
39046           { "Info1", "spoolss.spoolss_FormInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39047         { &hf_spoolss_spoolss_SetJobInfo_info3,
39048           { "Info3", "spoolss.spoolss_SetJobInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39049         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved3,
39050           { "Dwreserved3", "spoolss.spoolss_PSDRVEXTRA500.dwReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39051         { &hf_spoolss_spoolss_PSDRVEXTRA500_wReserved1,
39052           { "Wreserved1", "spoolss.spoolss_PSDRVEXTRA500.wReserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39053         { &hf_spoolss_spoolss_AddDriverInfo5_config_version,
39054           { "Config Version", "spoolss.spoolss_AddDriverInfo5.config_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39055         { &hf_spoolss_spoolss_JobInfo2_status,
39056           { "Status", "spoolss.spoolss_JobInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39057         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2,
39058           { "Printer Enum Icon2", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON2", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2_tfs), ( 0x00020000 ), NULL, HFILL }},
39059         { &hf_spoolss_spoolss_PSDRVEXTRA500_bReversePrint,
39060           { "Breverseprint", "spoolss.spoolss_PSDRVEXTRA500.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39061         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_offered,
39062           { "Offered", "spoolss.spoolss_GetPrintProcessorDirectory.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39063         { &hf_spoolss_spoolss_ReplyOpenPrinter_printer_local,
39064           { "Printer Local", "spoolss.spoolss_ReplyOpenPrinter.printer_local", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39065         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMMETHOD,
39066           { "Devmode Icmmethod", "spoolss.spoolss_DeviceModeFields.DEVMODE_ICMMETHOD", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_ICMMETHOD_tfs), ( 0x00800000 ), NULL, HFILL }},
39067         { &hf_spoolss_spoolss_SetPrinterInfo5_device_not_selected_timeout,
39068           { "Device Not Selected Timeout", "spoolss.spoolss_SetPrinterInfo5.device_not_selected_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39069         { &hf_spoolss_spoolss_DriverInfo101_version,
39070           { "Version", "spoolss.spoolss_DriverInfo101.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
39071         { &hf_spoolss_spoolss_JobInfo2_size,
39072           { "Size", "spoolss.spoolss_JobInfo2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39073         { &hf_spoolss_spoolss_AddDriverInfo4_help_file,
39074           { "Help File", "spoolss.spoolss_AddDriverInfo4.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39075         { &hf_spoolss_spoolss_SetPrinterInfo0_reserved2,
39076           { "Reserved2", "spoolss.spoolss_SetPrinterInfo0.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39077         { &hf_spoolss_spoolss_GetPrinterDriver2_info,
39078           { "Info", "spoolss.spoolss_GetPrinterDriver2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39079         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB,
39080           { "Printer Change Add Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB_tfs), ( 0x00000100 ), NULL, HFILL }},
39081         { &hf_spoolss_spoolss_SetPrinterInfo_info9,
39082           { "Info9", "spoolss.spoolss_SetPrinterInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39083         { &hf_spoolss_spoolss_SetJobInfo4_driver_name,
39084           { "Driver Name", "spoolss.spoolss_SetJobInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39085         { &hf_spoolss_spoolss_PrinterInfo2_sharename,
39086           { "Sharename", "spoolss.spoolss_PrinterInfo2.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39087         { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties,
39088           { "Ppproperties", "spoolss.spoolss_RpcEnumJobNamedProperties.ppProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39089         { &hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES,
39090           { "Dpd Delete All Files", "spoolss.spoolss_DeleteDriverFlags.DPD_DELETE_ALL_FILES", FT_BOOLEAN, 32, TFS(&spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES_tfs), ( 0x00000004 ), NULL, HFILL }},
39091         { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Count,
39092           { "Count", "spoolss.RPC_BIDI_REQUEST_CONTAINER.Count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39093         { &hf_spoolss_spoolss_DeviceMode_panningwidth,
39094           { "Panningwidth", "spoolss.spoolss_DeviceMode.panningwidth", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39095         { &hf_spoolss_spoolss_PortInfo2_description,
39096           { "Description", "spoolss.spoolss_PortInfo2.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39097         { &hf_spoolss__spoolss_EnumJobs_count,
39098           { "Count", "spoolss._spoolss_EnumJobs.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39099         { &hf_spoolss_spoolss_SetPrinterInfo0_session_counter,
39100           { "Session Counter", "spoolss.spoolss_SetPrinterInfo0.session_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39101         { &hf_spoolss_spoolss_DocumentInfo1_output_file,
39102           { "Output File", "spoolss.spoolss_DocumentInfo1.output_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39103         { &hf_spoolss_spoolss_UserLevel3_user,
39104           { "User", "spoolss.spoolss_UserLevel3.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39105         { &hf_spoolss_spoolss_DriverInfo_info7,
39106           { "Info7", "spoolss.spoolss_DriverInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39107         { &hf_spoolss_spoolss_UserLevel1_minor,
39108           { "Minor", "spoolss.spoolss_UserLevel1.minor", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MinorVersion_vals), 0, NULL, HFILL }},
39109         { &hf_spoolss_spoolss_EnumPrinterDataEx_info,
39110           { "Info", "spoolss.spoolss_EnumPrinterDataEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39111         { &hf_spoolss_spoolss_GetPrinterDriver_handle,
39112           { "Handle", "spoolss.spoolss_GetPrinterDriver.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39113         { &hf_spoolss_spoolss_SetJobInfo2_server_name,
39114           { "Server Name", "spoolss.spoolss_SetJobInfo2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39115         { &hf_spoolss_spoolss_UserLevelCtr_level,
39116           { "Level", "spoolss.spoolss_UserLevelCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39117         { &hf_spoolss_spoolss_OpenPrinterEx_access_mask,
39118           { "Access Mask", "spoolss.spoolss_OpenPrinterEx.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39119         { &hf_spoolss_spoolss_AddFormInfo1_form_name,
39120           { "Form Name", "spoolss.spoolss_AddFormInfo1.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39121         { &hf_spoolss_spoolss_PortData2_version,
39122           { "Version", "spoolss.spoolss_PortData2.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39123         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ORIENTATION,
39124           { "Devmode Orientation", "spoolss.spoolss_DeviceModeFields.DEVMODE_ORIENTATION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_ORIENTATION_tfs), ( 0x00000001 ), NULL, HFILL }},
39125         { &hf_spoolss_spoolss_OpenPrinter_handle,
39126           { "Handle", "spoolss.spoolss_OpenPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39127         { &hf_spoolss_spoolss_AccessRights_JOB_ACCESS_READ,
39128           { "Job Access Read", "spoolss.spoolss_AccessRights.JOB_ACCESS_READ", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_JOB_ACCESS_READ_tfs), ( 0x00000020 ), NULL, HFILL }},
39129         { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwResult,
39130           { "Dwresult", "spoolss.RPC_BIDI_RESPONSE_DATA.dwResult", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39131         { &hf_spoolss_spoolss_DeletePerMachineConnection_server,
39132           { "Server", "spoolss.spoolss_DeletePerMachineConnection.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39133         { &hf_spoolss_spoolss_JobInfoContainer_level,
39134           { "Level", "spoolss.spoolss_JobInfoContainer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39135         { &hf_spoolss_spoolss_UNIDRVEXTRA500_bReversePrint,
39136           { "Breverseprint", "spoolss.spoolss_UNIDRVEXTRA500.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39137         { &hf_spoolss_spoolss_GetPrinter_handle,
39138           { "Handle", "spoolss.spoolss_GetPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39139         { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwReqNumber,
39140           { "Dwreqnumber", "spoolss.RPC_BIDI_RESPONSE_DATA.dwReqNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39141         { &hf_spoolss_spoolss_DriverInfo101_provider,
39142           { "Provider", "spoolss.spoolss_DriverInfo101.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39143         { &hf_spoolss_spoolss_DriverInfo2_driver_path,
39144           { "Driver Path", "spoolss.spoolss_DriverInfo2.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39145         { &hf_spoolss_spoolss_PortInfo2_port_type,
39146           { "Port Type", "spoolss.spoolss_PortInfo2.port_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39147         { &hf_spoolss_spoolss_DriverInfo6_data_file,
39148           { "Data File", "spoolss.spoolss_DriverInfo6.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39149         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE,
39150           { "Printer Status Not Available", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_NOT_AVAILABLE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE_tfs), ( 0x00001000 ), NULL, HFILL }},
39151         { &hf_spoolss_spoolss_SetPrinterData_value_name,
39152           { "Value Name", "spoolss.spoolss_SetPrinterData.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39153         { &hf_spoolss_spoolss_PortData1_queue,
39154           { "Queue", "spoolss.spoolss_PortData1.queue", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39155         { &hf_spoolss_spoolss_PortData2_reserved,
39156           { "Reserved", "spoolss.spoolss_PortData2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39157         { &hf_spoolss_spoolss_PrinterInfo2_location,
39158           { "Location", "spoolss.spoolss_PrinterInfo2.location", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39159         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT,
39160           { "Devmode Pelsheight", "spoolss.spoolss_DeviceModeFields.DEVMODE_PELSHEIGHT", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT_tfs), ( 0x00100000 ), NULL, HFILL }},
39161         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_servername,
39162           { "Servername", "spoolss._spoolss_EnumPrintProcDataTypes.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39163         { &hf_spoolss_spoolss_SetJobInfo2_submitted,
39164           { "Submitted", "spoolss.spoolss_SetJobInfo2.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39165         { &hf_spoolss_spoolss_EnumPorts_needed,
39166           { "Needed", "spoolss.spoolss_EnumPorts.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39167         { &hf_spoolss_spoolss_DriverInfo4_config_file,
39168           { "Config File", "spoolss.spoolss_DriverInfo4.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39169         { &hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name,
39170           { "Manufacturer Name", "spoolss.spoolss_AddDriverInfo8.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39171         { &hf_spoolss_spoolss_JobInfo4_devmode_,
39172           { "Subcontext length", "spoolss.spoolss_JobInfo4.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39173         { &hf_spoolss_spoolss_PSDRVEXTRA_dwReserved2,
39174           { "Dwreserved2", "spoolss.spoolss_PSDRVEXTRA.dwReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39175         { &hf_spoolss_spoolss_Time_month,
39176           { "Month", "spoolss.spoolss_Time.month", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39177         { &hf_spoolss_spoolss_OpenPrinter_datatype,
39178           { "Datatype", "spoolss.spoolss_OpenPrinter.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39179         { &hf_spoolss_spoolss_SetPrinterInfo_info0,
39180           { "Info0", "spoolss.spoolss_SetPrinterInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39181         { &hf_spoolss__spoolss_EnumPrinterDataEx_needed,
39182           { "Needed", "spoolss._spoolss_EnumPrinterDataEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39183         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer,
39184           { "Buffer", "spoolss._spoolss_EnumPrintProcDataTypes.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39185         { &hf_spoolss_spoolss_PortData2_hostaddress,
39186           { "Hostaddress", "spoolss.spoolss_PortData2.hostaddress", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39187         { &hf_spoolss_spoolss_UserLevel_level2,
39188           { "Level2", "spoolss.spoolss_UserLevel.level2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39189         { &hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_date,
39190           { "Min Inbox Driver Ver Date", "spoolss.spoolss_AddDriverInfo8.min_inbox_driver_ver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
39191         { &hf_spoolss_spoolss_AddDriverInfo3_config_file,
39192           { "Config File", "spoolss.spoolss_AddDriverInfo3.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39193         { &hf_spoolss_spoolss_NotifyInfo_version,
39194           { "Version", "spoolss.spoolss_NotifyInfo.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39195         { &hf_spoolss_spoolss_GetPrinterDriver2_needed,
39196           { "Needed", "spoolss.spoolss_GetPrinterDriver2.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39197         { &hf_spoolss_spoolss_DeviceMode_scale,
39198           { "Scale", "spoolss.spoolss_DeviceMode.scale", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39199         { &hf_spoolss_spoolss_DeletePrinterData_handle,
39200           { "Handle", "spoolss.spoolss_DeletePrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39201         { &hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies,
39202           { "Core Driver Dependencies", "spoolss.spoolss_DriverInfo8.core_driver_dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39203         { &hf_spoolss__spoolss_EnumPrinterDrivers_buffer,
39204           { "Buffer", "spoolss._spoolss_EnumPrinterDrivers.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39205         { &hf_spoolss_spoolss_DriverInfo101_manufacturer_url,
39206           { "Manufacturer Url", "spoolss.spoolss_DriverInfo101.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39207         { &hf_spoolss_spoolss_SetPrinterInfo0_printername,
39208           { "Printername", "spoolss.spoolss_SetPrinterInfo0.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39209         { &hf_spoolss_spoolss_UNIDRVEXTRA_wOEMExtra,
39210           { "Woemextra", "spoolss.spoolss_UNIDRVEXTRA.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39211         { &hf_spoolss_spoolss_DeletePrinterDataEx_handle,
39212           { "Handle", "spoolss.spoolss_DeletePrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39213         { &hf_spoolss_spoolss_DriverInfo4_previous_names,
39214           { "Previous Names", "spoolss.spoolss_DriverInfo4.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39215         { &hf_spoolss_spoolss_DriverInfo3_architecture,
39216           { "Architecture", "spoolss.spoolss_DriverInfo3.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39217         { &hf_spoolss_spoolss_JobInfo4_devmode,
39218           { "Devmode", "spoolss.spoolss_JobInfo4.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39219         { &hf_spoolss_spoolss_JobInfo4_priority,
39220           { "Priority", "spoolss.spoolss_JobInfo4.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39221         { &hf_spoolss_spoolss_EnumPrinterData_value_name,
39222           { "Value Name", "spoolss.spoolss_EnumPrinterData.value_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39223         { &hf_spoolss_spoolss_SetPrinterInfo0_status,
39224           { "Status", "spoolss.spoolss_SetPrinterInfo0.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39225         { &hf_spoolss_spoolss_FormArea_bottom,
39226           { "Bottom", "spoolss.spoolss_FormArea.bottom", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39227         { &hf_spoolss_spoolss_JobInfo4_server_name,
39228           { "Server Name", "spoolss.spoolss_JobInfo4.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39229         { &hf_spoolss_spoolss_SetJobInfo4_size,
39230           { "Size", "spoolss.spoolss_SetJobInfo4.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39231         { &hf_spoolss__spoolss_EnumJobs_offered,
39232           { "Offered", "spoolss._spoolss_EnumJobs.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39233         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE,
39234           { "Printer Attribute Work Offline", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_WORK_OFFLINE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE_tfs), ( 0x00000400 ), NULL, HFILL }},
39235         { &hf_spoolss_spoolss_DriverInfo3_version,
39236           { "Version", "spoolss.spoolss_DriverInfo3.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
39237         { &hf_spoolss_spoolss_GetJob_handle,
39238           { "Handle", "spoolss.spoolss_GetJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39239         { &hf_spoolss_spoolss_AddPrinter_secdesc_ctr,
39240           { "Secdesc Ctr", "spoolss.spoolss_AddPrinter.secdesc_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39241         { &hf_spoolss_spoolss_DeviceMode_duplex,
39242           { "Duplex", "spoolss.spoolss_DeviceMode.duplex", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeDuplex_vals), 0, NULL, HFILL }},
39243         { &hf_spoolss_spoolss_RouterReplyPrinterEx_color,
39244           { "Color", "spoolss.spoolss_RouterReplyPrinterEx.color", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39245         { &hf_spoolss_spoolss_DeletePort_port_name,
39246           { "Port Name", "spoolss.spoolss_DeletePort.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39247         { &hf_spoolss__spoolss_EnumForms_handle,
39248           { "Handle", "spoolss._spoolss_EnumForms.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39249         { &hf_spoolss_spoolss_FormInfo2_flags,
39250           { "Flags", "spoolss.spoolss_FormInfo2.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
39251         { &hf_spoolss_spoolss_SetPrinterInfo2_status,
39252           { "Status", "spoolss.spoolss_SetPrinterInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39253         { &hf_spoolss_spoolss_AddDriverInfo2_config_file,
39254           { "Config File", "spoolss.spoolss_AddDriverInfo2.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39255         { &hf_spoolss_spoolss_SetJobInfo2_document_name,
39256           { "Document Name", "spoolss.spoolss_SetJobInfo2.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39257         { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL,
39258           { "Spoolss Dm Ps Flags Gdi Metafile Spool", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL_tfs), ( 0x00002000 ), NULL, HFILL }},
39259         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT,
39260           { "Printer Change Configure Port", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_CONFIGURE_PORT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT_tfs), ( 0x00200000 ), NULL, HFILL }},
39261         { &hf_spoolss_spoolss_PrinterInfo0_spooling,
39262           { "Spooling", "spoolss.spoolss_PrinterInfo0.spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39263         { &hf_spoolss_spoolss_AddDriverInfo4__ndr_size_dependent_files,
39264           { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo4._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39265         { &hf_spoolss_spoolss_PSDRVEXTRA_wCoreJTExpSize,
39266           { "Wcorejtexpsize", "spoolss.spoolss_PSDRVEXTRA.wCoreJTExpSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39267         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_needed,
39268           { "Needed", "spoolss.spoolss_EnumPrintProcDataTypes.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39269         { &hf_spoolss_spoolss_PortInfoFF_monitor_data,
39270           { "Monitor Data", "spoolss.spoolss_PortInfoFF.monitor_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39271         { &hf_spoolss_RPC_PrintNamedProperty_propertyValue,
39272           { "Propertyvalue", "spoolss.RPC_PrintNamedProperty.propertyValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39273         { &hf_spoolss_spoolss_JobInfo2_position,
39274           { "Position", "spoolss.spoolss_JobInfo2.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39275         { &hf_spoolss_spoolss_GetPrinterDataEx_type,
39276           { "Type", "spoolss.spoolss_GetPrinterDataEx.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
39277         { &hf_spoolss_spoolss_EnumPrinterDrivers_level,
39278           { "Level", "spoolss.spoolss_EnumPrinterDrivers.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39279         { &hf_spoolss_spoolss_AddDriverInfo6_default_datatype,
39280           { "Default Datatype", "spoolss.spoolss_AddDriverInfo6.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39281         { &hf_spoolss_spoolss_Time_millisecond,
39282           { "Millisecond", "spoolss.spoolss_Time.millisecond", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39283         { &hf_spoolss_spoolss_EnumForms_needed,
39284           { "Needed", "spoolss.spoolss_EnumForms.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39285         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwNupDirection,
39286           { "Dwnupdirection", "spoolss.spoolss_UNIDRVEXTRA.dwNupDirection", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupDirection_vals), 0, NULL, HFILL }},
39287         { &hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_version,
39288           { "Min Inbox Driver Ver Version", "spoolss.spoolss_AddDriverInfo8.min_inbox_driver_ver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
39289         { &hf_spoolss_spoolss_AddDriverInfo8_driver_path,
39290           { "Driver Path", "spoolss.spoolss_AddDriverInfo8.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39291         { &hf_spoolss_spoolss_SetJobInfo4_time,
39292           { "Time", "spoolss.spoolss_SetJobInfo4.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39293         { &hf_spoolss_spoolss_GetPrinterDriver2_architecture,
39294           { "Architecture", "spoolss.spoolss_GetPrinterDriver2.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39295         { &hf_spoolss_spoolss_GetPrinter_buffer,
39296           { "Buffer", "spoolss.spoolss_GetPrinter.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39297         { &hf_spoolss_spoolss_PrinterData_string,
39298           { "String", "spoolss.spoolss_PrinterData.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39299         { &hf_spoolss_spoolss_JobInfo4_print_processor,
39300           { "Print Processor", "spoolss.spoolss_JobInfo4.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39301         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETED,
39302           { "Job Status Deleted", "spoolss.spoolss_JobStatus.JOB_STATUS_DELETED", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_DELETED_tfs), ( 0x00000100 ), NULL, HFILL }},
39303         { &hf_spoolss_spoolss_OEM_DMEXTRA_dwVersion,
39304           { "Dwversion", "spoolss.spoolss_OEM_DMEXTRA.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39305         { &hf_spoolss_spoolss_SetPortInfo_info2,
39306           { "Info2", "spoolss.spoolss_SetPortInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39307         { &hf_spoolss_spoolss_JobInfo_info3,
39308           { "Info3", "spoolss.spoolss_JobInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39309         { &hf_spoolss_spoolss_AddDriverInfo4_architecture,
39310           { "Architecture", "spoolss.spoolss_AddDriverInfo4.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39311         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED,
39312           { "Printer Attribute Published", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_PUBLISHED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED_tfs), ( 0x00002000 ), NULL, HFILL }},
39313         { &hf_spoolss_spoolss_EnumPrinterKey__ndr_size,
39314           { " Ndr Size", "spoolss.spoolss_EnumPrinterKey._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39315         { &hf_spoolss_spoolss_EnumPrinterDataEx_count,
39316           { "Count", "spoolss.spoolss_EnumPrinterDataEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39317         { &hf_spoolss_spoolss_FormInfo2_display_name,
39318           { "Display Name", "spoolss.spoolss_FormInfo2.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39319         { &hf_spoolss__spoolss_EnumPrintProcessors_offered,
39320           { "Offered", "spoolss._spoolss_EnumPrintProcessors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39321         { &hf_spoolss_spoolss_DriverInfo4_default_datatype,
39322           { "Default Datatype", "spoolss.spoolss_DriverInfo4.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39323         { &hf_spoolss_spoolss_EnumForms_offered,
39324           { "Offered", "spoolss.spoolss_EnumForms.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39325         { &hf_spoolss_spoolss_EnumPrinterDataEx_key_name,
39326           { "Key Name", "spoolss.spoolss_EnumPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39327         { &hf_spoolss_spoolss_PSDRVEXTRA_dwY,
39328           { "Dwy", "spoolss.spoolss_PSDRVEXTRA.dwY", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39329         { &hf_spoolss__spoolss_EnumPorts_level,
39330           { "Level", "spoolss._spoolss_EnumPorts.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39331         { &hf_spoolss_spoolss_PSDRVEXTRA_dwChecksum32,
39332           { "Dwchecksum32", "spoolss.spoolss_PSDRVEXTRA.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39333         { &hf_spoolss_spoolss_ReplyOpenPrinter_type,
39334           { "Type", "spoolss.spoolss_ReplyOpenPrinter.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
39335         { &hf_spoolss_spoolss_DeviceMode_copies,
39336           { "Copies", "spoolss.spoolss_DeviceMode.copies", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39337         { &hf_spoolss_spoolss_EnumPrinterDataEx_needed,
39338           { "Needed", "spoolss.spoolss_EnumPrinterDataEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39339         { &hf_spoolss_spoolss_AddDriverInfo3_data_file,
39340           { "Data File", "spoolss.spoolss_AddDriverInfo3.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39341         { &hf_spoolss_spoolss_PortData1_protocol,
39342           { "Protocol", "spoolss.spoolss_PortData1.protocol", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortProtocol_vals), 0, NULL, HFILL }},
39343         { &hf_spoolss_spoolss_JobInfo4_size,
39344           { "Size", "spoolss.spoolss_JobInfo4.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39345         { &hf_spoolss_spoolss_EnumPrinters_level,
39346           { "Level", "spoolss.spoolss_EnumPrinters.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39347         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER,
39348           { "Apd Dont Copy Files To Cluster", "spoolss.spoolss_AddPrinterDriverExFlags.APD_DONT_COPY_FILES_TO_CLUSTER", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER_tfs), ( 0x00001000 ), NULL, HFILL }},
39349         { &hf_spoolss_spoolss_UserLevel3_client,
39350           { "Client", "spoolss.spoolss_UserLevel3.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39351         { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psblob,
39352           { "Psblob", "spoolss.spoolss_DeviceModeExtraDataPostScript.psblob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39353         { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cOut,
39354           { "Cout", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.cOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39355         { &hf_spoolss_spoolss_JobInfo4_status,
39356           { "Status", "spoolss.spoolss_JobInfo4.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39357         { &hf_spoolss_spoolss_OSVersion_platform_id,
39358           { "Platform Id", "spoolss.spoolss_OSVersion.platform_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39359         { &hf_spoolss_spoolss_PrinterInfo0_processor_architecture,
39360           { "Processor Architecture", "spoolss.spoolss_PrinterInfo0.processor_architecture", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
39361         { &hf_spoolss_spoolss_UNIDRVEXTRA_bReversePrint,
39362           { "Breverseprint", "spoolss.spoolss_UNIDRVEXTRA.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39363         { &hf_spoolss_spoolss_SetJobInfo2_total_pages,
39364           { "Total Pages", "spoolss.spoolss_SetJobInfo2.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39365         { &hf_spoolss_spoolss_PortData2_device_type,
39366           { "Device Type", "spoolss.spoolss_PortData2.device_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39367         { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED,
39368           { "Spoolss Port Type Redirected", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_REDIRECTED", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED_tfs), ( 0x00000004 ), NULL, HFILL }},
39369         { &hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr,
39370           { "Devmode Ptr", "spoolss.spoolss_SetPrinterInfo2.devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39371         { &hf_spoolss_spoolss_SetJobInfo2_status,
39372           { "Status", "spoolss.spoolss_SetJobInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39373         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME,
39374           { "Printer Enum Name", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_NAME", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME_tfs), ( 0x00000008 ), NULL, HFILL }},
39375         { &hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData,
39376           { "Preqdata", "spoolss.spoolss_RpcSendRecvBidiData.pReqData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39377         { &hf_spoolss_spoolss_ClosePrinter_handle,
39378           { "Handle", "spoolss.spoolss_ClosePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39379         { &hf_spoolss_spoolss_AddDriverInfo3_driver_name,
39380           { "Driver Name", "spoolss.spoolss_AddDriverInfo3.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39381         { &hf_spoolss_spoolss_PrinterInfo0_total_pages,
39382           { "Total Pages", "spoolss.spoolss_PrinterInfo0.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39383         { &hf_spoolss_spoolss_PSDRVEXTRA_bReversePrint,
39384           { "Breverseprint", "spoolss.spoolss_PSDRVEXTRA.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39385         { &hf_spoolss__spoolss_EnumPrinterDrivers_level,
39386           { "Level", "spoolss._spoolss_EnumPrinterDrivers.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39387         { &hf_spoolss__spoolss_EnumForms_buffer,
39388           { "Buffer", "spoolss._spoolss_EnumForms.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39389         { &hf_spoolss_spoolss_PSDRVEXTRA400_dwFlags,
39390           { "Dwflags", "spoolss.spoolss_PSDRVEXTRA400.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39391         { &hf_spoolss_spoolss_PrinterInfo5_attributes,
39392           { "Attributes", "spoolss.spoolss_PrinterInfo5.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39393         { &hf_spoolss_spoolss_PSDRVEXTRA351_caRedGamma,
39394           { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA351.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39395         { &hf_spoolss_spoolss_JobInfo1_priority,
39396           { "Priority", "spoolss.spoolss_JobInfo1.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39397         { &hf_spoolss_spoolss_SetPrinterInfo1_name,
39398           { "Name", "spoolss.spoolss_SetPrinterInfo1.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39399         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY,
39400           { "Printer Status Out Of Memory", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_OUT_OF_MEMORY", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY_tfs), ( 0x00200000 ), NULL, HFILL }},
39401         { &hf_spoolss_spoolss_JobInfo1_data_type,
39402           { "Data Type", "spoolss.spoolss_JobInfo1.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39403         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5,
39404           { "Printer Enum Icon5", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON5", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5_tfs), ( 0x00100000 ), NULL, HFILL }},
39405         { &hf_spoolss_spoolss_DeviceMode_bitsperpel,
39406           { "Bitsperpel", "spoolss.spoolss_DeviceMode.bitsperpel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39407         { &hf_spoolss_spoolss_OSVersionEx_extra_string,
39408           { "Extra String", "spoolss.spoolss_OSVersionEx.extra_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39409         { &hf_spoolss_spoolss_PrinterInfo_info0,
39410           { "Info0", "spoolss.spoolss_PrinterInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39411         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwOptions,
39412           { "Dwoptions", "spoolss.spoolss_PSDRVEXTRA500.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39413         { &hf_spoolss_spoolss_PSDRVEXTRA_caRedGreenTint,
39414           { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39415         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED,
39416           { "Printer Attribute Queued", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_QUEUED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED_tfs), ( 0x00000001 ), NULL, HFILL }},
39417         { &hf_spoolss_spoolss_SetJobInfo4_user_name,
39418           { "User Name", "spoolss.spoolss_SetJobInfo4.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39419         { &hf_spoolss_spoolss_DocumentInfoCtr_level,
39420           { "Level", "spoolss.spoolss_DocumentInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39421         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwChecksum32,
39422           { "Dwchecksum32", "spoolss.spoolss_UNIDRVEXTRA.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39423         { &hf_spoolss_spoolss_AddMonitorInfo1_monitor_name,
39424           { "Monitor Name", "spoolss.spoolss_AddMonitorInfo1.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39425         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_offered,
39426           { "Offered", "spoolss.spoolss_EnumPrintProcDataTypes.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39427         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_level,
39428           { "Level", "spoolss._spoolss_EnumPrintProcDataTypes.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39429         { &hf_spoolss_spoolss_DevmodeContainer_devmode,
39430           { "Devmode", "spoolss.spoolss_DevmodeContainer.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39431         { &hf_spoolss_RPC_BIDI_DATA_u_sData,
39432           { "Sdata", "spoolss.RPC_BIDI_DATA_u.sData", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39433         { &hf_spoolss_spoolss_PSDRVEXTRA_dwNupBorderFlags,
39434           { "Dwnupborderflags", "spoolss.spoolss_PSDRVEXTRA.dwNupBorderFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupBorderFlags_vals), 0, NULL, HFILL }},
39435         { &hf_spoolss_spoolss_JobInfo3_reserved,
39436           { "Reserved", "spoolss.spoolss_JobInfo3.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39437         { &hf_spoolss_spoolss_PrinterInfo0_version,
39438           { "Version", "spoolss.spoolss_PrinterInfo0.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39439         { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies,
39440           { "Core Driver Dependencies", "spoolss.spoolss_GetCorePrinterDrivers.core_driver_dependencies", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39441         { &hf_spoolss__spoolss_EnumPrintProcessors_count,
39442           { "Count", "spoolss._spoolss_EnumPrintProcessors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39443         { &hf_spoolss___spoolss_EnumPrinters_level,
39444           { "Level", "spoolss.__spoolss_EnumPrinters.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39445         { &hf_spoolss_spoolss_SetJobInfo2_priority,
39446           { "Priority", "spoolss.spoolss_SetJobInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39447         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer,
39448           { "Buffer", "spoolss.spoolss_EnumPrintProcDataTypes.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39449         { &hf_spoolss_spoolss_UserLevel3_size,
39450           { "Size", "spoolss.spoolss_UserLevel3.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39451         { &hf_spoolss_spoolss_DriverInfo8_driver_date,
39452           { "Driver Date", "spoolss.spoolss_DriverInfo8.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
39453         { &hf_spoolss_spoolss_JobInfo4_user_name,
39454           { "User Name", "spoolss.spoolss_JobInfo4.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39455         { &hf_spoolss_spoolss_DeviceMode_icmintent,
39456           { "Icmintent", "spoolss.spoolss_DeviceMode.icmintent", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeICMIntent_vals), 0, NULL, HFILL }},
39457         { &hf_spoolss_spoolss_DriverInfo101_monitor_name,
39458           { "Monitor Name", "spoolss.spoolss_DriverInfo101.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39459         { &hf_spoolss_spoolss_SetJobInfo1_job_id,
39460           { "Job Id", "spoolss.spoolss_SetJobInfo1.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39461         { &hf_spoolss_spoolss_PrinterInfo0_high_part_total_bytes,
39462           { "High Part Total Bytes", "spoolss.spoolss_PrinterInfo0.high_part_total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39463         { &hf_spoolss_spoolss_FormInfo2_unused,
39464           { "Unused", "spoolss.spoolss_FormInfo2.unused", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39465         { &hf_spoolss_spoolss_DriverInfo6_driver_date,
39466           { "Driver Date", "spoolss.spoolss_DriverInfo6.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
39467         { &hf_spoolss__spoolss_EnumPrinterDataEx_count,
39468           { "Count", "spoolss._spoolss_EnumPrinterDataEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39469         { &hf_spoolss_spoolss_JobInfo3_job_id,
39470           { "Job Id", "spoolss.spoolss_JobInfo3.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39471         { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter,
39472           { "Hprinter", "spoolss.spoolss_RpcGetJobNamedPropertyValue.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39473         { &hf_spoolss_spoolss_EnumPrinters_buffer,
39474           { "Buffer", "spoolss.spoolss_EnumPrinters.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39475         { &hf_spoolss__spoolss_EnumPrinters_buffer,
39476           { "Buffer", "spoolss._spoolss_EnumPrinters.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39477         { &hf_spoolss_spoolss_SetPortInfoFF_monitor_data,
39478           { "Monitor Data", "spoolss.spoolss_SetPortInfoFF.monitor_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39479         { &hf_spoolss_spoolss_Notify_field,
39480           { "Field", "spoolss.spoolss_Notify.field", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39481         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTING,
39482           { "Job Status Printing", "spoolss.spoolss_JobStatus.JOB_STATUS_PRINTING", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PRINTING_tfs), ( 0x00000010 ), NULL, HFILL }},
39483         { &hf_spoolss_spoolss_SetPortInfo3_status,
39484           { "Status", "spoolss.spoolss_SetPortInfo3.status", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortStatus_vals), 0, NULL, HFILL }},
39485         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WAITING,
39486           { "Printer Status Waiting", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_WAITING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_WAITING_tfs), ( 0x00002000 ), NULL, HFILL }},
39487         { &hf_spoolss_spoolss_DriverInfo2_data_file,
39488           { "Data File", "spoolss.spoolss_DriverInfo2.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39489         { &hf_spoolss_spoolss_PrinterInfo2_secdesc_,
39490           { "Subcontext length", "spoolss.spoolss_PrinterInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39491         { &hf_spoolss_spoolss_GetPrinterData_type,
39492           { "Type", "spoolss.spoolss_GetPrinterData.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
39493         { &hf_spoolss_spoolss_DeletePrinterDataEx_key_name,
39494           { "Key Name", "spoolss.spoolss_DeletePrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39495         { &hf_spoolss_spoolss_EnumPrinterDataEx_handle,
39496           { "Handle", "spoolss.spoolss_EnumPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39497         { &hf_spoolss_spoolss_PSDRVEXTRA500_caBrightness,
39498           { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA500.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39499         { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cIn,
39500           { "Cin", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.cIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39501         { &hf_spoolss_spoolss_SetPrinterInfo1_flags,
39502           { "Flags", "spoolss.spoolss_SetPrinterInfo1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39503         { &hf_spoolss_spoolss_AddFormInfo2_form_name,
39504           { "Form Name", "spoolss.spoolss_AddFormInfo2.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39505         { &hf_spoolss_spoolss_MonitorInfo_info2,
39506           { "Info2", "spoolss.spoolss_MonitorInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39507         { &hf_spoolss_spoolss_SetJobInfo_info4,
39508           { "Info4", "spoolss.spoolss_SetJobInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39509         { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt64,
39510           { "Propertyint64", "spoolss.RPC_PrintPropertyValueUnion.propertyInt64", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
39511         { &hf_spoolss_spoolss_JTEXP_wCoreMFOSize,
39512           { "Wcoremfosize", "spoolss.spoolss_JTEXP.wCoreMFOSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39513         { &hf_spoolss_spoolss_DeletePrinterKey_handle,
39514           { "Handle", "spoolss.spoolss_DeletePrinterKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39515         { &hf_spoolss_spoolss_PrinterInfo0_reserved2,
39516           { "Reserved2", "spoolss.spoolss_PrinterInfo0.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39517         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER,
39518           { "Printer Change Server", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SERVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER_tfs), ( 0x08000000 ), NULL, HFILL }},
39519         { &hf_spoolss_spoolss_DriverInfo8_print_processor,
39520           { "Print Processor", "spoolss.spoolss_DriverInfo8.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39521         { &hf_spoolss_spoolss_EnumPrinters_server,
39522           { "Server", "spoolss.spoolss_EnumPrinters.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39523         { &hf_spoolss_spoolss_EnumMonitors_count,
39524           { "Count", "spoolss.spoolss_EnumMonitors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39525         { &hf_spoolss_spoolss_JobInfo2_secdesc,
39526           { "Secdesc", "spoolss.spoolss_JobInfo2.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39527         { &hf_spoolss_spoolss_JobInfo2_job_id,
39528           { "Job Id", "spoolss.spoolss_JobInfo2.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39529         { &hf_spoolss_spoolss_DriverInfo8_architecture,
39530           { "Architecture", "spoolss.spoolss_DriverInfo8.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39531         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer,
39532           { "Buffer", "spoolss.spoolss_GetPrinterDriverDirectory.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39533         { &hf_spoolss__spoolss_EnumPrinters_info,
39534           { "Info", "spoolss._spoolss_EnumPrinters.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39535         { &hf_spoolss_spoolss_DriverInfo5_architecture,
39536           { "Architecture", "spoolss.spoolss_DriverInfo5.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39537         { &hf_spoolss_spoolss_JobInfo4_document_name,
39538           { "Document Name", "spoolss.spoolss_JobInfo4.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39539         { &hf_spoolss_spoolss_PSDRVEXTRA351_caFlags,
39540           { "Caflags", "spoolss.spoolss_PSDRVEXTRA351.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39541         { &hf_spoolss_spoolss_PrintProcessorDirectoryInfo1_directory_name,
39542           { "Directory Name", "spoolss.spoolss_PrintProcessorDirectoryInfo1.directory_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39543         { &hf_spoolss_spoolss_PSDRVEXTRA400_caSize,
39544           { "Casize", "spoolss.spoolss_PSDRVEXTRA400.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39545         { &hf_spoolss__spoolss_EnumPrinterDataEx_offered,
39546           { "Offered", "spoolss._spoolss_EnumPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39547         { &hf_spoolss_spoolss_RouterReplyPrinter_buffer,
39548           { "Buffer", "spoolss.spoolss_RouterReplyPrinter.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
39549         { &hf_spoolss_spoolss_SetPrinterInfo6_status,
39550           { "Status", "spoolss.spoolss_SetPrinterInfo6.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39551         { &hf_spoolss_spoolss_PrinterInfo0_free_build,
39552           { "Free Build", "spoolss.spoolss_PrinterInfo0.free_build", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_Build_vals), 0, NULL, HFILL }},
39553         { &hf_spoolss_spoolss_GetPrinterDriver2_buffer,
39554           { "Buffer", "spoolss.spoolss_GetPrinterDriver2.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39555         { &hf_spoolss_spoolss_AddDriverInfo_info3,
39556           { "Info3", "spoolss.spoolss_AddDriverInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39557         { &hf_spoolss_spoolss_AddDriverInfo8_hardware_id,
39558           { "Hardware Id", "spoolss.spoolss_AddDriverInfo8.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39559         { &hf_spoolss___spoolss_EnumPrinters_info,
39560           { "Info", "spoolss.__spoolss_EnumPrinters.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39561         { &hf_spoolss_spoolss_DriverInfo7_install_source_root,
39562           { "Install Source Root", "spoolss.spoolss_DriverInfo7.install_source_root", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39563         { &hf_spoolss_spoolss_SetJobInfo4_position,
39564           { "Position", "spoolss.spoolss_SetJobInfo4.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39565         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY,
39566           { "Devmode Printquality", "spoolss.spoolss_DeviceModeFields.DEVMODE_PRINTQUALITY", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY_tfs), ( 0x00000400 ), NULL, HFILL }},
39567         { &hf_spoolss_spoolss_PrinterData_string_array,
39568           { "String Array", "spoolss.spoolss_PrinterData.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39569         { &hf_spoolss_spoolss_AddFormInfoCtr_info,
39570           { "Info", "spoolss.spoolss_AddFormInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39571         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab,
39572           { "Driver Package Cab", "spoolss.spoolss_GetPrinterDriverPackagePath.driver_package_cab", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39573         { &hf_spoolss_spoolss_EnumPorts_count,
39574           { "Count", "spoolss.spoolss_EnumPorts.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39575         { &hf_spoolss_spoolss_DeviceMode_pelsheight,
39576           { "Pelsheight", "spoolss.spoolss_DeviceMode.pelsheight", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39577         { &hf_spoolss_spoolss_NotifyString_string,
39578           { "String", "spoolss.spoolss_NotifyString.string", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39579         { &hf_spoolss_spoolss_FormInfo1_size,
39580           { "Size", "spoolss.spoolss_FormInfo1.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39581         { &hf_spoolss_spoolss_AddMonitorInfo2_monitor_name,
39582           { "Monitor Name", "spoolss.spoolss_AddMonitorInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39583         { &hf_spoolss_spoolss_PrinterInfo0_time,
39584           { "Time", "spoolss.spoolss_PrinterInfo0.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39585         { &hf_spoolss_spoolss_JobInfo2_notify_name,
39586           { "Notify Name", "spoolss.spoolss_JobInfo2.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39587         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE,
39588           { "Apd Return Blocking Status Code", "spoolss.spoolss_AddPrinterDriverExFlags.APD_RETURN_BLOCKING_STATUS_CODE", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE_tfs), ( 0x00010000 ), NULL, HFILL }},
39589         { &hf_spoolss_spoolss_AddDriverInfo8_architecture,
39590           { "Architecture", "spoolss.spoolss_AddDriverInfo8.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39591         { &hf_spoolss_spoolss_DriverInfo6_manufacturer_name,
39592           { "Manufacturer Name", "spoolss.spoolss_DriverInfo6.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39593         { &hf_spoolss__spoolss_EnumPrinters_server,
39594           { "Server", "spoolss._spoolss_EnumPrinters.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39595         { &hf_spoolss_RPC_BIDI_REQUEST_DATA_dwReqNumber,
39596           { "Dwreqnumber", "spoolss.RPC_BIDI_REQUEST_DATA.dwReqNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39597         { &hf_spoolss_spoolss_SetPrinterInfo0_ref_ic,
39598           { "Ref Ic", "spoolss.spoolss_SetPrinterInfo0.ref_ic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39599         { &hf_spoolss_spoolss_JTEXP_FeatureOptionPairs,
39600           { "Featureoptionpairs", "spoolss.spoolss_JTEXP.FeatureOptionPairs", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39601         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_LOGPIXELS,
39602           { "Devmode Logpixels", "spoolss.spoolss_DeviceModeFields.DEVMODE_LOGPIXELS", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_LOGPIXELS_tfs), ( 0x00020000 ), NULL, HFILL }},
39603         { &hf_spoolss_spoolss_DriverInfo6_manufacturer_url,
39604           { "Manufacturer Url", "spoolss.spoolss_DriverInfo6.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39605         { &hf_spoolss__spoolss_EnumMonitors_offered,
39606           { "Offered", "spoolss._spoolss_EnumMonitors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39607         { &hf_spoolss_spoolss_AddDriverInfo8_driver_version,
39608           { "Driver Version", "spoolss.spoolss_AddDriverInfo8.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
39609         { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut,
39610           { "Pout", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pOut", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
39611         { &hf_spoolss_spoolss_SetPrinterInfo2_sepfile,
39612           { "Sepfile", "spoolss.spoolss_SetPrinterInfo2.sepfile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39613         { &hf_spoolss_spoolss_GetPrinterDriver_info,
39614           { "Info", "spoolss.spoolss_GetPrinterDriver.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39615         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS,
39616           { "Printer Attribute Keepprintedjobs", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS_tfs), ( 0x00000100 ), NULL, HFILL }},
39617         { &hf_spoolss_spoolss_DeviceMode_displayfrequency,
39618           { "Displayfrequency", "spoolss.spoolss_DeviceMode.displayfrequency", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39619         { &hf_spoolss_spoolss_JobInfo2_text_status,
39620           { "Text Status", "spoolss.spoolss_JobInfo2.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39621         { &hf_spoolss_spoolss_AddPrinterDriver_info_ctr,
39622           { "Info Ctr", "spoolss.spoolss_AddPrinterDriver.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39623         { &hf_spoolss_spoolss_AddDriverInfo8_printer_driver_attributes,
39624           { "Printer Driver Attributes", "spoolss.spoolss_AddDriverInfo8.printer_driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39625         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN,
39626           { "Printer Status Door Open", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_DOOR_OPEN", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN_tfs), ( 0x00400000 ), NULL, HFILL }},
39627         { &hf_spoolss_spoolss_MonitorInfo_info1,
39628           { "Info1", "spoolss.spoolss_MonitorInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39629         { &hf_spoolss___spoolss_EnumPrinterDrivers_info,
39630           { "Info", "spoolss.__spoolss_EnumPrinterDrivers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39631         { &hf_spoolss_spoolss_AddDriverInfo8_previous_names,
39632           { "Previous Names", "spoolss.spoolss_AddDriverInfo8.previous_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39633         { &hf_spoolss_spoolss_AddDriverInfo8_dependent_files,
39634           { "Dependent Files", "spoolss.spoolss_AddDriverInfo8.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39635         { &hf_spoolss_spoolss_EnumPrinterData_value_needed,
39636           { "Value Needed", "spoolss.spoolss_EnumPrinterData.value_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39637         { &hf_spoolss_spoolss_AddDriverInfo2_version,
39638           { "Version", "spoolss.spoolss_AddDriverInfo2.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
39639         { &hf_spoolss_spoolss_PSDRVEXTRA500_aOptions,
39640           { "Aoptions", "spoolss.spoolss_PSDRVEXTRA500.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39641         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER,
39642           { "Printer Change Delete Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_tfs), ( 0x00000004 ), NULL, HFILL }},
39643         { &hf_spoolss_spoolss_SetPrinterInfo0_high_part_total_bytes,
39644           { "High Part Total Bytes", "spoolss.spoolss_SetPrinterInfo0.high_part_total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39645         { &hf_spoolss_spoolss_SetJobInfo2_time,
39646           { "Time", "spoolss.spoolss_SetJobInfo2.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39647         { &hf_spoolss__spoolss_EnumForms_level,
39648           { "Level", "spoolss._spoolss_EnumForms.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39649         { &hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url,
39650           { "Manufacturer Url", "spoolss.spoolss_AddDriverInfo8.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39651         { &hf_spoolss_spoolss_AddForm_info_ctr,
39652           { "Info Ctr", "spoolss.spoolss_AddForm.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39653         { &hf_spoolss_spoolss_PrinterInfo2_cjobs,
39654           { "Cjobs", "spoolss.spoolss_PrinterInfo2.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39655         { &hf_spoolss_spoolss_GetForm_needed,
39656           { "Needed", "spoolss.spoolss_GetForm.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39657         { &hf_spoolss_spoolss_UNIDRVEXTRA_wCoreFullSize,
39658           { "Wcorefullsize", "spoolss.spoolss_UNIDRVEXTRA.wCoreFullSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39659         { &hf_spoolss_spoolss_GetPrinterDriver2_info_,
39660           { "Subcontext length", "spoolss.spoolss_GetPrinterDriver2.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39661         { &hf_spoolss_spoolss_SetPrinterData_handle,
39662           { "Handle", "spoolss.spoolss_SetPrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39663         { &hf_spoolss_spoolss_GetPrinter_info_,
39664           { "Subcontext length", "spoolss.spoolss_GetPrinter.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39665         { &hf_spoolss_spoolss_PortInfo3_status,
39666           { "Status", "spoolss.spoolss_PortInfo3.status", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortStatus_vals), 0, NULL, HFILL }},
39667         { &hf_spoolss_spoolss_SetPrinterInfo4_printername,
39668           { "Printername", "spoolss.spoolss_SetPrinterInfo4.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39669         { &hf_spoolss_spoolss_EnumMonitors_info,
39670           { "Info", "spoolss.spoolss_EnumMonitors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39671         { &hf_spoolss_spoolss_SetJobInfo2_pages_printed,
39672           { "Pages Printed", "spoolss.spoolss_SetJobInfo2.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39673         { &hf_spoolss_spoolss_JobInfo2_secdesc_,
39674           { "Subcontext length", "spoolss.spoolss_JobInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39675         { &hf_spoolss_spoolss_PSDRVEXTRA500_caBlueGamma,
39676           { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA500.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39677         { &hf_spoolss_spoolss_JobInfo4_data_type,
39678           { "Data Type", "spoolss.spoolss_JobInfo4.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39679         { &hf_spoolss_spoolss_EnumJobs_firstjob,
39680           { "Firstjob", "spoolss.spoolss_EnumJobs.firstjob", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39681         { &hf_spoolss_spoolss_DriverInfo_info4,
39682           { "Info4", "spoolss.spoolss_DriverInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39683         { &hf_spoolss_spoolss_SetPrinterInfo0_enumerate_network_printers,
39684           { "Enumerate Network Printers", "spoolss.spoolss_SetPrinterInfo0.enumerate_network_printers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39685         { &hf_spoolss__spoolss_EnumPrinterDrivers_needed,
39686           { "Needed", "spoolss._spoolss_EnumPrinterDrivers.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39687         { &hf_spoolss_spoolss_SetJobInfo4_printer_name,
39688           { "Printer Name", "spoolss.spoolss_SetJobInfo4.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39689         { &hf_spoolss_spoolss_JobInfo2_printer_name,
39690           { "Printer Name", "spoolss.spoolss_JobInfo2.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39691         { &hf_spoolss_spoolss_EnumPrinterKey_offered,
39692           { "Offered", "spoolss.spoolss_EnumPrinterKey.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39693         { &hf_spoolss__spoolss_EnumPorts_offered,
39694           { "Offered", "spoolss._spoolss_EnumPorts.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39695         { &hf_spoolss_spoolss_DeviceMode_yresolution,
39696           { "Yresolution", "spoolss.spoolss_DeviceMode.yresolution", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39697         { &hf_spoolss_spoolss_EnumPrinters_info,
39698           { "Info", "spoolss.spoolss_EnumPrinters.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39699         { &hf_spoolss_spoolss_AddDriverInfo4_default_datatype,
39700           { "Default Datatype", "spoolss.spoolss_AddDriverInfo4.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39701         { &hf_spoolss_spoolss_JobInfo2_until_time,
39702           { "Until Time", "spoolss.spoolss_JobInfo2.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39703         { &hf_spoolss_spoolss_EnumPrinterData_data_offered,
39704           { "Data Offered", "spoolss.spoolss_EnumPrinterData.data_offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39705         { &hf_spoolss_spoolss_NotifyOptionType_u2,
39706           { "U2", "spoolss.spoolss_NotifyOptionType.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39707         { &hf_spoolss___spoolss_EnumPrintProcessors_level,
39708           { "Level", "spoolss.__spoolss_EnumPrintProcessors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39709         { &hf_spoolss_spoolss_EnumJobs_count,
39710           { "Count", "spoolss.spoolss_EnumJobs.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39711         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAUSED,
39712           { "Job Status Paused", "spoolss.spoolss_JobStatus.JOB_STATUS_PAUSED", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PAUSED_tfs), ( 0x00000001 ), NULL, HFILL }},
39713         { &hf_spoolss_spoolss_SetPrinterInfo0_change_id,
39714           { "Change Id", "spoolss.spoolss_SetPrinterInfo0.change_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39715         { &hf_spoolss_spoolss_AddDriverInfo4_previous_names,
39716           { "Previous Names", "spoolss.spoolss_AddDriverInfo4.previous_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39717         { &hf_spoolss_spoolss_DeletePrinterData_value_name,
39718           { "Value Name", "spoolss.spoolss_DeletePrinterData.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39719         { &hf_spoolss_spoolss_PSDRVEXTRA_dwSignature,
39720           { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
39721         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_ERROR,
39722           { "Printer Status Error", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_ERROR", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_ERROR_tfs), ( 0x00000002 ), NULL, HFILL }},
39723         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST,
39724           { "Printer Attribute Do Complete First", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST_tfs), ( 0x00000200 ), NULL, HFILL }},
39725         { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_JobId,
39726           { "Jobid", "spoolss.spoolss_RpcEnumJobNamedProperties.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39727         { &hf_spoolss_spoolss_SetPrinterInfoCtr_level,
39728           { "Level", "spoolss.spoolss_SetPrinterInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39729         { &hf_spoolss_spoolss_DeviceModeInfo_devmode_,
39730           { "Subcontext length", "spoolss.spoolss_DeviceModeInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39731         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER,
39732           { "Printer Change Delete Printer Driver", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PRINTER_DRIVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER_tfs), ( 0x40000000 ), NULL, HFILL }},
39733         { &hf_spoolss_spoolss_NotifyOptionType_u3,
39734           { "U3", "spoolss.spoolss_NotifyOptionType.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39735         { &hf_spoolss_spoolss_JobInfo1_server_name,
39736           { "Server Name", "spoolss.spoolss_JobInfo1.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39737         { &hf_spoolss_spoolss_PSDRVEXTRA400_caColorfulness,
39738           { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA400.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39739         { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwOptions,
39740           { "Dwoptions", "spoolss.spoolss_UNIDRVEXTRA500.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39741         { &hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr,
39742           { "Devmode Ptr", "spoolss.spoolss_SetPrinterInfo8.devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39743         { &hf_spoolss_spoolss_DriverInfo6_provider,
39744           { "Provider", "spoolss.spoolss_DriverInfo6.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39745         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION,
39746           { "Printer Status User Intervention", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_USER_INTERVENTION", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION_tfs), ( 0x00100000 ), NULL, HFILL }},
39747         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_server,
39748           { "Server", "spoolss.spoolss_GetPrinterDriverDirectory.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39749         { &hf_spoolss_spoolss_SetJobInfo2_notify_name,
39750           { "Notify Name", "spoolss.spoolss_SetJobInfo2.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39751         { &hf_spoolss___spoolss_EnumPrintProcDataTypes_info,
39752           { "Info", "spoolss.__spoolss_EnumPrintProcDataTypes.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39753         { &hf_spoolss_spoolss_JobInfo2_data_type,
39754           { "Data Type", "spoolss.spoolss_JobInfo2.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39755         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_needed,
39756           { "Needed", "spoolss.spoolss_GetPrintProcessorDirectory.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39757         { &hf_spoolss_spoolss_PSDRVEXTRA_dwHeightOffset,
39758           { "Dwheightoffset", "spoolss.spoolss_PSDRVEXTRA.dwHeightOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39759         { &hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData,
39760           { "Pprespdata", "spoolss.spoolss_RpcSendRecvBidiData.ppRespData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39761         { &hf_spoolss_spoolss_AddFormInfoCtr_level,
39762           { "Level", "spoolss.spoolss_AddFormInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39763         { &hf_spoolss_spoolss_RouterReplyPrinterEx_reply_type,
39764           { "Reply Type", "spoolss.spoolss_RouterReplyPrinterEx.reply_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39765         { &hf_spoolss_spoolss_SetJobInfo1_user_name,
39766           { "User Name", "spoolss.spoolss_SetJobInfo1.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39767         { &hf_spoolss_spoolss_AddFormInfo2_area,
39768           { "Area", "spoolss.spoolss_AddFormInfo2.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39769         { &hf_spoolss_spoolss_JobInfo4_job_id,
39770           { "Job Id", "spoolss.spoolss_JobInfo4.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39771         { &hf_spoolss_spoolss_JobInfo4_secdesc_,
39772           { "Subcontext length", "spoolss.spoolss_JobInfo4.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39773         { &hf_spoolss_spoolss_GetJob_info_,
39774           { "Subcontext length", "spoolss.spoolss_GetJob.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39775         { &hf_spoolss_spoolss_DriverInfo8_manufacturer_name,
39776           { "Manufacturer Name", "spoolss.spoolss_DriverInfo8.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39777         { &hf_spoolss_spoolss_EnumPrinterDrivers_offered,
39778           { "Offered", "spoolss.spoolss_EnumPrinterDrivers.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39779         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_SPOOLING,
39780           { "Job Status Spooling", "spoolss.spoolss_JobStatus.JOB_STATUS_SPOOLING", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_SPOOLING_tfs), ( 0x00000008 ), NULL, HFILL }},
39781         { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Count,
39782           { "Count", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.Count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39783         { &hf_spoolss_spoolss_SetJobInfo4_parameters,
39784           { "Parameters", "spoolss.spoolss_SetJobInfo4.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39785         { &hf_spoolss_spoolss_DriverInfo101_file_info,
39786           { "File Info", "spoolss.spoolss_DriverInfo101.file_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39787         { &hf_spoolss_spoolss_GetPrinter_level,
39788           { "Level", "spoolss.spoolss_GetPrinter.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39789         { &hf_spoolss_spoolss_DeviceMode_papersize,
39790           { "Papersize", "spoolss.spoolss_DeviceMode.papersize", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModePaperSize_vals), 0, NULL, HFILL }},
39791         { &hf_spoolss_spoolss_DeletePrinterKey_key_name,
39792           { "Key Name", "spoolss.spoolss_DeletePrinterKey.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39793         { &hf_spoolss_spoolss_PSDRVEXTRA351_caContrast,
39794           { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA351.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39795         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES,
39796           { "Apd Copy New Files", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_NEW_FILES", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES_tfs), ( 0x00000008 ), NULL, HFILL }},
39797         { &hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr,
39798           { " Secdesc Ptr", "spoolss.spoolss_SetJobInfo2._secdesc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39799         { &hf_spoolss_spoolss_AddPerMachineConnection_printername,
39800           { "Printername", "spoolss.spoolss_AddPerMachineConnection.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39801         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_server,
39802           { "Server", "spoolss.spoolss_GetPrintProcessorDirectory.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39803         { &hf_spoolss_spoolss_SetPrinterDataEx_value_name,
39804           { "Value Name", "spoolss.spoolss_SetPrinterDataEx.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39805         { &hf_spoolss_spoolss_PrinterInfo_info5,
39806           { "Info5", "spoolss.spoolss_PrinterInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39807         { &hf_spoolss_spoolss_UNIDRVEXTRA_wReserved,
39808           { "Wreserved", "spoolss.spoolss_UNIDRVEXTRA.wReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39809         { &hf_spoolss_spoolss_SetJobInfo1_pages_printed,
39810           { "Pages Printed", "spoolss.spoolss_SetJobInfo1.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39811         { &hf_spoolss_spoolss_XcvData_out_data_size,
39812           { "Out Data Size", "spoolss.spoolss_XcvData.out_data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39813         { &hf_spoolss__spoolss_EnumPorts_buffer,
39814           { "Buffer", "spoolss._spoolss_EnumPorts.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39815         { &hf_spoolss__spoolss_EnumPrinters_needed,
39816           { "Needed", "spoolss._spoolss_EnumPrinters.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39817         { &hf_spoolss_spoolss_PrinterInfo0_ref_ic,
39818           { "Ref Ic", "spoolss.spoolss_PrinterInfo0.ref_ic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39819         { &hf_spoolss_spoolss_DocumentInfo1_document_name,
39820           { "Document Name", "spoolss.spoolss_DocumentInfo1.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39821         { &hf_spoolss_spoolss_DriverInfo3_monitor_name,
39822           { "Monitor Name", "spoolss.spoolss_DriverInfo3.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39823         { &hf_spoolss___spoolss_EnumJobs_level,
39824           { "Level", "spoolss.__spoolss_EnumJobs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39825         { &hf_spoolss_spoolss_RpcDeleteJobNamedProperty_JobId,
39826           { "Jobid", "spoolss.spoolss_RpcDeleteJobNamedProperty.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39827         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION,
39828           { "Job Status User Intervention", "spoolss.spoolss_JobStatus.JOB_STATUS_USER_INTERVENTION", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION_tfs), ( 0x00000400 ), NULL, HFILL }},
39829         { &hf_spoolss__spoolss_EnumPrintProcessors_needed,
39830           { "Needed", "spoolss._spoolss_EnumPrintProcessors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39831         { &hf_spoolss_spoolss_PrintProcDataTypesInfo_info1,
39832           { "Info1", "spoolss.spoolss_PrintProcDataTypesInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39833         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6,
39834           { "Printer Enum Icon6", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON6", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6_tfs), ( 0x00200000 ), NULL, HFILL }},
39835         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE,
39836           { "Printer Driver Category Service", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_SERVICE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE_tfs), ( 0x00000200 ), NULL, HFILL }},
39837         { &hf_spoolss_spoolss_SetJobInfo4_total_pages,
39838           { "Total Pages", "spoolss.spoolss_SetJobInfo4.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39839         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwWidthOffset,
39840           { "Dwwidthoffset", "spoolss.spoolss_PSDRVEXTRA500.dwWidthOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39841         { &hf_spoolss_spoolss_PSDRVEXTRA_dwPadding,
39842           { "Dwpadding", "spoolss.spoolss_PSDRVEXTRA.dwPadding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39843         { &hf_spoolss_spoolss_AddDriverInfo5_architecture,
39844           { "Architecture", "spoolss.spoolss_AddDriverInfo5.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39845         { &hf_spoolss_RPC_PrintPropertyValue_ePropertyType,
39846           { "Epropertytype", "spoolss.RPC_PrintPropertyValue.ePropertyType", FT_UINT1632, BASE_DEC, VALS(spoolss_RPC_EPrintPropertyType_vals), 0, NULL, HFILL }},
39847         { &hf_spoolss_spoolss_SetJobInfo2_user_name,
39848           { "User Name", "spoolss.spoolss_SetJobInfo2.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39849         { &hf_spoolss_spoolss_OSVersion_extra_string_,
39850           { "Subcontext length", "spoolss.spoolss_OSVersion.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39851         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE,
39852           { "Devmode Defaultsource", "spoolss.spoolss_DeviceModeFields.DEVMODE_DEFAULTSOURCE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE_tfs), ( 0x00000200 ), NULL, HFILL }},
39853         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwNupBorderFlags,
39854           { "Dwnupborderflags", "spoolss.spoolss_UNIDRVEXTRA.dwNupBorderFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupBorderFlags_vals), 0, NULL, HFILL }},
39855         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT,
39856           { "Devmode Panningheight", "spoolss.spoolss_DeviceModeFields.DEVMODE_PANNINGHEIGHT", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT_tfs), ( 0x10000000 ), NULL, HFILL }},
39857         { &hf_spoolss_spoolss_SetJob_command,
39858           { "Command", "spoolss.spoolss_SetJob.command", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_JobControl_vals), 0, NULL, HFILL }},
39859         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_info_,
39860           { "Subcontext length", "spoolss.spoolss_GetPrintProcessorDirectory.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39861         { &hf_spoolss_spoolss_FormInfo2_string_type,
39862           { "String Type", "spoolss.spoolss_FormInfo2.string_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39863         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwFlags,
39864           { "Dwflags", "spoolss.spoolss_PSDRVEXTRA500.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39865         { &hf_spoolss_spoolss_AddDriverInfo3_monitor_name,
39866           { "Monitor Name", "spoolss.spoolss_AddDriverInfo3.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39867         { &hf_spoolss_spoolss_SetPrinterInfo0_version,
39868           { "Version", "spoolss.spoolss_SetPrinterInfo0.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39869         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP,
39870           { "Printer Status Warming Up", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_WARMING_UP", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP_tfs), ( 0x00010000 ), NULL, HFILL }},
39871         { &hf_spoolss_spoolss_AddPrinterEx_devmode_ctr,
39872           { "Devmode Ctr", "spoolss.spoolss_AddPrinterEx.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39873         { &hf_spoolss_spoolss_SetPrinterDataEx_data,
39874           { "Data", "spoolss.spoolss_SetPrinterDataEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
39875         { &hf_spoolss_spoolss_CreatePrinterIC_handle,
39876           { "Handle", "spoolss.spoolss_CreatePrinterIC.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39877         { &hf_spoolss_spoolss_DriverInfo6_help_file,
39878           { "Help File", "spoolss.spoolss_DriverInfo6.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39879         { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_color_profiles,
39880           { " Ndr Size Color Profiles", "spoolss.spoolss_AddDriverInfo8._ndr_size_color_profiles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39881         { &hf_spoolss__spoolss_EnumPrinters_flags,
39882           { "Flags", "spoolss._spoolss_EnumPrinters.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39883         { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra500,
39884           { "Psdrvextra500", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra500", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39885         { &hf_spoolss_spoolss_PrinterInfo_info2,
39886           { "Info2", "spoolss.spoolss_PrinterInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39887         { &hf_spoolss_spoolss_SetPrinterInfo_info6,
39888           { "Info6", "spoolss.spoolss_SetPrinterInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39889         { &hf_spoolss_spoolss_EnumPrintProcessors_environment,
39890           { "Environment", "spoolss.spoolss_EnumPrintProcessors.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39891         { &hf_spoolss_spoolss_OSVersion_build,
39892           { "Build", "spoolss.spoolss_OSVersion.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39893         { &hf_spoolss_spoolss_PrinterInfo0_last_error,
39894           { "Last Error", "spoolss.spoolss_PrinterInfo0.last_error", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
39895         { &hf_spoolss_spoolss_AddPerMachineConnection_printserver,
39896           { "Printserver", "spoolss.spoolss_AddPerMachineConnection.printserver", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39897         { &hf_spoolss_spoolss_WritePrinter_data,
39898           { "Data", "spoolss.spoolss_WritePrinter.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39899         { &hf_spoolss__spoolss_EnumJobs_info,
39900           { "Info", "spoolss._spoolss_EnumJobs.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39901         { &hf_spoolss_spoolss_DriverInfo7_size,
39902           { "Size", "spoolss.spoolss_DriverInfo7.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39903         { &hf_spoolss_spoolss_PSDRVEXTRA400_caIlluminantIndex,
39904           { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA400.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39905         { &hf_spoolss_spoolss_EnumPorts_offered,
39906           { "Offered", "spoolss.spoolss_EnumPorts.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39907         { &hf_spoolss_spoolss_PortData1_ip_address,
39908           { "Ip Address", "spoolss.spoolss_PortData1.ip_address", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39909         { &hf_spoolss_spoolss_Time_minute,
39910           { "Minute", "spoolss.spoolss_Time.minute", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39911         { &hf_spoolss_spoolss_AddPortEx_monitor_name,
39912           { "Monitor Name", "spoolss.spoolss_AddPortEx.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39913         { &hf_spoolss_spoolss_UNIDRVEXTRA500_iQuality,
39914           { "Iquality", "spoolss.spoolss_UNIDRVEXTRA500.iQuality", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMUNI_Quality_vals), 0, NULL, HFILL }},
39915         { &hf_spoolss_spoolss_DriverInfo3_default_datatype,
39916           { "Default Datatype", "spoolss.spoolss_DriverInfo3.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39917         { &hf_spoolss_spoolss_SetJobInfo2_until_time,
39918           { "Until Time", "spoolss.spoolss_SetJobInfo2.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39919         { &hf_spoolss_spoolss_XcvData_status_code,
39920           { "Status Code", "spoolss.spoolss_XcvData.status_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39921         { &hf_spoolss_spoolss_JobInfo3_next_job_id,
39922           { "Next Job Id", "spoolss.spoolss_JobInfo3.next_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39923         { &hf_spoolss_spoolss_AddDriverInfoCtr_level,
39924           { "Level", "spoolss.spoolss_AddDriverInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39925         { &hf_spoolss_RPC_PrintPropertyValue_value,
39926           { "Value", "spoolss.RPC_PrintPropertyValue.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39927         { &hf_spoolss_spoolss_PSDRVEXTRA400_caRedGamma,
39928           { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA400.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39929         { &hf_spoolss_spoolss_PrinterEnumValues_data_,
39930           { "Subcontext length", "spoolss.spoolss_PrinterEnumValues.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
39931         { &hf_spoolss_spoolss_DriverInfo1_driver_name,
39932           { "Driver Name", "spoolss.spoolss_DriverInfo1.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39933         { &hf_spoolss_spoolss_DeviceMode_driverextra_data,
39934           { "Driverextra Data", "spoolss.spoolss_DeviceMode.driverextra_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39935         { &hf_spoolss_spoolss_UserLevel1_build,
39936           { "Build", "spoolss.spoolss_UserLevel1.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39937         { &hf_spoolss_spoolss_AddDriverInfo8_data_file,
39938           { "Data File", "spoolss.spoolss_AddDriverInfo8.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39939         { &hf_spoolss_spoolss_PSDRVEXTRA_wOEMExtra,
39940           { "Woemextra", "spoolss.spoolss_PSDRVEXTRA.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39941         { &hf_spoolss_spoolss_GetPrinterDataEx_handle,
39942           { "Handle", "spoolss.spoolss_GetPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39943         { &hf_spoolss_spoolss_GetJob_info,
39944           { "Info", "spoolss.spoolss_GetJob.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39945         { &hf_spoolss_spoolss_PSDRVEXTRA400_caContrast,
39946           { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA400.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
39947         { &hf_spoolss_spoolss_AddPrinterEx_info_ctr,
39948           { "Info Ctr", "spoolss.spoolss_AddPrinterEx.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39949         { &hf_spoolss_spoolss_PSDRVEXTRA_wFeedDirection,
39950           { "Wfeeddirection", "spoolss.spoolss_PSDRVEXTRA.wFeedDirection", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_DMPS_FeedDirection_vals), 0, NULL, HFILL }},
39951         { &hf_spoolss__spoolss_EnumPrintProcessors_buffer,
39952           { "Buffer", "spoolss._spoolss_EnumPrintProcessors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39953         { &hf_spoolss_UNIVERSAL_FONT_ID_ctr_count,
39954           { "Count", "spoolss.UNIVERSAL_FONT_ID_ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39955         { &hf_spoolss_spoolss_NotifyString_size,
39956           { "Size", "spoolss.spoolss_NotifyString.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39957         { &hf_spoolss_spoolss_PrinterInfo0_status,
39958           { "Status", "spoolss.spoolss_PrinterInfo0.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
39959         { &hf_spoolss_spoolss_SetPrinterInfo_info3,
39960           { "Info3", "spoolss.spoolss_SetPrinterInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39961         { &hf_spoolss_spoolss_PrinterInfo0_c_setprinter,
39962           { "C Setprinter", "spoolss.spoolss_PrinterInfo0.c_setprinter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39963         { &hf_spoolss__spoolss_EnumPrintProcessors_environment,
39964           { "Environment", "spoolss._spoolss_EnumPrintProcessors.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39965         { &hf_spoolss_spoolss_GetForm_offered,
39966           { "Offered", "spoolss.spoolss_GetForm.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39967         { &hf_spoolss_spoolss_SetPrinterInfo0_num_error_out_of_paper,
39968           { "Num Error Out Of Paper", "spoolss.spoolss_SetPrinterInfo0.num_error_out_of_paper", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39969         { &hf_spoolss___spoolss_EnumPrinters_count,
39970           { "Count", "spoolss.__spoolss_EnumPrinters.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39971         { &hf_spoolss_spoolss_PortInfo3_severity,
39972           { "Severity", "spoolss.spoolss_PortInfo3.severity", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortSeverity_vals), 0, NULL, HFILL }},
39973         { &hf_spoolss_spoolss_XcvData_out_data,
39974           { "Out Data", "spoolss.spoolss_XcvData.out_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
39975         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_servername,
39976           { "Servername", "spoolss.spoolss_EnumPrintProcDataTypes.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39977         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_info,
39978           { "Info", "spoolss.spoolss_GetPrinterDriverDirectory.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39979         { &hf_spoolss_spoolss_EnumPrinterKey_key_buffer,
39980           { "Key Buffer", "spoolss.spoolss_EnumPrinterKey.key_buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39981         { &hf_spoolss_spoolss_UserLevel3_flags,
39982           { "Flags", "spoolss.spoolss_UserLevel3.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39983         { &hf_spoolss_spoolss_DeletePrinter_handle,
39984           { "Handle", "spoolss.spoolss_DeletePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39985         { &hf_spoolss_spoolss_AddDriverInfo4_config_file,
39986           { "Config File", "spoolss.spoolss_AddDriverInfo4.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39987         { &hf_spoolss_spoolss_GetCorePrinterDrivers_servername,
39988           { "Servername", "spoolss.spoolss_GetCorePrinterDrivers.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39989         { &hf_spoolss_spoolss_GetPrinterData_handle,
39990           { "Handle", "spoolss.spoolss_GetPrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
39991         { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_printer_local,
39992           { "Printer Local", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.printer_local", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39993         { &hf_spoolss_spoolss_DeletePrinterDriverEx_architecture,
39994           { "Architecture", "spoolss.spoolss_DeletePrinterDriverEx.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
39995         { &hf_spoolss___spoolss_EnumMonitors_level,
39996           { "Level", "spoolss.__spoolss_EnumMonitors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
39997         { &hf_spoolss_spoolss_RouterReplyPrinterEx_info,
39998           { "Info", "spoolss.spoolss_RouterReplyPrinterEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
39999         { &hf_spoolss_spoolss_DeletePrintProcessor_print_processor_name,
40000           { "Print Processor Name", "spoolss.spoolss_DeletePrintProcessor.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40001         { &hf_spoolss_spoolss_DeletePrinterDriver_server,
40002           { "Server", "spoolss.spoolss_DeletePrinterDriver.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40003         { &hf_spoolss_spoolss_PSDRVEXTRA_caBrightness,
40004           { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40005         { &hf_spoolss_spoolss_PortData1_size,
40006           { "Size", "spoolss.spoolss_PortData1.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40007         { &hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES,
40008           { "Dpd Delete Unused Files", "spoolss.spoolss_DeleteDriverFlags.DPD_DELETE_UNUSED_FILES", FT_BOOLEAN, 32, TFS(&spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES_tfs), ( 0x00000001 ), NULL, HFILL }},
40009         { &hf_spoolss_spoolss_PortData1_snmpcommunity,
40010           { "Snmpcommunity", "spoolss.spoolss_PortData1.snmpcommunity", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40011         { &hf_spoolss_spoolss_UserLevel1_client,
40012           { "Client", "spoolss.spoolss_UserLevel1.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40013         { &hf_spoolss_spoolss_KeyNames_string_array,
40014           { "String Array", "spoolss.spoolss_KeyNames.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40015         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture,
40016           { "Architecture", "spoolss.spoolss_GetPrinterDriverPackagePath.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40017         { &hf_spoolss__spoolss_EnumMonitors_servername,
40018           { "Servername", "spoolss._spoolss_EnumMonitors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40019         { &hf_spoolss_spoolss_AddMonitorInfo_info2,
40020           { "Info2", "spoolss.spoolss_AddMonitorInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40021         { &hf_spoolss_spoolss_SetPrinterInfo2_sharename,
40022           { "Sharename", "spoolss.spoolss_SetPrinterInfo2.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40023         { &hf_spoolss_spoolss_SetPrinterInfo_info4,
40024           { "Info4", "spoolss.spoolss_SetPrinterInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40025         { &hf_spoolss_spoolss_EnumForms_level,
40026           { "Level", "spoolss.spoolss_EnumForms.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40027         { &hf_spoolss_spoolss_ReadPrinter_handle,
40028           { "Handle", "spoolss.spoolss_ReadPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40029         { &hf_spoolss_spoolss_DriverInfo8_inf_path,
40030           { "Inf Path", "spoolss.spoolss_DriverInfo8.inf_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40031         { &hf_spoolss_spoolss_AddDriverInfo6_driver_version,
40032           { "Driver Version", "spoolss.spoolss_AddDriverInfo6.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
40033         { &hf_spoolss_spoolss_SetJobInfo_info2,
40034           { "Info2", "spoolss.spoolss_SetJobInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40035         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_environment,
40036           { "Environment", "spoolss.spoolss_GetPrinterDriverDirectory.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40037         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED,
40038           { "Printer Driver Derived", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_DERIVED", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED_tfs), ( 0x00000010 ), NULL, HFILL }},
40039         { &hf_spoolss_spoolss_AddDriverInfo8_color_profiles,
40040           { "Color Profiles", "spoolss.spoolss_AddDriverInfo8.color_profiles", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40041         { &hf_spoolss_spoolss_AddDriverInfo8_vendor_setup,
40042           { "Vendor Setup", "spoolss.spoolss_AddDriverInfo8.vendor_setup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40043         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMINTENT,
40044           { "Devmode Icmintent", "spoolss.spoolss_DeviceModeFields.DEVMODE_ICMINTENT", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_ICMINTENT_tfs), ( 0x01000000 ), NULL, HFILL }},
40045         { &hf_spoolss_spoolss_OSVersionEx_service_pack_minor,
40046           { "Service Pack Minor", "spoolss.spoolss_OSVersionEx.service_pack_minor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40047         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE,
40048           { "Printer Enum Remote", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_REMOTE", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE_tfs), ( 0x00000010 ), NULL, HFILL }},
40049         { &hf_spoolss_spoolss_StartDocPrinter_job_id,
40050           { "Job Id", "spoolss.spoolss_StartDocPrinter.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40051         { &hf_spoolss__spoolss_EnumPrinters_count,
40052           { "Count", "spoolss._spoolss_EnumPrinters.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40053         { &hf_spoolss_spoolss_AddFormInfo2_lang_id,
40054           { "Lang Id", "spoolss.spoolss_AddFormInfo2.lang_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40055         { &hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR,
40056           { "Spoolss Form String Type Lang Pair", "spoolss.spoolss_FormStringType.SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", FT_BOOLEAN, 32, TFS(&spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR_tfs), ( 0x00000004 ), NULL, HFILL }},
40057         { &hf_spoolss_spoolss_JobInfo_info2,
40058           { "Info2", "spoolss.spoolss_JobInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40059         { &hf_spoolss__spoolss_EnumPrinterDrivers_count,
40060           { "Count", "spoolss._spoolss_EnumPrinterDrivers.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40061         { &hf_spoolss_spoolss_PortInfo_info1,
40062           { "Info1", "spoolss.spoolss_PortInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40063         { &hf_spoolss_spoolss_EnumForms_buffer,
40064           { "Buffer", "spoolss.spoolss_EnumForms.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40065         { &hf_spoolss_spoolss_PortData1_snmp_enabled,
40066           { "Snmp Enabled", "spoolss.spoolss_PortData1.snmp_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40067         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLOR,
40068           { "Devmode Color", "spoolss.spoolss_DeviceModeFields.DEVMODE_COLOR", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_COLOR_tfs), ( 0x00000800 ), NULL, HFILL }},
40069         { &hf_spoolss_spoolss_SetPortInfo2_port_name,
40070           { "Port Name", "spoolss.spoolss_SetPortInfo2.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40071         { &hf_spoolss_spoolss_EnumMonitors_buffer,
40072           { "Buffer", "spoolss.spoolss_EnumMonitors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40073         { &hf_spoolss_spoolss_PrinterInfo2_parameters,
40074           { "Parameters", "spoolss.spoolss_PrinterInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40075         { &hf_spoolss_spoolss_CorePrinterDriver_driver_date,
40076           { "Driver Date", "spoolss.spoolss_CorePrinterDriver.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
40077         { &hf_spoolss_spoolss_EnumPrinters_flags,
40078           { "Flags", "spoolss.spoolss_EnumPrinters.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40079         { &hf_spoolss_spoolss_SetPrinterInfo2_attributes,
40080           { "Attributes", "spoolss.spoolss_SetPrinterInfo2.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40081         { &hf_spoolss___spoolss_EnumJobs_info,
40082           { "Info", "spoolss.__spoolss_EnumJobs.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40083         { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32,
40084           { "Dwchecksum32", "spoolss.spoolss_UNIDRVEXTRA500.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40085         { &hf_spoolss_spoolss_ReadPrinter_data,
40086           { "Data", "spoolss.spoolss_ReadPrinter.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40087         { &hf_spoolss_spoolss_DriverInfo_info2,
40088           { "Info2", "spoolss.spoolss_DriverInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40089         { &hf_spoolss_spoolss_DriverInfo5_version,
40090           { "Version", "spoolss.spoolss_DriverInfo5.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40091         { &hf_spoolss_spoolss_JobInfo4_start_time,
40092           { "Start Time", "spoolss.spoolss_JobInfo4.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40093         { &hf_spoolss_spoolss_AddDriverInfo6_config_file,
40094           { "Config File", "spoolss.spoolss_AddDriverInfo6.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40095         { &hf_spoolss_spoolss_AddFormInfo1_flags,
40096           { "Flags", "spoolss.spoolss_AddFormInfo1.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
40097         { &hf_spoolss_spoolss_GetPrinterDriver_level,
40098           { "Level", "spoolss.spoolss_GetPrinterDriver.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40099         { &hf_spoolss_spoolss_ReadPrinter__data_size,
40100           { " Data Size", "spoolss.spoolss_ReadPrinter._data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40101         { &hf_spoolss_spoolss_EnumPrintProcessors_buffer,
40102           { "Buffer", "spoolss.spoolss_EnumPrintProcessors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40103         { &hf_spoolss_spoolss_SetPortInfo2_description,
40104           { "Description", "spoolss.spoolss_SetPortInfo2.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40105         { &hf_spoolss_spoolss_MonitorInfo1_monitor_name,
40106           { "Monitor Name", "spoolss.spoolss_MonitorInfo1.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40107         { &hf_spoolss_spoolss_DriverInfo3_driver_name,
40108           { "Driver Name", "spoolss.spoolss_DriverInfo3.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40109         { &hf_spoolss_spoolss_PrinterInfo5_printername,
40110           { "Printername", "spoolss.spoolss_PrinterInfo5.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40111         { &hf_spoolss_spoolss_SetJobInfo4_status,
40112           { "Status", "spoolss.spoolss_SetJobInfo4.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40113         { &hf_spoolss__spoolss_EnumPorts_needed,
40114           { "Needed", "spoolss._spoolss_EnumPorts.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40115         { &hf_spoolss_spoolss_GetPrinterDataEx_offered,
40116           { "Offered", "spoolss.spoolss_GetPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40117         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY,
40118           { "Devmode Displayfrequency", "spoolss.spoolss_DeviceModeFields.DEVMODE_DISPLAYFREQUENCY", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY_tfs), ( 0x00400000 ), NULL, HFILL }},
40119         { &hf_spoolss___spoolss_EnumPorts_info,
40120           { "Info", "spoolss.__spoolss_EnumPorts.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40121         { &hf_spoolss_spoolss_EnumPrinterDrivers_environment,
40122           { "Environment", "spoolss.spoolss_EnumPrinterDrivers.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40123         { &hf_spoolss_spoolss_FormInfo2_mui_dll,
40124           { "Mui Dll", "spoolss.spoolss_FormInfo2.mui_dll", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40125         { &hf_spoolss_spoolss_DeviceMode_driverversion,
40126           { "Driverversion", "spoolss.spoolss_DeviceMode.driverversion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40127         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTED,
40128           { "Job Status Printed", "spoolss.spoolss_JobStatus.JOB_STATUS_PRINTED", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PRINTED_tfs), ( 0x00000080 ), NULL, HFILL }},
40129         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI,
40130           { "Printer Attribute Enable Bidi", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_ENABLE_BIDI", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI_tfs), ( 0x00000800 ), NULL, HFILL }},
40131         { &hf_spoolss_spoolss_GetPrinterDriver2_client_major_version,
40132           { "Client Major Version", "spoolss.spoolss_GetPrinterDriver2.client_major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40133         { &hf_spoolss__spoolss_EnumJobs_buffer,
40134           { "Buffer", "spoolss._spoolss_EnumJobs.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40135         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETING,
40136           { "Job Status Deleting", "spoolss.spoolss_JobStatus.JOB_STATUS_DELETING", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_DELETING_tfs), ( 0x00000004 ), NULL, HFILL }},
40137         { &hf_spoolss__spoolss_EnumForms_needed,
40138           { "Needed", "spoolss._spoolss_EnumForms.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40139         { &hf_spoolss_spoolss_Notify_type,
40140           { "Type", "spoolss.spoolss_Notify.type", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_NotifyType_vals), 0, NULL, HFILL }},
40141         { &hf_spoolss_spoolss_PortData2_port_number,
40142           { "Port Number", "spoolss.spoolss_PortData2.port_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40143         { &hf_spoolss_spoolss_PrinterInfo0_max_spooling,
40144           { "Max Spooling", "spoolss.spoolss_PrinterInfo0.max_spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40145         { &hf_spoolss_spoolss_PSDRVEXTRA_caColorfulness,
40146           { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40147         { &hf_spoolss_spoolss_JobInfo2_parameters,
40148           { "Parameters", "spoolss.spoolss_JobInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40149         { &hf_spoolss_spoolss_GetForm_handle,
40150           { "Handle", "spoolss.spoolss_GetForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40151         { &hf_spoolss_spoolss_JobInfo2_print_processor,
40152           { "Print Processor", "spoolss.spoolss_JobInfo2.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40153         { &hf_spoolss_spoolss_SetPrinterInfo0_last_error,
40154           { "Last Error", "spoolss.spoolss_SetPrinterInfo0.last_error", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
40155         { &hf_spoolss_spoolss_AddDriverInfo4_monitor_name,
40156           { "Monitor Name", "spoolss.spoolss_AddDriverInfo4.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40157         { &hf_spoolss_spoolss_UserLevel3_build,
40158           { "Build", "spoolss.spoolss_UserLevel3.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40159         { &hf_spoolss_spoolss_OSVersionEx_build,
40160           { "Build", "spoolss.spoolss_OSVersionEx.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40161         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL,
40162           { "Printer Driver Category Virtual", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_VIRTUAL", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL_tfs), ( 0x00000100 ), NULL, HFILL }},
40163         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername,
40164           { "Servername", "spoolss.spoolss_GetPrinterDriverPackagePath.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40165         { &hf_spoolss_spoolss_UNIDRVEXTRA500_wOEMExtra,
40166           { "Woemextra", "spoolss.spoolss_UNIDRVEXTRA500.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40167         { &hf_spoolss_spoolss_DriverFileInfo_file_type,
40168           { "File Type", "spoolss.spoolss_DriverFileInfo.file_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverFileType_vals), 0, NULL, HFILL }},
40169         { &hf_spoolss_RPC_BIDI_DATA_u_iData,
40170           { "Idata", "spoolss.RPC_BIDI_DATA_u.iData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40171         { &hf_spoolss_spoolss_DriverInfo8_driver_path,
40172           { "Driver Path", "spoolss.spoolss_DriverInfo8.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40173         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_XPS,
40174           { "Printer Driver Xps", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_XPS", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_XPS_tfs), ( 0x00000002 ), NULL, HFILL }},
40175         { &hf_spoolss_spoolss_PSDRVEXTRA500_iDialect,
40176           { "Idialect", "spoolss.spoolss_PSDRVEXTRA500.iDialect", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_Dialect_vals), 0, NULL, HFILL }},
40177         { &hf_spoolss__spoolss_EnumMonitors_info,
40178           { "Info", "spoolss._spoolss_EnumMonitors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40179         { &hf_spoolss_spoolss_AddPrinterEx_handle,
40180           { "Handle", "spoolss.spoolss_AddPrinterEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40181         { &hf_spoolss_spoolss_JobInfo1_status,
40182           { "Status", "spoolss.spoolss_JobInfo1.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40183         { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE,
40184           { "Spoolss Port Type Write", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_WRITE", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE_tfs), ( 0x00000001 ), NULL, HFILL }},
40185         { &hf_spoolss_spoolss_JobInfo4_secdesc,
40186           { "Secdesc", "spoolss.spoolss_JobInfo4.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40187         { &hf_spoolss_spoolss_AddFormInfo1_size,
40188           { "Size", "spoolss.spoolss_AddFormInfo1.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40189         { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_core_driver_dependencies,
40190           { " Ndr Size Core Driver Dependencies", "spoolss.spoolss_AddDriverInfo8._ndr_size_core_driver_dependencies", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40191         { &hf_spoolss__spoolss_EnumPrinterDrivers_server,
40192           { "Server", "spoolss._spoolss_EnumPrinterDrivers.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40193         { &hf_spoolss_spoolss_PrinterInfo0_processor_level,
40194           { "Processor Level", "spoolss.spoolss_PrinterInfo0.processor_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40195         { &hf_spoolss_spoolss_SetJobInfo2_printer_name,
40196           { "Printer Name", "spoolss.spoolss_SetJobInfo2.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40197         { &hf_spoolss__spoolss_EnumMonitors_count,
40198           { "Count", "spoolss._spoolss_EnumMonitors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40199         { &hf_spoolss_spoolss_JobInfo4_pages_printed,
40200           { "Pages Printed", "spoolss.spoolss_JobInfo4.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40201         { &hf_spoolss_spoolss_NotifyOptionType_fields,
40202           { "Fields", "spoolss.spoolss_NotifyOptionType.fields", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40203         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX,
40204           { "Printer Driver Category Fax", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_FAX", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX_tfs), ( 0x00000040 ), NULL, HFILL }},
40205         { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra351,
40206           { "Psdrvextra351", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra351", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40207         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwX,
40208           { "Dwx", "spoolss.spoolss_PSDRVEXTRA500.dwX", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40209         { &hf_spoolss_spoolss_DevmodeContainer_devmode_,
40210           { "Subcontext length", "spoolss.spoolss_DevmodeContainer.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40211         { &hf_spoolss_spoolss_GetPrinter_info,
40212           { "Info", "spoolss.spoolss_GetPrinter.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40213         { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt32,
40214           { "Propertyint32", "spoolss.RPC_PrintPropertyValueUnion.propertyInt32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40215         { &hf_spoolss_spoolss_NotifyData_devmode,
40216           { "Devmode", "spoolss.spoolss_NotifyData.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40217         { &hf_spoolss_spoolss_DriverInfo8_config_file,
40218           { "Config File", "spoolss.spoolss_DriverInfo8.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40219         { &hf_spoolss_spoolss_SetPrinterDataEx_key_name,
40220           { "Key Name", "spoolss.spoolss_SetPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40221         { &hf_spoolss_spoolss_PSDRVEXTRA500_iPSLevel,
40222           { "Ipslevel", "spoolss.spoolss_PSDRVEXTRA500.iPSLevel", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_PSLevel_vals), 0, NULL, HFILL }},
40223         { &hf_spoolss_spoolss_PrinterInfo2_priority,
40224           { "Priority", "spoolss.spoolss_PrinterInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40225         { &hf_spoolss_spoolss_AddFormInfo1_area,
40226           { "Area", "spoolss.spoolss_AddFormInfo1.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40227         { &hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_date,
40228           { "Min Inbox Driver Ver Date", "spoolss.spoolss_DriverInfo8.min_inbox_driver_ver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
40229         { &hf_spoolss_spoolss_GetPrinterDriver2_offered,
40230           { "Offered", "spoolss.spoolss_GetPrinterDriver2.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40231         { &hf_spoolss_spoolss_PSDRVEXTRA500_fxScrAngle,
40232           { "Fxscrangle", "spoolss.spoolss_PSDRVEXTRA500.fxScrAngle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40233         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved2,
40234           { "Dwreserved2", "spoolss.spoolss_PSDRVEXTRA500.dwReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40235         { &hf_spoolss_spoolss_PrinterEnumValues_value_name,
40236           { "Value Name", "spoolss.spoolss_PrinterEnumValues.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40237         { &hf_spoolss_spoolss_SetPrinterInfo0_time,
40238           { "Time", "spoolss.spoolss_SetPrinterInfo0.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40239         { &hf_spoolss__spoolss_EnumPrinterDrivers_offered,
40240           { "Offered", "spoolss._spoolss_EnumPrinterDrivers.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40241         { &hf_spoolss_spoolss_DriverInfo101_file_count,
40242           { "File Count", "spoolss.spoolss_DriverInfo101.file_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40243         { &hf_spoolss_spoolss_PrinterInfo7_guid,
40244           { "Guid", "spoolss.spoolss_PrinterInfo7.guid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40245         { &hf_spoolss_spoolss_StringArray__ndr_size,
40246           { " Ndr Size", "spoolss.spoolss_StringArray._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40247         { &hf_spoolss_spoolss_NotifyInfo_count,
40248           { "Count", "spoolss.spoolss_NotifyInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40249         { &hf_spoolss_spoolss_FormArea_left,
40250           { "Left", "spoolss.spoolss_FormArea.left", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40251         { &hf_spoolss_spoolss_PSDRVEXTRA_iLayout,
40252           { "Ilayout", "spoolss.spoolss_PSDRVEXTRA.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
40253         { &hf_spoolss_spoolss_SetForm_info_ctr,
40254           { "Info Ctr", "spoolss.spoolss_SetForm.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40255         { &hf_spoolss_spoolss_AddFormInfo_info1,
40256           { "Info1", "spoolss.spoolss_AddFormInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40257         { &hf_spoolss_spoolss_Time_year,
40258           { "Year", "spoolss.spoolss_Time.year", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40259         { &hf_spoolss_spoolss_EnumPorts_servername,
40260           { "Servername", "spoolss.spoolss_EnumPorts.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40261         { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER,
40262           { "Spoolss Dm Ps Flags Drv Error Handler", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER_tfs), ( 0x00000002 ), NULL, HFILL }},
40263         { &hf_spoolss_spoolss_AddDriverInfo4_data_file,
40264           { "Data File", "spoolss.spoolss_AddDriverInfo4.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40265         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4,
40266           { "Printer Enum Icon4", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON4", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4_tfs), ( 0x00080000 ), NULL, HFILL }},
40267         { &hf_spoolss_spoolss_JobInfo4_parameters,
40268           { "Parameters", "spoolss.spoolss_JobInfo4.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40269         { &hf_spoolss__spoolss_EnumPorts_info,
40270           { "Info", "spoolss._spoolss_EnumPorts.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40271         { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Version,
40272           { "Version", "spoolss.RPC_BIDI_REQUEST_CONTAINER.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40273         { &hf_spoolss_spoolss_PrinterInfo_info7,
40274           { "Info7", "spoolss.spoolss_PrinterInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40275         { &hf_spoolss_spoolss_PSDRVEXTRA500_caContrast,
40276           { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA500.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40277         { &hf_spoolss_spoolss_OSVersionEx_suite_mask,
40278           { "Suite Mask", "spoolss.spoolss_OSVersionEx.suite_mask", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40279         { &hf_spoolss_spoolss_PSDRVEXTRA_wCutSheet,
40280           { "Wcutsheet", "spoolss.spoolss_PSDRVEXTRA.wCutSheet", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40281         { &hf_spoolss_spoolss_RouterReplyPrinter_handle,
40282           { "Handle", "spoolss.spoolss_RouterReplyPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40283         { &hf_spoolss_spoolss_DriverInfo7_version,
40284           { "Version", "spoolss.spoolss_DriverInfo7.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40285         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES,
40286           { "Apd Copy All Files", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_ALL_FILES", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES_tfs), ( 0x00000004 ), NULL, HFILL }},
40287         { &hf_spoolss_spoolss_JobInfo4_notify_name,
40288           { "Notify Name", "spoolss.spoolss_JobInfo4.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40289         { &hf_spoolss___spoolss_EnumPrintProcessors_info,
40290           { "Info", "spoolss.__spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40291         { &hf_spoolss_spoolss_OpenPrinterEx_printername,
40292           { "Printername", "spoolss.spoolss_OpenPrinterEx.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40293         { &hf_spoolss_spoolss_DeletePrinterDataEx_value_name,
40294           { "Value Name", "spoolss.spoolss_DeletePrinterDataEx.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40295         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_count,
40296           { "Count", "spoolss.spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40297         { &hf_spoolss_UNIVERSAL_FONT_ID_Index,
40298           { "Index", "spoolss.UNIVERSAL_FONT_ID.Index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40299         { &hf_spoolss_spoolss_DeviceMode_reserved2,
40300           { "Reserved2", "spoolss.spoolss_DeviceMode.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40301         { &hf_spoolss_spoolss_AddDriverInfo3_dependent_files,
40302           { "Dependent Files", "spoolss.spoolss_AddDriverInfo3.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40303         { &hf_spoolss_spoolss_DeletePrinterDriverEx_delete_flags,
40304           { "Delete Flags", "spoolss.spoolss_DeletePrinterDriverEx.delete_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40305         { &hf_spoolss_spoolss_OSVersion_major,
40306           { "Major", "spoolss.spoolss_OSVersion.major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40307         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH,
40308           { "Devmode Paperlength", "spoolss.spoolss_DeviceModeFields.DEVMODE_PAPERLENGTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH_tfs), ( 0x00000004 ), NULL, HFILL }},
40309         { &hf_spoolss_spoolss_NotifyData_string,
40310           { "String", "spoolss.spoolss_NotifyData.string", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40311         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK,
40312           { "Printer Enum Network", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_NETWORK", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK_tfs), ( 0x00000040 ), NULL, HFILL }},
40313         { &hf_spoolss__spoolss_EnumMonitors_level,
40314           { "Level", "spoolss._spoolss_EnumMonitors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40315         { &hf_spoolss_spoolss_SetPrinterInfo0_global_counter,
40316           { "Global Counter", "spoolss.spoolss_SetPrinterInfo0.global_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40317         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwFlags,
40318           { "Dwflags", "spoolss.spoolss_UNIDRVEXTRA.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40319         { &hf_spoolss_spoolss_PrinterInfo5_portname,
40320           { "Portname", "spoolss.spoolss_PrinterInfo5.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40321         { &hf_spoolss_spoolss_FormArea_top,
40322           { "Top", "spoolss.spoolss_FormArea.top", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40323         { &hf_spoolss_spoolss_SetJobInfo1_printer_name,
40324           { "Printer Name", "spoolss.spoolss_SetJobInfo1.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40325         { &hf_spoolss_spoolss_PrinterInfo2_untiltime,
40326           { "Untiltime", "spoolss.spoolss_PrinterInfo2.untiltime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40327         { &hf_spoolss_spoolss_SetPrinterDataEx_type,
40328           { "Type", "spoolss.spoolss_SetPrinterDataEx.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
40329         { &hf_spoolss_spoolss_PSDRVEXTRA351_caGreenGamma,
40330           { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA351.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40331         { &hf_spoolss___spoolss_EnumPorts_count,
40332           { "Count", "spoolss.__spoolss_EnumPorts.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40333         { &hf_spoolss_spoolss_EnumPrinters_needed,
40334           { "Needed", "spoolss.spoolss_EnumPrinters.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40335         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER,
40336           { "Printer Change Add Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_tfs), ( 0x00000001 ), NULL, HFILL }},
40337         { &hf_spoolss_spoolss_FormArea_right,
40338           { "Right", "spoolss.spoolss_FormArea.right", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40339         { &hf_spoolss_spoolss_Time_hour,
40340           { "Hour", "spoolss.spoolss_Time.hour", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40341         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED,
40342           { "Printer Attribute Shared", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_SHARED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED_tfs), ( 0x00000008 ), NULL, HFILL }},
40343         { &hf_spoolss_spoolss_SetPrinterInfo0_free_build,
40344           { "Free Build", "spoolss.spoolss_SetPrinterInfo0.free_build", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_Build_vals), 0, NULL, HFILL }},
40345         { &hf_spoolss_spoolss_DevmodeContainer__ndr_size,
40346           { " Ndr Size", "spoolss.spoolss_DevmodeContainer._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40347         { &hf_spoolss_spoolss_AddMonitorInfo2_dll_name,
40348           { "Dll Name", "spoolss.spoolss_AddMonitorInfo2.dll_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40349         { &hf_spoolss_spoolss_JobInfo2_pages_printed,
40350           { "Pages Printed", "spoolss.spoolss_JobInfo2.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40351         { &hf_spoolss_spoolss_JobInfo4_driver_name,
40352           { "Driver Name", "spoolss.spoolss_JobInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40353         { &hf_spoolss_spoolss_PSDRVEXTRA_iDialect,
40354           { "Idialect", "spoolss.spoolss_PSDRVEXTRA.iDialect", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_Dialect_vals), 0, NULL, HFILL }},
40355         { &hf_spoolss_spoolss_JobInfo4_time,
40356           { "Time", "spoolss.spoolss_JobInfo4.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40357         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER,
40358           { "Printer Change Set Printer Driver", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_PRINTER_DRIVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER_tfs), ( 0x20000000 ), NULL, HFILL }},
40359         { &hf_spoolss_spoolss_GetForm_form_name,
40360           { "Form Name", "spoolss.spoolss_GetForm.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40361         { &hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceBlack,
40362           { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA351.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40363         { &hf_spoolss_spoolss_PrinterInfo_info1,
40364           { "Info1", "spoolss.spoolss_PrinterInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40365         { &hf_spoolss_spoolss_DeviceMode_logpixels,
40366           { "Logpixels", "spoolss.spoolss_DeviceMode.logpixels", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40367         { &hf_spoolss_spoolss_AddDriverInfo3_default_datatype,
40368           { "Default Datatype", "spoolss.spoolss_AddDriverInfo3.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40369         { &hf_spoolss_spoolss_DeletePort_ptr,
40370           { "Ptr", "spoolss.spoolss_DeletePort.ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40371         { &hf_spoolss_spoolss_PrinterEnumValues_data_length,
40372           { "Data Length", "spoolss.spoolss_PrinterEnumValues.data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40373         { &hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema,
40374           { "Pschema", "spoolss.RPC_BIDI_REQUEST_DATA.pSchema", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40375         { &hf_spoolss_spoolss_AddDriverInfo3_version,
40376           { "Version", "spoolss.spoolss_AddDriverInfo3.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40377         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAPEROUT,
40378           { "Job Status Paperout", "spoolss.spoolss_JobStatus.JOB_STATUS_PAPEROUT", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PAPEROUT_tfs), ( 0x00000040 ), NULL, HFILL }},
40379         { &hf_spoolss_spoolss_AddDriverInfoCtr_info,
40380           { "Info", "spoolss.spoolss_AddDriverInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40381         { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_READ,
40382           { "Spoolss Port Type Read", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_READ", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_READ_tfs), ( 0x00000002 ), NULL, HFILL }},
40383         { &hf_spoolss_spoolss_SetPrinterInfo2_comment,
40384           { "Comment", "spoolss.spoolss_SetPrinterInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40385         { &hf_spoolss_spoolss_SetPrinterInfo0_max_spooling,
40386           { "Max Spooling", "spoolss.spoolss_SetPrinterInfo0.max_spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40387         { &hf_spoolss_spoolss_PortData2_snmp_dev_index,
40388           { "Snmp Dev Index", "spoolss.spoolss_PortData2.snmp_dev_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40389         { &hf_spoolss_spoolss_PrinterInfo4_printername,
40390           { "Printername", "spoolss.spoolss_PrinterInfo4.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40391         { &hf_spoolss_spoolss_DriverInfo101_architecture,
40392           { "Architecture", "spoolss.spoolss_DriverInfo101.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40393         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE,
40394           { "Printer Enum Favorite", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_FAVORITE", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE_tfs), ( 0x00000004 ), NULL, HFILL }},
40395         { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info,
40396           { "Info", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40397         { &hf_spoolss_spoolss_JobInfo4_total_pages,
40398           { "Total Pages", "spoolss.spoolss_JobInfo4.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40399         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name,
40400           { "Print Processor Name", "spoolss._spoolss_EnumPrintProcDataTypes.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40401         { &hf_spoolss_spoolss_ReadPrinter_data_size,
40402           { "Data Size", "spoolss.spoolss_ReadPrinter.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40403         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_info,
40404           { "Info", "spoolss.spoolss_EnumPrintProcDataTypes.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40405         { &hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION,
40406           { "Dpd Delete Specific Version", "spoolss.spoolss_DeleteDriverFlags.DPD_DELETE_SPECIFIC_VERSION", FT_BOOLEAN, 32, TFS(&spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION_tfs), ( 0x00000002 ), NULL, HFILL }},
40407         { &hf_spoolss_spoolss_AddDriverInfo6_driver_path,
40408           { "Driver Path", "spoolss.spoolss_AddDriverInfo6.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40409         { &hf_spoolss_spoolss_AddFormInfo_info2,
40410           { "Info2", "spoolss.spoolss_AddFormInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40411         { &hf_spoolss_spoolss_SetPrinterInfo2_printername,
40412           { "Printername", "spoolss.spoolss_SetPrinterInfo2.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40413         { &hf_spoolss_spoolss_XcvData_in_data,
40414           { "In Data", "spoolss.spoolss_XcvData.in_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40415         { &hf_spoolss_spoolss_Notify_data,
40416           { "Data", "spoolss.spoolss_Notify.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40417         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_YRESOLUTION,
40418           { "Devmode Yresolution", "spoolss.spoolss_DeviceModeFields.DEVMODE_YRESOLUTION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_YRESOLUTION_tfs), ( 0x00002000 ), NULL, HFILL }},
40419         { &hf_spoolss_spoolss_ScheduleJob_jobid,
40420           { "Jobid", "spoolss.spoolss_ScheduleJob.jobid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40421         { &hf_spoolss_spoolss_PrinterInfo0_change_id,
40422           { "Change Id", "spoolss.spoolss_PrinterInfo0.change_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40423         { &hf_spoolss_spoolss_PSDRVEXTRA_dwReserved3,
40424           { "Dwreserved3", "spoolss.spoolss_PSDRVEXTRA.dwReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40425         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwHeightOffset,
40426           { "Dwheightoffset", "spoolss.spoolss_PSDRVEXTRA500.dwHeightOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40427         { &hf_spoolss_spoolss_FormInfo2_ressource_id,
40428           { "Ressource Id", "spoolss.spoolss_FormInfo2.ressource_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40429         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_required,
40430           { "Required", "spoolss.spoolss_GetPrinterDriverPackagePath.required", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40431         { &hf_spoolss_spoolss_DeletePrinterDriverEx_driver,
40432           { "Driver", "spoolss.spoolss_DeletePrinterDriverEx.driver", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40433         { &hf_spoolss_spoolss_GetPrinterDriver2_handle,
40434           { "Handle", "spoolss.spoolss_GetPrinterDriver2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40435         { &hf_spoolss_spoolss_PrinterInfo2_secdesc,
40436           { "Secdesc", "spoolss.spoolss_PrinterInfo2.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40437         { &hf_spoolss_spoolss_GetCorePrinterDrivers_architecture,
40438           { "Architecture", "spoolss.spoolss_GetCorePrinterDrivers.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40439         { &hf_spoolss_spoolss_AddPrinter_handle,
40440           { "Handle", "spoolss.spoolss_AddPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40441         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL,
40442           { "Printer Status Output Bin Full", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_OUTPUT_BIN_FULL", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL_tfs), ( 0x00000800 ), NULL, HFILL }},
40443         { &hf_spoolss_spoolss_AddDriverInfo8_driver_date,
40444           { "Driver Date", "spoolss.spoolss_AddDriverInfo8.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
40445         { &hf_spoolss_spoolss_SetPrinterDataEx_offered,
40446           { "Offered", "spoolss.spoolss_SetPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40447         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8,
40448           { "Printer Enum Icon8", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON8", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8_tfs), ( 0x00800000 ), NULL, HFILL }},
40449         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS,
40450           { "Printer Attribute Ts", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_TS", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS_tfs), ( 0x00008000 ), NULL, HFILL }},
40451         { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_REPUBLISH,
40452           { "Dsprint Republish", "spoolss.spoolss_DsPrintAction.DSPRINT_REPUBLISH", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_REPUBLISH_tfs), ( 0x00000008 ), NULL, HFILL }},
40453         { &hf_spoolss_spoolss_PSDRVEXTRA351_caRedGreenTint,
40454           { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA351.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40455         { &hf_spoolss_spoolss_FormInfo2_area,
40456           { "Area", "spoolss.spoolss_FormInfo2.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40457         { &hf_spoolss_spoolss_ReplyOpenPrinter_bufsize,
40458           { "Bufsize", "spoolss.spoolss_ReplyOpenPrinter.bufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40459         { &hf_spoolss_spoolss_GetPrinterDriver2_server_major_version,
40460           { "Server Major Version", "spoolss.spoolss_GetPrinterDriver2.server_major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40461         { &hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name,
40462           { "Print Processor Name", "spoolss.spoolss_EnumPrintProcDataTypes.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40463         { &hf_spoolss_spoolss_PrinterInfo1_description,
40464           { "Description", "spoolss.spoolss_PrinterInfo1.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40465         { &hf_spoolss_spoolss_DriverInfo6_default_datatype,
40466           { "Default Datatype", "spoolss.spoolss_DriverInfo6.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40467         { &hf_spoolss_spoolss_ScheduleJob_handle,
40468           { "Handle", "spoolss.spoolss_ScheduleJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40469         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COPIES,
40470           { "Devmode Copies", "spoolss.spoolss_DeviceModeFields.DEVMODE_COPIES", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_COPIES_tfs), ( 0x00000100 ), NULL, HFILL }},
40471         { &hf_spoolss_spoolss_PSDRVEXTRA400_caBlueGamma,
40472           { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA400.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40473         { &hf_spoolss_spoolss_UNIDRVEXTRA3_4_wReserved,
40474           { "Wreserved", "spoolss.spoolss_UNIDRVEXTRA3_4.wReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40475         { &hf_spoolss_spoolss_AddPrinter_info_ctr,
40476           { "Info Ctr", "spoolss.spoolss_AddPrinter.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40477         { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra3_4,
40478           { "Unidrvextra3 4", "spoolss.spoolss_DeviceModeExtraDataUniDriver.unidrvextra3_4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40479         { &hf_spoolss_spoolss_PrinterData_value,
40480           { "Value", "spoolss.spoolss_PrinterData.value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40481         { &hf_spoolss_spoolss_AddDriverInfo8_inf_path,
40482           { "Inf Path", "spoolss.spoolss_AddDriverInfo8.inf_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40483         { &hf_spoolss_spoolss_UNIDRVEXTRA_wCoreJTExpSize,
40484           { "Wcorejtexpsize", "spoolss.spoolss_UNIDRVEXTRA.wCoreJTExpSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40485         { &hf_spoolss_spoolss_DriverInfo8_help_file,
40486           { "Help File", "spoolss.spoolss_DriverInfo8.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40487         { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_data,
40488           { "Data", "spoolss.RPC_BIDI_RESPONSE_DATA.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40489         { &hf_spoolss_spoolss_EnumMonitors_needed,
40490           { "Needed", "spoolss.spoolss_EnumMonitors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40491         { &hf_spoolss_spoolss_PSDRVEXTRA_fxScrFreq,
40492           { "Fxscrfreq", "spoolss.spoolss_PSDRVEXTRA.fxScrFreq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40493         { &hf_spoolss_spoolss_PrinterInfo5_device_not_selected_timeout,
40494           { "Device Not Selected Timeout", "spoolss.spoolss_PrinterInfo5.device_not_selected_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40495         { &hf_spoolss_spoolss_DeviceModeInfo_devmode,
40496           { "Devmode", "spoolss.spoolss_DeviceModeInfo.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40497         { &hf_spoolss_spoolss_OSVersion_extra_string,
40498           { "Extra String", "spoolss.spoolss_OSVersion.extra_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40499         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_SCALE,
40500           { "Devmode Scale", "spoolss.spoolss_DeviceModeFields.DEVMODE_SCALE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_SCALE_tfs), ( 0x00000010 ), NULL, HFILL }},
40501         { &hf_spoolss_spoolss_SetPortInfo3_severity,
40502           { "Severity", "spoolss.spoolss_SetPortInfo3.severity", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortSeverity_vals), 0, NULL, HFILL }},
40503         { &hf_spoolss_spoolss_PSDRVEXTRA_wchEPSFile,
40504           { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40505         { &hf_spoolss_spoolss_DriverInfo101_previous_names,
40506           { "Previous Names", "spoolss.spoolss_DriverInfo101.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40507         { &hf_spoolss_spoolss_SetPortInfo_info1,
40508           { "Info1", "spoolss.spoolss_SetPortInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40509         { &hf_spoolss_spoolss_AddPrintProcessor_print_processor_name,
40510           { "Print Processor Name", "spoolss.spoolss_AddPrintProcessor.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40511         { &hf_spoolss_spoolss_SetPrinterInfo0_reserved3,
40512           { "Reserved3", "spoolss.spoolss_SetPrinterInfo0.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40513         { &hf_spoolss_spoolss_DriverInfo_info8,
40514           { "Info8", "spoolss.spoolss_DriverInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40515         { &hf_spoolss_spoolss_PrinterInfo2_drivername,
40516           { "Drivername", "spoolss.spoolss_PrinterInfo2.drivername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40517         { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_flags,
40518           { "Flags", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40519         { &hf_spoolss_spoolss_PSDRVEXTRA_caGreenGamma,
40520           { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40521         { &hf_spoolss_spoolss_DriverInfo101_default_datatype,
40522           { "Default Datatype", "spoolss.spoolss_DriverInfo101.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40523         { &hf_spoolss_spoolss_AddPerMachineConnection_server,
40524           { "Server", "spoolss.spoolss_AddPerMachineConnection.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40525         { &hf_spoolss_spoolss_AddForm_handle,
40526           { "Handle", "spoolss.spoolss_AddForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40527         { &hf_spoolss_spoolss_DeviceMode_dithertype,
40528           { "Dithertype", "spoolss.spoolss_DeviceMode.dithertype", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeDitherType_vals), 0, NULL, HFILL }},
40529         { &hf_spoolss_spoolss_SetJobInfo2_print_processor,
40530           { "Print Processor", "spoolss.spoolss_SetJobInfo2.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40531         { &hf_spoolss_spoolss_GetPrinterDriver_needed,
40532           { "Needed", "spoolss.spoolss_GetPrinterDriver.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40533         { &hf_spoolss_spoolss_PrinterInfo6_status,
40534           { "Status", "spoolss.spoolss_PrinterInfo6.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40535         { &hf_spoolss_RPC_BIDI_DATA_u,
40536           { "U", "spoolss.RPC_BIDI_DATA.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40537         { &hf_spoolss_RPC_BINARY_CONTAINER_pszString,
40538           { "Pszstring", "spoolss.RPC_BINARY_CONTAINER.pszString", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40539         { &hf_spoolss_spoolss_DeletePrinterDriverEx_version,
40540           { "Version", "spoolss.spoolss_DeletePrinterDriverEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40541         { &hf_spoolss_spoolss_EnumJobs_needed,
40542           { "Needed", "spoolss.spoolss_EnumJobs.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40543         { &hf_spoolss__spoolss_EnumPrinterDataEx_key_name,
40544           { "Key Name", "spoolss._spoolss_EnumPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40545         { &hf_spoolss_spoolss_MonitorInfo2_environment,
40546           { "Environment", "spoolss.spoolss_MonitorInfo2.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40547         { &hf_spoolss_spoolss_DriverInfo3_data_file,
40548           { "Data File", "spoolss.spoolss_DriverInfo3.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40549         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL,
40550           { "Printer Attribute Local", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_LOCAL", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL_tfs), ( 0x00000040 ), NULL, HFILL }},
40551         { &hf_spoolss_spoolss_CorePrinterDriver_formname,
40552           { "Formname", "spoolss.spoolss_CorePrinterDriver.formname", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40553         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_count,
40554           { "Count", "spoolss._spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40555         { &hf_spoolss_spoolss_AddPortEx_port_ctr,
40556           { "Port Ctr", "spoolss.spoolss_AddPortEx.port_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40557         { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id,
40558           { "Package Id", "spoolss.spoolss_GetPrinterDriverPackagePath.package_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40559         { &hf_spoolss_spoolss_GetForm_info,
40560           { "Info", "spoolss.spoolss_GetForm.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40561         { &hf_spoolss_spoolss_TimeCtr_size,
40562           { "Size", "spoolss.spoolss_TimeCtr.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40563         { &hf_spoolss_spoolss_UNIDRVEXTRA_iQuality,
40564           { "Iquality", "spoolss.spoolss_UNIDRVEXTRA.iQuality", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMUNI_Quality_vals), 0, NULL, HFILL }},
40565         { &hf_spoolss_spoolss_SetPrinterInfo_info8,
40566           { "Info8", "spoolss.spoolss_SetPrinterInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40567         { &hf_spoolss_spoolss_PrinterEnumValues_value_name_len,
40568           { "Value Name Len", "spoolss.spoolss_PrinterEnumValues.value_name_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40569         { &hf_spoolss__spoolss_EnumPrinterDrivers_info,
40570           { "Info", "spoolss._spoolss_EnumPrinterDrivers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40571         { &hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1,
40572           { "Info1", "spoolss.spoolss_PrintProcessorDirectoryInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40573         { &hf_spoolss___spoolss_EnumForms_info,
40574           { "Info", "spoolss.__spoolss_EnumForms.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40575         { &hf_spoolss_spoolss_SetPrinterDataEx_handle,
40576           { "Handle", "spoolss.spoolss_SetPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40577         { &hf_spoolss_spoolss_UserLevel1_major,
40578           { "Major", "spoolss.spoolss_UserLevel1.major", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MajorVersion_vals), 0, NULL, HFILL }},
40579         { &hf_spoolss_spoolss_NotifyInfo_notifies,
40580           { "Notifies", "spoolss.spoolss_NotifyInfo.notifies", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40581         { &hf_spoolss_spoolss_PSDRVEXTRA351_caBlueGamma,
40582           { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA351.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40583         { &hf_spoolss_spoolss_SetPort_port_name,
40584           { "Port Name", "spoolss.spoolss_SetPort.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40585         { &hf_spoolss_spoolss_SetJobInfo1_submitted,
40586           { "Submitted", "spoolss.spoolss_SetJobInfo1.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40587         { &hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name,
40588           { "Manufacturer Name", "spoolss.spoolss_AddDriverInfo6.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40589         { &hf_spoolss_spoolss_StartPagePrinter_handle,
40590           { "Handle", "spoolss.spoolss_StartPagePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40591         { &hf_spoolss_spoolss_OSVersionEx_reserved,
40592           { "Reserved", "spoolss.spoolss_OSVersionEx.reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40593         { &hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr,
40594           { "Secdesc Ptr", "spoolss.spoolss_SetPrinterInfo2.secdesc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40595         { &hf_spoolss_spoolss_OSVersionEx__ndr_size,
40596           { " Ndr Size", "spoolss.spoolss_OSVersionEx._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40597         { &hf_spoolss_spoolss_OpenPrinterEx_devmode_ctr,
40598           { "Devmode Ctr", "spoolss.spoolss_OpenPrinterEx.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40599         { &hf_spoolss_spoolss_DriverInfo6_driver_path,
40600           { "Driver Path", "spoolss.spoolss_DriverInfo6.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40601         { &hf_spoolss_spoolss_AddDriverInfo3_architecture,
40602           { "Architecture", "spoolss.spoolss_AddDriverInfo3.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40603         { &hf_spoolss__spoolss_EnumForms_info,
40604           { "Info", "spoolss._spoolss_EnumForms.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40605         { &hf_spoolss_spoolss_AddDriverInfo3_help_file,
40606           { "Help File", "spoolss.spoolss_AddDriverInfo3.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40607         { &hf_spoolss_spoolss_RpcSendRecvBidiData_pAction,
40608           { "Paction", "spoolss.spoolss_RpcSendRecvBidiData.pAction", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40609         { &hf_spoolss_spoolss_AddPrinterDriver_servername,
40610           { "Servername", "spoolss.spoolss_AddPrinterDriver.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40611         { &hf_spoolss_spoolss_GetJob_job_id,
40612           { "Job Id", "spoolss.spoolss_GetJob.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40613         { &hf_spoolss_spoolss_PrinterInfo2_portname,
40614           { "Portname", "spoolss.spoolss_PrinterInfo2.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40615         { &hf_spoolss_spoolss_DriverInfo8_provider,
40616           { "Provider", "spoolss.spoolss_DriverInfo8.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40617         { &hf_spoolss_spoolss_UserLevel2_not_used,
40618           { "Not Used", "spoolss.spoolss_UserLevel2.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40619         { &hf_spoolss_spoolss_NotifyOption_types,
40620           { "Types", "spoolss.spoolss_NotifyOption.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40621         { &hf_spoolss_spoolss_CorePrinterDriver_core_driver_guid,
40622           { "Core Driver Guid", "spoolss.spoolss_CorePrinterDriver.core_driver_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
40623         { &hf_spoolss_spoolss_DriverInfo8_version,
40624           { "Version", "spoolss.spoolss_DriverInfo8.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40625         { &hf_spoolss_spoolss_DeviceMode_paperwidth,
40626           { "Paperwidth", "spoolss.spoolss_DeviceMode.paperwidth", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40627         { &hf_spoolss_spoolss_JTEXP_wJTHdrSize,
40628           { "Wjthdrsize", "spoolss.spoolss_JTEXP.wJTHdrSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40629         { &hf_spoolss_spoolss_DriverInfo4_version,
40630           { "Version", "spoolss.spoolss_DriverInfo4.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40631         { &hf_spoolss_spoolss_SetJobInfo4_size_high,
40632           { "Size High", "spoolss.spoolss_SetJobInfo4.size_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40633         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE,
40634           { "Apd Strict Upgrade", "spoolss.spoolss_AddPrinterDriverExFlags.APD_STRICT_UPGRADE", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE_tfs), ( 0x00000001 ), NULL, HFILL }},
40635         { &hf_spoolss_spoolss_ReplyClosePrinter_handle,
40636           { "Handle", "spoolss.spoolss_ReplyClosePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40637         { &hf_spoolss_spoolss_AddPrintProcessor_server,
40638           { "Server", "spoolss.spoolss_AddPrintProcessor.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40639         { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_UNPUBLISH,
40640           { "Dsprint Unpublish", "spoolss.spoolss_DsPrintAction.DSPRINT_UNPUBLISH", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_UNPUBLISH_tfs), ( 0x00000004 ), NULL, HFILL }},
40641         { &hf_spoolss_spoolss_DriverInfo8_monitor_name,
40642           { "Monitor Name", "spoolss.spoolss_DriverInfo8.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40643         { &hf_spoolss_spoolss_DeviceMode_devicename,
40644           { "Devicename", "spoolss.spoolss_DeviceMode.devicename", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40645         { &hf_spoolss_spoolss_AddDriverInfo8_driver_name,
40646           { "Driver Name", "spoolss.spoolss_AddDriverInfo8.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40647         { &hf_spoolss_spoolss_SetJobInfo4_document_name,
40648           { "Document Name", "spoolss.spoolss_SetJobInfo4.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40649         { &hf_spoolss_spoolss_PSDRVEXTRA_caIlluminantIndex,
40650           { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40651         { &hf_spoolss_spoolss_JobInfo2_server_name,
40652           { "Server Name", "spoolss.spoolss_JobInfo2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40653         { &hf_spoolss_spoolss_SetJob_ctr,
40654           { "Ctr", "spoolss.spoolss_SetJob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40655         { &hf_spoolss_spoolss_AddDriverInfo6_driver_date,
40656           { "Driver Date", "spoolss.spoolss_AddDriverInfo6.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
40657         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER,
40658           { "Printer Enum Container", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_CONTAINER", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER_tfs), ( 0x00008000 ), NULL, HFILL }},
40659         { &hf_spoolss_spoolss_UserLevel1_processor,
40660           { "Processor", "spoolss.spoolss_UserLevel1.processor", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
40661         { &hf_spoolss_spoolss_PrinterInfo4_servername,
40662           { "Servername", "spoolss.spoolss_PrinterInfo4.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40663         { &hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName,
40664           { "Pszname", "spoolss.spoolss_RpcDeleteJobNamedProperty.pszName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40665         { &hf_spoolss__spoolss_EnumPorts_servername,
40666           { "Servername", "spoolss._spoolss_EnumPorts.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40667         { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP,
40668           { "Spoolss Dm Ps Flags Compress Bitmap", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP_tfs), ( 0x00000040 ), NULL, HFILL }},
40669         { &hf_spoolss_spoolss_GetJob_needed,
40670           { "Needed", "spoolss.spoolss_GetJob.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40671         { &hf_spoolss_spoolss_PortData1_reserved,
40672           { "Reserved", "spoolss.spoolss_PortData1.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40673         { &hf_spoolss_spoolss_SetJobInfo1_status,
40674           { "Status", "spoolss.spoolss_SetJobInfo1.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40675         { &hf_spoolss_spoolss_GetPrinterDriver_buffer,
40676           { "Buffer", "spoolss.spoolss_GetPrinterDriver.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40677         { &hf_spoolss_spoolss_DriverInfo8_driver_version,
40678           { "Driver Version", "spoolss.spoolss_DriverInfo8.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
40679         { &hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr,
40680           { "Sec Desc Ptr", "spoolss.spoolss_SetPrinterInfo3.sec_desc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40681         { &hf_spoolss_spoolss_SetPrinterData_offered,
40682           { "Offered", "spoolss.spoolss_SetPrinterData.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40683         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_BUSY,
40684           { "Printer Status Busy", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_BUSY", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_BUSY_tfs), ( 0x00000200 ), NULL, HFILL }},
40685         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK,
40686           { "Printer Attribute Network", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_NETWORK", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK_tfs), ( 0x00000010 ), NULL, HFILL }},
40687         { &hf_spoolss_spoolss_DriverInfo6_dependent_files,
40688           { "Dependent Files", "spoolss.spoolss_DriverInfo6.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40689         { &hf_spoolss_spoolss_FormSize_height,
40690           { "Height", "spoolss.spoolss_FormSize.height", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40691         { &hf_spoolss_spoolss_PortData2_dblspool,
40692           { "Dblspool", "spoolss.spoolss_PortData2.dblspool", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40693         { &hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name,
40694           { "Print Processor Name", "spoolss.spoolss_PrintProcessorInfo1.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40695         { &hf_spoolss_spoolss_SetPrinterInfo4_attributes,
40696           { "Attributes", "spoolss.spoolss_SetPrinterInfo4.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40697         { &hf_spoolss_spoolss_DriverInfo3_config_file,
40698           { "Config File", "spoolss.spoolss_DriverInfo3.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40699         { &hf_spoolss_spoolss_DriverInfo8_vendor_setup,
40700           { "Vendor Setup", "spoolss.spoolss_DriverInfo8.vendor_setup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40701         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM,
40702           { "Printer Status Paper Jam", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAPER_JAM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM_tfs), ( 0x00000008 ), NULL, HFILL }},
40703         { &hf_spoolss_spoolss_EndDocPrinter_handle,
40704           { "Handle", "spoolss.spoolss_EndDocPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40705         { &hf_spoolss_spoolss_RpcSendRecvBidiData_hPrinter,
40706           { "Hprinter", "spoolss.spoolss_RpcSendRecvBidiData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40707         { &hf_spoolss_spoolss_EnumMonitors_level,
40708           { "Level", "spoolss.spoolss_EnumMonitors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40709         { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY,
40710           { "Apd Copy From Directory", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_FROM_DIRECTORY", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY_tfs), ( 0x00000010 ), NULL, HFILL }},
40711         { &hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER,
40712           { "Printer Access Administer", "spoolss.spoolss_AccessRights.PRINTER_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER_tfs), ( 0x00000004 ), NULL, HFILL }},
40713         { &hf_spoolss_spoolss_PSDRVEXTRA400_wchEPSFile,
40714           { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA400.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40715         { &hf_spoolss_spoolss_AddFormInfo2_keyword,
40716           { "Keyword", "spoolss.spoolss_AddFormInfo2.keyword", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40717         { &hf_spoolss_spoolss_DriverInfo4_monitor_name,
40718           { "Monitor Name", "spoolss.spoolss_DriverInfo4.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40719         { &hf_spoolss_spoolss_DocumentInfo1_datatype,
40720           { "Datatype", "spoolss.spoolss_DocumentInfo1.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40721         { &hf_spoolss_spoolss_AddDriverInfo5_driver_name,
40722           { "Driver Name", "spoolss.spoolss_AddDriverInfo5.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40723         { &hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter,
40724           { "Hprinter", "spoolss.spoolss_RpcSetJobNamedProperty.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40725         { &hf_spoolss_spoolss_AddPrintProcessor_architecture,
40726           { "Architecture", "spoolss.spoolss_AddPrintProcessor.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40727         { &hf_spoolss_spoolss_UserLevel_level3,
40728           { "Level3", "spoolss.spoolss_UserLevel.level3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40729         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING,
40730           { "Printer Status Processing", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PROCESSING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING_tfs), ( 0x00004000 ), NULL, HFILL }},
40731         { &hf_spoolss_spoolss_PortData2_snmp_enabled,
40732           { "Snmp Enabled", "spoolss.spoolss_PortData2.snmp_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40733         { &hf_spoolss_spoolss_OEM_DMEXTRA_Data,
40734           { "Data", "spoolss.spoolss_OEM_DMEXTRA.Data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40735         { &hf_spoolss__spoolss_EnumPrinterDataEx_handle,
40736           { "Handle", "spoolss._spoolss_EnumPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40737         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT,
40738           { "Printer Status Paper Out", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAPER_OUT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT_tfs), ( 0x00000010 ), NULL, HFILL }},
40739         { &hf_spoolss_spoolss_FormInfo1_area,
40740           { "Area", "spoolss.spoolss_FormInfo1.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40741         { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyByte,
40742           { "Propertybyte", "spoolss.RPC_PrintPropertyValueUnion.propertyByte", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40743         { &hf_spoolss_spoolss_PortData2_protocol,
40744           { "Protocol", "spoolss.spoolss_PortData2.protocol", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortProtocol_vals), 0, NULL, HFILL }},
40745         { &hf_spoolss_spoolss_PSDRVEXTRA500_wOEMExtra,
40746           { "Woemextra", "spoolss.spoolss_PSDRVEXTRA500.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40747         { &hf_spoolss_spoolss_PSDRVEXTRA_caReferenceWhite,
40748           { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40749         { &hf_spoolss_spoolss_PrinterInfo2_attributes,
40750           { "Attributes", "spoolss.spoolss_PrinterInfo2.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40751         { &hf_spoolss_spoolss_RouterReplyPrinterEx_flags,
40752           { "Flags", "spoolss.spoolss_RouterReplyPrinterEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40753         { &hf_spoolss_spoolss_AddJob_buffer,
40754           { "Buffer", "spoolss.spoolss_AddJob.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40755         { &hf_spoolss_spoolss_PSDRVEXTRA_caSize,
40756           { "Casize", "spoolss.spoolss_PSDRVEXTRA.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40757         { &hf_spoolss_spoolss_AddJob_offered,
40758           { "Offered", "spoolss.spoolss_AddJob.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40759         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_needed,
40760           { "Needed", "spoolss.spoolss_GetPrinterDriverDirectory.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40761         { &hf_spoolss_spoolss_PSDRVEXTRA400_caBrightness,
40762           { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA400.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40763         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND,
40764           { "Printer Enum Expand", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_EXPAND", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND_tfs), ( 0x00004000 ), NULL, HFILL }},
40765         { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra,
40766           { "Psdrvextra", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40767         { &hf_spoolss_spoolss_JTEXP_dwVersion,
40768           { "Dwversion", "spoolss.spoolss_JTEXP.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40769         { &hf_spoolss_spoolss_AddDriverInfo4_driver_name,
40770           { "Driver Name", "spoolss.spoolss_AddDriverInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40771         { &hf_spoolss_spoolss_UserLevel1_user,
40772           { "User", "spoolss.spoolss_UserLevel1.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40773         { &hf_spoolss__spoolss_EnumMonitors_needed,
40774           { "Needed", "spoolss._spoolss_EnumMonitors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40775         { &hf_spoolss_spoolss_SetJob_handle,
40776           { "Handle", "spoolss.spoolss_SetJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40777         { &hf_spoolss_spoolss_JobInfo1_total_pages,
40778           { "Total Pages", "spoolss.spoolss_JobInfo1.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40779         { &hf_spoolss_spoolss_SetPrinterInfo2_priority,
40780           { "Priority", "spoolss.spoolss_SetPrinterInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40781         { &hf_spoolss_spoolss_SetJobInfo1_data_type,
40782           { "Data Type", "spoolss.spoolss_SetJobInfo1.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40783         { &hf_spoolss_spoolss_EnumPrinterKey_key_name,
40784           { "Key Name", "spoolss.spoolss_EnumPrinterKey.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40785         { &hf_spoolss_spoolss_PrinterInfo_info3,
40786           { "Info3", "spoolss.spoolss_PrinterInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40787         { &hf_spoolss_spoolss_JobInfo1_printer_name,
40788           { "Printer Name", "spoolss.spoolss_JobInfo1.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40789         { &hf_spoolss_spoolss_SetJobInfo4_start_time,
40790           { "Start Time", "spoolss.spoolss_SetJobInfo4.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40791         { &hf_spoolss_spoolss_AddDriverInfo_info4,
40792           { "Info4", "spoolss.spoolss_AddDriverInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40793         { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options,
40794           { "Notify Options", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.notify_options", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40795         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAUSED,
40796           { "Printer Status Paused", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAUSED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAUSED_tfs), ( 0x00000001 ), NULL, HFILL }},
40797         { &hf_spoolss_spoolss_DeviceMode_fields,
40798           { "Fields", "spoolss.spoolss_DeviceMode.fields", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40799         { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Version,
40800           { "Version", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40801         { &hf_spoolss_spoolss_EnumPrinterKey_needed,
40802           { "Needed", "spoolss.spoolss_EnumPrinterKey.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40803         { &hf_spoolss_spoolss_PrinterInfo0_servername,
40804           { "Servername", "spoolss.spoolss_PrinterInfo0.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40805         { &hf_spoolss_spoolss_UNIDRVEXTRA500_wReserved,
40806           { "Wreserved", "spoolss.spoolss_UNIDRVEXTRA500.wReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40807         { &hf_spoolss_spoolss_SetPrinterInfo0_job_error,
40808           { "Job Error", "spoolss.spoolss_SetPrinterInfo0.job_error", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40809         { &hf_spoolss_spoolss_DriverInfo_info1,
40810           { "Info1", "spoolss.spoolss_DriverInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40811         { &hf_spoolss_spoolss_StartDocPrinter_info_ctr,
40812           { "Info Ctr", "spoolss.spoolss_StartDocPrinter.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40813         { &hf_spoolss_spoolss_MonitorUi_dll_name,
40814           { "Dll Name", "spoolss.spoolss_MonitorUi.dll_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40815         { &hf_spoolss_spoolss_JobInfo1_position,
40816           { "Position", "spoolss.spoolss_JobInfo1.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40817         { &hf_spoolss_spoolss_AddDriverInfo6_data_file,
40818           { "Data File", "spoolss.spoolss_AddDriverInfo6.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40819         { &hf_spoolss_RPC_BINARY_CONTAINER_cbBuf,
40820           { "Cbbuf", "spoolss.RPC_BINARY_CONTAINER.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40821         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_MEDIATYPE,
40822           { "Devmode Mediatype", "spoolss.spoolss_DeviceModeFields.DEVMODE_MEDIATYPE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_MEDIATYPE_tfs), ( 0x02000000 ), NULL, HFILL }},
40823         { &hf_spoolss_spoolss_SetPrinterInfo0_total_jobs,
40824           { "Total Jobs", "spoolss.spoolss_SetPrinterInfo0.total_jobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40825         { &hf_spoolss_spoolss_PrinterInfo2_datatype,
40826           { "Datatype", "spoolss.spoolss_PrinterInfo2.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40827         { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_PUBLISH,
40828           { "Dsprint Publish", "spoolss.spoolss_DsPrintAction.DSPRINT_PUBLISH", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_PUBLISH_tfs), ( 0x00000001 ), NULL, HFILL }},
40829         { &hf_spoolss_spoolss_JobInfoContainer_info,
40830           { "Info", "spoolss.spoolss_JobInfoContainer.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40831         { &hf_spoolss_spoolss_XcvData_needed,
40832           { "Needed", "spoolss.spoolss_XcvData.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40833         { &hf_spoolss_spoolss_SetJobInfo1_position,
40834           { "Position", "spoolss.spoolss_SetJobInfo1.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40835         { &hf_spoolss_spoolss_SetJobInfo4_notify_name,
40836           { "Notify Name", "spoolss.spoolss_SetJobInfo4.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40837         { &hf_spoolss_spoolss_GetPrinterDataEx_needed,
40838           { "Needed", "spoolss.spoolss_GetPrinterDataEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40839         { &hf_spoolss_spoolss_DeletePrinterDriver_driver,
40840           { "Driver", "spoolss.spoolss_DeletePrinterDriver.driver", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40841         { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra500,
40842           { "Unidrvextra500", "spoolss.spoolss_DeviceModeExtraDataUniDriver.unidrvextra500", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40843         { &hf_spoolss_spoolss_PSDRVEXTRA_caReferenceBlack,
40844           { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40845         { &hf_spoolss_spoolss_AddPort_unknown,
40846           { "Unknown", "spoolss.spoolss_AddPort.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40847         { &hf_spoolss_spoolss_DriverInfo5_driver_name,
40848           { "Driver Name", "spoolss.spoolss_DriverInfo5.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40849         { &hf_spoolss_spoolss_AddDriverInfo2_driver_path,
40850           { "Driver Path", "spoolss.spoolss_AddDriverInfo2.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40851         { &hf_spoolss_spoolss_OEM_DMEXTRA_dwSignature,
40852           { "Dwsignature", "spoolss.spoolss_OEM_DMEXTRA.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
40853         { &hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url,
40854           { "Manufacturer Url", "spoolss.spoolss_AddDriverInfo6.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40855         { &hf_spoolss_spoolss_DriverFileInfo_file_name,
40856           { "File Name", "spoolss.spoolss_DriverFileInfo.file_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40857         { &hf_spoolss_UNIVERSAL_FONT_ID_Checksum,
40858           { "Checksum", "spoolss.UNIVERSAL_FONT_ID.Checksum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40859         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION,
40860           { "Printer Status Pending Deletion", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PENDING_DELETION", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION_tfs), ( 0x00000004 ), NULL, HFILL }},
40861         { &hf_spoolss___spoolss_EnumForms_level,
40862           { "Level", "spoolss.__spoolss_EnumForms.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40863         { &hf_spoolss___spoolss_EnumPrinterDataEx_info,
40864           { "Info", "spoolss.__spoolss_EnumPrinterDataEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40865         { &hf_spoolss_spoolss_OSVersionEx_extra_string_,
40866           { "Subcontext length", "spoolss.spoolss_OSVersionEx.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
40867         { &hf_spoolss_spoolss_SetPrinterInfo_info7,
40868           { "Info7", "spoolss.spoolss_SetPrinterInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40869         { &hf_spoolss_spoolss_DriverInfo6_monitor_name,
40870           { "Monitor Name", "spoolss.spoolss_DriverInfo6.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40871         { &hf_spoolss_spoolss_OSVersion__ndr_size,
40872           { " Ndr Size", "spoolss.spoolss_OSVersion._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40873         { &hf_spoolss_spoolss_DriverInfo8_hardware_id,
40874           { "Hardware Id", "spoolss.spoolss_DriverInfo8.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40875         { &hf_spoolss_spoolss_EnumJobs_handle,
40876           { "Handle", "spoolss.spoolss_EnumJobs.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40877         { &hf_spoolss_spoolss_DriverInfo_info6,
40878           { "Info6", "spoolss.spoolss_DriverInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40879         { &hf_spoolss_spoolss_EnumPrinterKey_handle,
40880           { "Handle", "spoolss.spoolss_EnumPrinterKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40881         { &hf_spoolss_spoolss_SetPortInfo_infoFF,
40882           { "Infoff", "spoolss.spoolss_SetPortInfo.infoFF", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40883         { &hf_spoolss_spoolss_AddDriverInfo6__ndr_size_dependent_files,
40884           { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo6._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40885         { &hf_spoolss_spoolss_GetPrinterDriver_offered,
40886           { "Offered", "spoolss.spoolss_GetPrinterDriver.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40887         { &hf_spoolss_spoolss_OpenPrinter_devmode_ctr,
40888           { "Devmode Ctr", "spoolss.spoolss_OpenPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40889         { &hf_spoolss_spoolss_DeviceMode_driverextra_data_,
40890           { "Subcontext length", "spoolss.spoolss_DeviceMode.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
40891         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW,
40892           { "Printer Status Toner Low", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_TONER_LOW", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW_tfs), ( 0x00020000 ), NULL, HFILL }},
40893         { &hf_spoolss_spoolss_PrinterInfo0_reserved3,
40894           { "Reserved3", "spoolss.spoolss_PrinterInfo0.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40895         { &hf_spoolss__spoolss_EnumPrinterDataEx_info,
40896           { "Info", "spoolss._spoolss_EnumPrinterDataEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40897         { &hf_spoolss_spoolss_AddPortEx_servername,
40898           { "Servername", "spoolss.spoolss_AddPortEx.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40899         { &hf_spoolss_spoolss_PSDRVEXTRA_fxScrAngle,
40900           { "Fxscrangle", "spoolss.spoolss_PSDRVEXTRA.fxScrAngle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40901         { &hf_spoolss_spoolss_PrinterInfo_info8,
40902           { "Info8", "spoolss.spoolss_PrinterInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40903         { &hf_spoolss_spoolss_DriverInfo8_manufacturer_url,
40904           { "Manufacturer Url", "spoolss.spoolss_DriverInfo8.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40905         { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra,
40906           { "Unidrvextra", "spoolss.spoolss_DeviceModeExtraDataUniDriver.unidrvextra", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40907         { &hf_spoolss_spoolss_JobInfo4_position,
40908           { "Position", "spoolss.spoolss_JobInfo4.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40909         { &hf_spoolss__spoolss_EnumJobs_handle,
40910           { "Handle", "spoolss._spoolss_EnumJobs.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40911         { &hf_spoolss_spoolss_PrinterInfo2_defaultpriority,
40912           { "Defaultpriority", "spoolss.spoolss_PrinterInfo2.defaultpriority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40913         { &hf_spoolss_spoolss_SetPrinterInfo7_action,
40914           { "Action", "spoolss.spoolss_SetPrinterInfo7.action", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40915         { &hf_spoolss_spoolss_PrinterData_data,
40916           { "Data", "spoolss.spoolss_PrinterData.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40917         { &hf_spoolss_spoolss_AbortPrinter_handle,
40918           { "Handle", "spoolss.spoolss_AbortPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
40919         { &hf_spoolss_RPC_BIDI_DATA_u_bData,
40920           { "Bdata", "spoolss.RPC_BIDI_DATA_u.bData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40921         { &hf_spoolss_spoolss_FormInfo1_flags,
40922           { "Flags", "spoolss.spoolss_FormInfo1.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
40923         { &hf_spoolss_spoolss_PortData1_portname,
40924           { "Portname", "spoolss.spoolss_PortData1.portname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40925         { &hf_spoolss_spoolss_SetPrinterInfo2_starttime,
40926           { "Starttime", "spoolss.spoolss_SetPrinterInfo2.starttime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40927         { &hf_spoolss_spoolss_DeviceMode_icmmethod,
40928           { "Icmmethod", "spoolss.spoolss_DeviceMode.icmmethod", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeICMMethod_vals), 0, NULL, HFILL }},
40929         { &hf_spoolss_spoolss_AddDriverInfo8_provider,
40930           { "Provider", "spoolss.spoolss_AddDriverInfo8.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40931         { &hf_spoolss_spoolss_PSDRVEXTRA500_caColorfulness,
40932           { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA500.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40933         { &hf_spoolss_spoolss_MonitorContainer_level,
40934           { "Level", "spoolss.spoolss_MonitorContainer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40935         { &hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty,
40936           { "Pproperty", "spoolss.spoolss_RpcSetJobNamedProperty.pProperty", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40937         { &hf_spoolss_spoolss_AddPortEx_port_var_ctr,
40938           { "Port Var Ctr", "spoolss.spoolss_AddPortEx.port_var_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40939         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT,
40940           { "Printer Status Page Punt", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAGE_PUNT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT_tfs), ( 0x00080000 ), NULL, HFILL }},
40941         { &hf_spoolss_spoolss_AddDriverInfo6_version,
40942           { "Version", "spoolss.spoolss_AddDriverInfo6.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40943         { &hf_spoolss_spoolss_OSVersionEx_minor,
40944           { "Minor", "spoolss.spoolss_OSVersionEx.minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40945         { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData,
40946           { "Adata", "spoolss.RPC_BIDI_REQUEST_CONTAINER.aData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40947         { &hf_spoolss_spoolss_PSDRVEXTRA500_wVer,
40948           { "Wver", "spoolss.spoolss_PSDRVEXTRA500.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40949         { &hf_spoolss_spoolss_AddDriverInfo6_dependent_files,
40950           { "Dependent Files", "spoolss.spoolss_AddDriverInfo6.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40951         { &hf_spoolss_spoolss_DeviceMode_mediatype,
40952           { "Mediatype", "spoolss.spoolss_DeviceMode.mediatype", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeMediaType_vals), 0, NULL, HFILL }},
40953         { &hf_spoolss_spoolss_SetPrinterInfo4_servername,
40954           { "Servername", "spoolss.spoolss_SetPrinterInfo4.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40955         { &hf_spoolss_spoolss_PSDRVEXTRA400_wOptions,
40956           { "Woptions", "spoolss.spoolss_PSDRVEXTRA400.wOptions", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
40957         { &hf_spoolss_spoolss_AddPrinterDriverEx_flags,
40958           { "Flags", "spoolss.spoolss_AddPrinterDriverEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40959         { &hf_spoolss_spoolss_RouterReplyPrinter_bufsize,
40960           { "Bufsize", "spoolss.spoolss_RouterReplyPrinter.bufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40961         { &hf_spoolss_spoolss_SetPortInfoFF_port_name,
40962           { "Port Name", "spoolss.spoolss_SetPortInfoFF.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40963         { &hf_spoolss_spoolss_AddPerMachineConnection_provider,
40964           { "Provider", "spoolss.spoolss_AddPerMachineConnection.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40965         { &hf_spoolss_spoolss_UserLevel_level1,
40966           { "Level1", "spoolss.spoolss_UserLevel.level1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40967         { &hf_spoolss_spoolss_AccessRights_JOB_ACCESS_ADMINISTER,
40968           { "Job Access Administer", "spoolss.spoolss_AccessRights.JOB_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_JOB_ACCESS_ADMINISTER_tfs), ( 0x00000010 ), NULL, HFILL }},
40969         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DITHERTYPE,
40970           { "Devmode Dithertype", "spoolss.spoolss_DeviceModeFields.DEVMODE_DITHERTYPE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DITHERTYPE_tfs), ( 0x04000000 ), NULL, HFILL }},
40971         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR,
40972           { "Printer Change Delete Print Processor", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR_tfs), ( 0x04000000 ), NULL, HFILL }},
40973         { &hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr,
40974           { " Secdesc Ptr", "spoolss.spoolss_SetJobInfo4._secdesc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40975         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH,
40976           { "Devmode Panningwidth", "spoolss.spoolss_DeviceModeFields.DEVMODE_PANNINGWIDTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH_tfs), ( 0x08000000 ), NULL, HFILL }},
40977         { &hf_spoolss_spoolss_SetPortInfo_info3,
40978           { "Info3", "spoolss.spoolss_SetPortInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40979         { &hf_spoolss_spoolss_PrinterInfo0_total_bytes,
40980           { "Total Bytes", "spoolss.spoolss_PrinterInfo0.total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40981         { &hf_spoolss_spoolss_SetJobInfo2_driver_name,
40982           { "Driver Name", "spoolss.spoolss_SetJobInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
40983         { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn,
40984           { "Pin", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pIn", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
40985         { &hf_spoolss_spoolss_AddDriverInfo8_version,
40986           { "Version", "spoolss.spoolss_AddDriverInfo8.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
40987         { &hf_spoolss_spoolss_PortData1_port_number,
40988           { "Port Number", "spoolss.spoolss_PortData1.port_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40989         { &hf_spoolss_spoolss_SetPrinter_secdesc_ctr,
40990           { "Secdesc Ctr", "spoolss.spoolss_SetPrinter.secdesc_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
40991         { &hf_spoolss_spoolss_SetJobInfo4_priority,
40992           { "Priority", "spoolss.spoolss_SetJobInfo4.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40993         { &hf_spoolss_spoolss_PSDRVEXTRA_dwFlags,
40994           { "Dwflags", "spoolss.spoolss_PSDRVEXTRA.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
40995         { &hf_spoolss_spoolss_AddDriverInfo6__ndr_size_previous_names,
40996           { " Ndr Size Previous Names", "spoolss.spoolss_AddDriverInfo6._ndr_size_previous_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40997         { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_options,
40998           { "Options", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.options", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
40999         { &hf_spoolss_spoolss_UserLevel3_minor,
41000           { "Minor", "spoolss.spoolss_UserLevel3.minor", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MinorVersion_vals), 0, NULL, HFILL }},
41001         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH,
41002           { "Devmode Paperwidth", "spoolss.spoolss_DeviceModeFields.DEVMODE_PAPERWIDTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH_tfs), ( 0x00000008 ), NULL, HFILL }},
41003         { &hf_spoolss_spoolss_DriverInfo4_driver_path,
41004           { "Driver Path", "spoolss.spoolss_DriverInfo4.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41005         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN,
41006           { "Printer Attribute Hidden", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_HIDDEN", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN_tfs), ( 0x00000020 ), NULL, HFILL }},
41007         { &hf_spoolss_spoolss_SetPrinterInfo2_untiltime,
41008           { "Untiltime", "spoolss.spoolss_SetPrinterInfo2.untiltime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41009         { &hf_spoolss_spoolss_SetPrinterInfo0_total_bytes,
41010           { "Total Bytes", "spoolss.spoolss_SetPrinterInfo0.total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41011         { &hf_spoolss_spoolss_EnumPrintProcessors_needed,
41012           { "Needed", "spoolss.spoolss_EnumPrintProcessors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41013         { &hf_spoolss_spoolss_SetPortInfoContainer_info,
41014           { "Info", "spoolss.spoolss_SetPortInfoContainer.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41015         { &hf_spoolss_spoolss_DeletePrinterDriverEx_server,
41016           { "Server", "spoolss.spoolss_DeletePrinterDriverEx.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41017         { &hf_spoolss_spoolss_AddDriverInfo8_default_datatype,
41018           { "Default Datatype", "spoolss.spoolss_AddDriverInfo8.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41019         { &hf_spoolss_spoolss_SetPrinterInfo0_num_error_not_ready,
41020           { "Num Error Not Ready", "spoolss.spoolss_SetPrinterInfo0.num_error_not_ready", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41021         { &hf_spoolss_spoolss_PSDRVEXTRA_caContrast,
41022           { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41023         { &hf_spoolss_spoolss_PSDRVEXTRA351_dwSignature,
41024           { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA351.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
41025         { &hf_spoolss_spoolss_PrinterInfo1_comment,
41026           { "Comment", "spoolss.spoolss_PrinterInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41027         { &hf_spoolss_spoolss_SetPrinterInfo5_printername,
41028           { "Printername", "spoolss.spoolss_SetPrinterInfo5.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41029         { &hf_spoolss_spoolss_EnumPrinterDataEx_offered,
41030           { "Offered", "spoolss.spoolss_EnumPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41031         { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE,
41032           { "Spoolss Dm Ps Flags Print Negative", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE_tfs), ( 0x00000010 ), NULL, HFILL }},
41033         { &hf_spoolss_spoolss_FindClosePrinterNotify_handle,
41034           { "Handle", "spoolss.spoolss_FindClosePrinterNotify.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41035         { &hf_spoolss_spoolss_SetPrinterInfo_info1,
41036           { "Info1", "spoolss.spoolss_SetPrinterInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41037         { &hf_spoolss_spoolss_AddDriverInfo2_driver_name,
41038           { "Driver Name", "spoolss.spoolss_AddDriverInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41039         { &hf_spoolss_spoolss_EnumForms_handle,
41040           { "Handle", "spoolss.spoolss_EnumForms.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41041         { &hf_spoolss_spoolss_JobInfo2_document_name,
41042           { "Document Name", "spoolss.spoolss_JobInfo2.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41043         { &hf_spoolss_spoolss_PrinterInfo0_global_counter,
41044           { "Global Counter", "spoolss.spoolss_PrinterInfo0.global_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41045         { &hf_spoolss_spoolss_SetJobInfo2_size,
41046           { "Size", "spoolss.spoolss_SetJobInfo2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41047         { &hf_spoolss_spoolss_JobInfo2_devmode_,
41048           { "Subcontext length", "spoolss.spoolss_JobInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
41049         { &hf_spoolss_spoolss_SetPortInfo1_port_name,
41050           { "Port Name", "spoolss.spoolss_SetPortInfo1.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41051         { &hf_spoolss_spoolss_SetPrinterInfo0_processor_level,
41052           { "Processor Level", "spoolss.spoolss_SetPrinterInfo0.processor_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41053         { &hf_spoolss_spoolss_OpenPrinterEx_datatype,
41054           { "Datatype", "spoolss.spoolss_OpenPrinterEx.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41055         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL,
41056           { "Printer Enum Local", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_LOCAL", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL_tfs), ( 0x00000002 ), NULL, HFILL }},
41057         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS,
41058           { "Devmode Displayflags", "spoolss.spoolss_DeviceModeFields.DEVMODE_DISPLAYFLAGS", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS_tfs), ( 0x00200000 ), NULL, HFILL }},
41059         { &hf_spoolss_spoolss_AddDriverInfo1_driver_name,
41060           { "Driver Name", "spoolss.spoolss_AddDriverInfo1.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41061         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM,
41062           { "Printer Change Set Form", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_FORM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM_tfs), ( 0x00020000 ), NULL, HFILL }},
41063         { &hf_spoolss_spoolss_SetPort_port_ctr,
41064           { "Port Ctr", "spoolss.spoolss_SetPort.port_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41065         { &hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr,
41066           { "Secdesc Ctr", "spoolss.spoolss_AddPrinterEx.secdesc_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41067         { &hf_spoolss_spoolss_PortData1_snmp_dev_index,
41068           { "Snmp Dev Index", "spoolss.spoolss_PortData1.snmp_dev_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41069         { &hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE,
41070           { "Spoolss Form String Type None", "spoolss.spoolss_FormStringType.SPOOLSS_FORM_STRING_TYPE_NONE", FT_BOOLEAN, 32, TFS(&spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE_tfs), ( 0x00000001 ), NULL, HFILL }},
41071         { &hf_spoolss_spoolss_EnumPrintProcessors_level,
41072           { "Level", "spoolss.spoolss_EnumPrintProcessors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41073         { &hf_spoolss_spoolss_DriverInfo8_default_datatype,
41074           { "Default Datatype", "spoolss.spoolss_DriverInfo8.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41075         { &hf_spoolss_spoolss_PortInfo2_reserved,
41076           { "Reserved", "spoolss.spoolss_PortInfo2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41077         { &hf_spoolss_propertyBlob_cbBuf,
41078           { "Cbbuf", "spoolss.propertyBlob.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41079         { &hf_spoolss_spoolss_PrinterInfo0_enumerate_network_printers,
41080           { "Enumerate Network Printers", "spoolss.spoolss_PrinterInfo0.enumerate_network_printers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41081         { &hf_spoolss_spoolss_GetPrinter_needed,
41082           { "Needed", "spoolss.spoolss_GetPrinter.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41083         { &hf_spoolss_spoolss_JobInfo_info4,
41084           { "Info4", "spoolss.spoolss_JobInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41085         { &hf_spoolss_spoolss_DriverInfo_info5,
41086           { "Info5", "spoolss.spoolss_DriverInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41087         { &hf_spoolss_spoolss_JobInfo1_job_id,
41088           { "Job Id", "spoolss.spoolss_JobInfo1.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41089         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_FORMNAME,
41090           { "Devmode Formname", "spoolss.spoolss_DeviceModeFields.DEVMODE_FORMNAME", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_FORMNAME_tfs), ( 0x00010000 ), NULL, HFILL }},
41091         { &hf_spoolss__spoolss_EnumPrinters_level,
41092           { "Level", "spoolss._spoolss_EnumPrinters.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41093         { &hf_spoolss_spoolss_PSDRVEXTRA_dwBookletFlags,
41094           { "Dwbookletflags", "spoolss.spoolss_PSDRVEXTRA.dwBookletFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_BookletFlags_vals), 0, NULL, HFILL }},
41095         { &hf_spoolss_spoolss_PSDRVEXTRA500_wSize,
41096           { "Wsize", "spoolss.spoolss_PSDRVEXTRA500.wSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41097         { &hf_spoolss_spoolss_MonitorInfo2_monitor_name,
41098           { "Monitor Name", "spoolss.spoolss_MonitorInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41099         { &hf_spoolss_spoolss_StartDocPrinter_handle,
41100           { "Handle", "spoolss.spoolss_StartDocPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41101         { &hf_spoolss_spoolss_SetJobInfo2_job_id,
41102           { "Job Id", "spoolss.spoolss_SetJobInfo2.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41103         { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options,
41104           { "Options", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.options", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41105         { &hf_spoolss_spoolss_PortInfo_info3,
41106           { "Info3", "spoolss.spoolss_PortInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41107         { &hf_spoolss_RPC_BIDI_DATA_u_biData,
41108           { "Bidata", "spoolss.RPC_BIDI_DATA_u.biData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41109         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwSignature,
41110           { "Dwsignature", "spoolss.spoolss_UNIDRVEXTRA.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
41111         { &hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceBlack,
41112           { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA500.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41113         { &hf_spoolss_spoolss_EnumPrinterDrivers_server,
41114           { "Server", "spoolss.spoolss_EnumPrinterDrivers.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41115         { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR,
41116           { "Spoolss Dm Ps Flags Print Mirror", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR_tfs), ( 0x00000004 ), NULL, HFILL }},
41117         { &hf_spoolss_spoolss_NotifyOptionType_count,
41118           { "Count", "spoolss.spoolss_NotifyOptionType.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41119         { &hf_spoolss_spoolss_DriverInfo3_driver_path,
41120           { "Driver Path", "spoolss.spoolss_DriverInfo3.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41121         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_level,
41122           { "Level", "spoolss.spoolss_GetPrinterDriverDirectory.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41123         { &hf_spoolss_spoolss_OpenPrinter_printername,
41124           { "Printername", "spoolss.spoolss_OpenPrinter.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41125         { &hf_spoolss_spoolss_SetPrinterInfo0_total_pages,
41126           { "Total Pages", "spoolss.spoolss_SetPrinterInfo0.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41127         { &hf_spoolss_spoolss_AddDriverInfo5_driver_version,
41128           { "Driver Version", "spoolss.spoolss_AddDriverInfo5.driver_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41129         { &hf_spoolss_spoolss_PrinterInfo0_cjobs,
41130           { "Cjobs", "spoolss.spoolss_PrinterInfo0.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41131         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERSIZE,
41132           { "Devmode Papersize", "spoolss.spoolss_DeviceModeFields.DEVMODE_PAPERSIZE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PAPERSIZE_tfs), ( 0x00000002 ), NULL, HFILL }},
41133         { &hf_spoolss_spoolss_EnumPrinterKey_key_buffer_,
41134           { "Subcontext length", "spoolss.spoolss_EnumPrinterKey.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
41135         { &hf_spoolss_spoolss_PSDRVEXTRA351_dwFlags,
41136           { "Dwflags", "spoolss.spoolss_PSDRVEXTRA351.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41137         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT,
41138           { "Printer Change Timeout", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_TIMEOUT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT_tfs), ( 0x80000000 ), NULL, HFILL }},
41139         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM,
41140           { "Printer Change Add Form", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_FORM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM_tfs), ( 0x00010000 ), NULL, HFILL }},
41141         { &hf_spoolss_spoolss_PSDRVEXTRA500_caIlluminantIndex,
41142           { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA500.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41143         { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle,
41144           { "Handle", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41145         { &hf_spoolss_spoolss_Time_second,
41146           { "Second", "spoolss.spoolss_Time.second", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41147         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE,
41148           { "Printer Driver Category File", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_FILE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE_tfs), ( 0x00000080 ), NULL, HFILL }},
41149         { &hf_spoolss_spoolss_DriverDirectoryInfo_info1,
41150           { "Info1", "spoolss.spoolss_DriverDirectoryInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41151         { &hf_spoolss_spoolss_SetPrinterInfo2_cjobs,
41152           { "Cjobs", "spoolss.spoolss_SetPrinterInfo2.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41153         { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_UPDATE,
41154           { "Dsprint Update", "spoolss.spoolss_DsPrintAction.DSPRINT_UPDATE", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_UPDATE_tfs), ( 0x00000002 ), NULL, HFILL }},
41155         { &hf_spoolss_spoolss_SetPrinterInfo1_comment,
41156           { "Comment", "spoolss.spoolss_SetPrinterInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41157         { &hf_spoolss_spoolss_JobInfo4_text_status,
41158           { "Text Status", "spoolss.spoolss_JobInfo4.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41159         { &hf_spoolss_spoolss_ResetPrinter_handle,
41160           { "Handle", "spoolss.spoolss_ResetPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41161         { &hf_spoolss_spoolss_OSVersionEx_product_type,
41162           { "Product Type", "spoolss.spoolss_OSVersionEx.product_type", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41163         { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_ul,
41164           { "Ul", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.ul", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41165         { &hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies,
41166           { "Core Driver Dependencies", "spoolss.spoolss_AddDriverInfo8.core_driver_dependencies", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41167         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE,
41168           { "Printer Status Power Save", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_POWER_SAVE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE_tfs), ( 0x01000000 ), NULL, HFILL }},
41169         { &hf_spoolss_spoolss_GetPrinterDataEx_key_name,
41170           { "Key Name", "spoolss.spoolss_GetPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41171         { &hf_spoolss_spoolss_PortData1_hostaddress,
41172           { "Hostaddress", "spoolss.spoolss_PortData1.hostaddress", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41173         { &hf_spoolss_spoolss_PrinterInfo7_action,
41174           { "Action", "spoolss.spoolss_PrinterInfo7.action", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41175         { &hf_spoolss_spoolss_JTEXP_dwSignature,
41176           { "Dwsignature", "spoolss.spoolss_JTEXP.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
41177         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CLASS,
41178           { "Printer Driver Class", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CLASS", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CLASS_tfs), ( 0x00000008 ), NULL, HFILL }},
41179         { &hf_spoolss_spoolss_SetPrinterInfo0_servername,
41180           { "Servername", "spoolss.spoolss_SetPrinterInfo0.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41181         { &hf_spoolss_spoolss_TimeCtr_time,
41182           { "Time", "spoolss.spoolss_TimeCtr.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41183         { &hf_spoolss_spoolss_DriverInfo3_help_file,
41184           { "Help File", "spoolss.spoolss_DriverInfo3.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41185         { &hf_spoolss_spoolss_DriverInfo4_dependent_files,
41186           { "Dependent Files", "spoolss.spoolss_DriverInfo4.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41187         { &hf_spoolss_spoolss_AddDriverInfo5_config_file,
41188           { "Config File", "spoolss.spoolss_AddDriverInfo5.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41189         { &hf_spoolss_RPC_BIDI_DATA_dwBidiType,
41190           { "Dwbiditype", "spoolss.RPC_BIDI_DATA.dwBidiType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41191         { &hf_spoolss_spoolss_GetForm_level,
41192           { "Level", "spoolss.spoolss_GetForm.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41193         { &hf_spoolss_spoolss_DeviceMode_printquality,
41194           { "Printquality", "spoolss.spoolss_DeviceMode.printquality", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModePrintQuality_vals), 0, NULL, HFILL }},
41195         { &hf_spoolss_spoolss_DriverInfo2_version,
41196           { "Version", "spoolss.spoolss_DriverInfo2.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
41197         { &hf_spoolss_spoolss_DriverInfo2_driver_name,
41198           { "Driver Name", "spoolss.spoolss_DriverInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41199         { &hf_spoolss_spoolss_DeviceMode_formname,
41200           { "Formname", "spoolss.spoolss_DeviceMode.formname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41201         { &hf_spoolss_spoolss_PSDRVEXTRA500_caGreenGamma,
41202           { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA500.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41203         { &hf_spoolss__spoolss_EnumForms_offered,
41204           { "Offered", "spoolss._spoolss_EnumForms.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41205         { &hf_spoolss_spoolss_PSDRVEXTRA351_caIlluminantIndex,
41206           { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA351.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41207         { &hf_spoolss_spoolss_SetPortInfo2_port_type,
41208           { "Port Type", "spoolss.spoolss_SetPortInfo2.port_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41209         { &hf_spoolss_spoolss_EnumJobs_level,
41210           { "Level", "spoolss.spoolss_EnumJobs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41211         { &hf_spoolss_spoolss_PSDRVEXTRA500_iTTDLFmt,
41212           { "Ittdlfmt", "spoolss.spoolss_PSDRVEXTRA500.iTTDLFmt", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_TTDLFmt_vals), 0, NULL, HFILL }},
41213         { &hf_spoolss_spoolss_DriverInfo101_manufacturer_name,
41214           { "Manufacturer Name", "spoolss.spoolss_DriverInfo101.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41215         { &hf_spoolss_spoolss_NotifyData_sd,
41216           { "Sd", "spoolss.spoolss_NotifyData.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41217         { &hf_spoolss_spoolss_SetPrinterInfo2_printprocessor,
41218           { "Printprocessor", "spoolss.spoolss_SetPrinterInfo2.printprocessor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41219         { &hf_spoolss_spoolss_CreatePrinterIC_gdi_handle,
41220           { "Gdi Handle", "spoolss.spoolss_CreatePrinterIC.gdi_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41221         { &hf_spoolss_spoolss_EnumJobs_buffer,
41222           { "Buffer", "spoolss.spoolss_EnumJobs.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41223         { &hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ENUMERATE,
41224           { "Server Access Enumerate", "spoolss.spoolss_AccessRights.SERVER_ACCESS_ENUMERATE", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_SERVER_ACCESS_ENUMERATE_tfs), ( 0x00000002 ), NULL, HFILL }},
41225         { &hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS,
41226           { "Spoolss Dm Uni Flags Print Text As Graphics", "spoolss.spoolss_DMUNI_Flags.SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", FT_BOOLEAN, 32, TFS(&spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS_tfs), ( 0x00000002 ), NULL, HFILL }},
41227         { &hf_spoolss_spoolss_SetPrinterInfo2_servername,
41228           { "Servername", "spoolss.spoolss_SetPrinterInfo2.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41229         { &hf_spoolss_spoolss_UserLevel3_size2,
41230           { "Size2", "spoolss.spoolss_UserLevel3.size2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41231         { &hf_spoolss_spoolss_SetPrinterInfoCtr_info,
41232           { "Info", "spoolss.spoolss_SetPrinterInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41233         { &hf_spoolss_spoolss_PrinterInfo_info4,
41234           { "Info4", "spoolss.spoolss_PrinterInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41235         { &hf_spoolss_spoolss_NotifyOption_count,
41236           { "Count", "spoolss.spoolss_NotifyOption.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41237         { &hf_spoolss_spoolss_GetJob_offered,
41238           { "Offered", "spoolss.spoolss_GetJob.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41239         { &hf_spoolss_spoolss_SetPrinterInfo7_guid,
41240           { "Guid", "spoolss.spoolss_SetPrinterInfo7.guid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41241         { &hf_spoolss_spoolss_PrinterInfo0_total_jobs,
41242           { "Total Jobs", "spoolss.spoolss_PrinterInfo0.total_jobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41243         { &hf_spoolss_spoolss_SetPrinterInfo2_parameters,
41244           { "Parameters", "spoolss.spoolss_SetPrinterInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41245         { &hf_spoolss_spoolss_DeletePort_server_name,
41246           { "Server Name", "spoolss.spoolss_DeletePort.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41247         { &hf_spoolss_spoolss_SetPrinterInfo_info5,
41248           { "Info5", "spoolss.spoolss_SetPrinterInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41249         { &hf_spoolss_spoolss_AddFormInfo2_string_type,
41250           { "String Type", "spoolss.spoolss_AddFormInfo2.string_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41251         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_NUP,
41252           { "Devmode Nup", "spoolss.spoolss_DeviceModeFields.DEVMODE_NUP", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_NUP_tfs), ( 0x00000040 ), NULL, HFILL }},
41253         { &hf_spoolss_spoolss_RpcSetJobNamedProperty_JobId,
41254           { "Jobid", "spoolss.spoolss_RpcSetJobNamedProperty.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41255         { &hf_spoolss_spoolss_DriverInfo6_hardware_id,
41256           { "Hardware Id", "spoolss.spoolss_DriverInfo6.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41257         { &hf_spoolss_spoolss_PortInfoFF_port_name,
41258           { "Port Name", "spoolss.spoolss_PortInfoFF.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41259         { &hf_spoolss_spoolss_FormInfo2_form_name,
41260           { "Form Name", "spoolss.spoolss_FormInfo2.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41261         { &hf_spoolss_spoolss_EnumPrinters_count,
41262           { "Count", "spoolss.spoolss_EnumPrinters.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41263         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ,
41264           { "Job Status Blocked Devq", "spoolss.spoolss_JobStatus.JOB_STATUS_BLOCKED_DEVQ", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ_tfs), ( 0x00000200 ), NULL, HFILL }},
41265         { &hf_spoolss_spoolss_DriverInfo8_driver_name,
41266           { "Driver Name", "spoolss.spoolss_DriverInfo8.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41267         { &hf_spoolss_spoolss_DriverInfo2_config_file,
41268           { "Config File", "spoolss.spoolss_DriverInfo2.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41269         { &hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr,
41270           { "Devmode Ctr", "spoolss.spoolss_CreatePrinterIC.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41271         { &hf_spoolss_spoolss_AddDriverInfo6_driver_name,
41272           { "Driver Name", "spoolss.spoolss_AddDriverInfo6.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41273         { &hf_spoolss_spoolss_UNIDRVEXTRA500_sPadding,
41274           { "Spadding", "spoolss.spoolss_UNIDRVEXTRA500.sPadding", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41275         { &hf_spoolss_spoolss_CorePrinterDriver_driver_version,
41276           { "Driver Version", "spoolss.spoolss_CorePrinterDriver.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
41277         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT,
41278           { "Printer Attribute Direct", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_DIRECT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT_tfs), ( 0x00000002 ), NULL, HFILL }},
41279         { &hf_spoolss_spoolss_DriverInfo101_driver_date,
41280           { "Driver Date", "spoolss.spoolss_DriverInfo101.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
41281         { &hf_spoolss_spoolss_SetForm_handle,
41282           { "Handle", "spoolss.spoolss_SetForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41283         { &hf_spoolss_spoolss_DriverInfo4_architecture,
41284           { "Architecture", "spoolss.spoolss_DriverInfo4.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41285         { &hf_spoolss_spoolss_PrinterInfo0_num_error_out_of_paper,
41286           { "Num Error Out Of Paper", "spoolss.spoolss_PrinterInfo0.num_error_out_of_paper", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41287         { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_PENDING,
41288           { "Dsprint Pending", "spoolss.spoolss_DsPrintAction.DSPRINT_PENDING", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_PENDING_tfs), ( 0x80000000 ), NULL, HFILL }},
41289         { &hf_spoolss_spoolss_DeviceMode_reserved1,
41290           { "Reserved1", "spoolss.spoolss_DeviceMode.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41291         { &hf_spoolss_spoolss_GetPrinterData_offered,
41292           { "Offered", "spoolss.spoolss_GetPrinterData.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41293         { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter,
41294           { "Hprinter", "spoolss.spoolss_RpcEnumJobNamedProperties.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41295         { &hf_spoolss_spoolss_DriverInfo6_driver_name,
41296           { "Driver Name", "spoolss.spoolss_DriverInfo6.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41297         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_offered,
41298           { "Offered", "spoolss.spoolss_GetPrinterDriverDirectory.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41299         { &hf_spoolss_spoolss_GetPrinterData_value_name,
41300           { "Value Name", "spoolss.spoolss_GetPrinterData.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41301         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE,
41302           { "Printer Enum Hide", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_HIDE", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE_tfs), ( 0x01000000 ), NULL, HFILL }},
41303         { &hf_spoolss_spoolss_UserLevel3_processor,
41304           { "Processor", "spoolss.spoolss_UserLevel3.processor", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
41305         { &hf_spoolss_spoolss_PSDRVEXTRA_caRedGamma,
41306           { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41307         { &hf_spoolss_spoolss_EnumPrinterData_handle,
41308           { "Handle", "spoolss.spoolss_EnumPrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41309         { &hf_spoolss_spoolss_PrinterInfo0_job_error,
41310           { "Job Error", "spoolss.spoolss_PrinterInfo0.job_error", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41311         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE,
41312           { "Printer Driver Package Aware", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_PACKAGE_AWARE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE_tfs), ( 0x00000001 ), NULL, HFILL }},
41313         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM,
41314           { "Printer Status Paper Problem", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAPER_PROBLEM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM_tfs), ( 0x00000040 ), NULL, HFILL }},
41315         { &hf_spoolss_spoolss_SetPortInfoContainer_level,
41316           { "Level", "spoolss.spoolss_SetPortInfoContainer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41317         { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Flags,
41318           { "Flags", "spoolss.RPC_BIDI_REQUEST_CONTAINER.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41319         { &hf_spoolss_spoolss_DriverInfo101_driver_version,
41320           { "Driver Version", "spoolss.spoolss_DriverInfo101.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
41321         { &hf_spoolss_spoolss_DeviceMode_defaultsource,
41322           { "Defaultsource", "spoolss.spoolss_DeviceMode.defaultsource", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeDefaultSource_vals), 0, NULL, HFILL }},
41323         { &hf_spoolss_spoolss_FormSize_width,
41324           { "Width", "spoolss.spoolss_FormSize.width", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41325         { &hf_spoolss_spoolss_SetPrinter_handle,
41326           { "Handle", "spoolss.spoolss_SetPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41327         { &hf_spoolss_spoolss_PSDRVEXTRA500_caRedGamma,
41328           { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA500.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41329         { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyString,
41330           { "Propertystring", "spoolss.RPC_PrintPropertyValueUnion.propertyString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41331         { &hf_spoolss_spoolss_SetPrinterInfo2_portname,
41332           { "Portname", "spoolss.spoolss_SetPrinterInfo2.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41333         { &hf_spoolss_spoolss_EnumPrinterData_data,
41334           { "Data", "spoolss.spoolss_EnumPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41335         { &hf_spoolss__spoolss_EnumPrintProcessors_info,
41336           { "Info", "spoolss._spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41337         { &hf_spoolss_spoolss_DocumentInfoCtr_info,
41338           { "Info", "spoolss.spoolss_DocumentInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41339         { &hf_spoolss_spoolss_PrinterData_binary,
41340           { "Binary", "spoolss.spoolss_PrinterData.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41341         { &hf_spoolss_spoolss_PSDRVEXTRA400_caRedGreenTint,
41342           { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA400.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41343         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY,
41344           { "Printer Attribute Raw Only", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_RAW_ONLY", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY_tfs), ( 0x00001000 ), NULL, HFILL }},
41345         { &hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_version,
41346           { "Min Inbox Driver Ver Version", "spoolss.spoolss_DriverInfo8.min_inbox_driver_ver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
41347         { &hf_spoolss_spoolss_AddDriverInfo6_hardware_id,
41348           { "Hardware Id", "spoolss.spoolss_AddDriverInfo6.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41349         { &hf_spoolss_spoolss_AddFormInfo2_flags,
41350           { "Flags", "spoolss.spoolss_AddFormInfo2.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
41351         { &hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array,
41352           { "Name Array", "spoolss.spoolss_PrintProcDataTypesInfo1.name_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41353         { &hf_spoolss_spoolss_PrinterInfo2_comment,
41354           { "Comment", "spoolss.spoolss_PrinterInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41355         { &hf_spoolss_spoolss_PortInfo2_monitor_name,
41356           { "Monitor Name", "spoolss.spoolss_PortInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41357         { &hf_spoolss_spoolss_FormInfo2_lang_id,
41358           { "Lang Id", "spoolss.spoolss_FormInfo2.lang_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41359         { &hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING,
41360           { "Spoolss Dm Uni Flags Custom Halftoning", "spoolss.spoolss_DMUNI_Flags.SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", FT_BOOLEAN, 32, TFS(&spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING_tfs), ( 0x00000080 ), NULL, HFILL }},
41361         { &hf_spoolss_spoolss_SetPrinterInfo0_processor_type,
41362           { "Processor Type", "spoolss.spoolss_SetPrinterInfo0.processor_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_ProcessorType_vals), 0, NULL, HFILL }},
41363         { &hf_spoolss_spoolss_DriverInfo8_printer_driver_attributes,
41364           { "Printer Driver Attributes", "spoolss.spoolss_DriverInfo8.printer_driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41365         { &hf_spoolss_spoolss_GetPrinterDataEx_value_name,
41366           { "Value Name", "spoolss.spoolss_GetPrinterDataEx.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41367         { &hf_spoolss_spoolss_PrinterInfo0_session_counter,
41368           { "Session Counter", "spoolss.spoolss_PrinterInfo0.session_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41369         { &hf_spoolss_spoolss_SetJobInfo4_job_id,
41370           { "Job Id", "spoolss.spoolss_SetJobInfo4.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41371         { &hf_spoolss__spoolss_EnumMonitors_buffer,
41372           { "Buffer", "spoolss._spoolss_EnumMonitors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41373         { &hf_spoolss_spoolss_JobInfo2_driver_name,
41374           { "Driver Name", "spoolss.spoolss_JobInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41375         { &hf_spoolss_spoolss_DriverFileInfo_file_version,
41376           { "File Version", "spoolss.spoolss_DriverFileInfo.file_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41377         { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_size,
41378           { "Core Driver Size", "spoolss.spoolss_GetCorePrinterDrivers.core_driver_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41379         { &hf_spoolss_spoolss_DeletePerMachineConnection_printername,
41380           { "Printername", "spoolss.spoolss_DeletePerMachineConnection.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41381         { &hf_spoolss_spoolss_DriverInfo6_driver_version,
41382           { "Driver Version", "spoolss.spoolss_DriverInfo6.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
41383         { &hf_spoolss_spoolss_JobInfo2_user_name,
41384           { "User Name", "spoolss.spoolss_JobInfo2.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41385         { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_change_low,
41386           { "Change Low", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.change_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41387         { &hf_spoolss_spoolss_SetPrinterInfo0_spooling,
41388           { "Spooling", "spoolss.spoolss_SetPrinterInfo0.spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41389         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING,
41390           { "Printer Status Initializing", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_INITIALIZING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING_tfs), ( 0x00008000 ), NULL, HFILL }},
41391         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_OFFLINE,
41392           { "Job Status Offline", "spoolss.spoolss_JobStatus.JOB_STATUS_OFFLINE", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_OFFLINE_tfs), ( 0x00000020 ), NULL, HFILL }},
41393         { &hf_spoolss_spoolss_EndPagePrinter_handle,
41394           { "Handle", "spoolss.spoolss_EndPagePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41395         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT,
41396           { "Printer Attribute Default", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_DEFAULT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT_tfs), ( 0x00000004 ), NULL, HFILL }},
41397         { &hf_spoolss_spoolss_AddDriverInfo3__ndr_size_dependent_files,
41398           { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo3._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41399         { &hf_spoolss_spoolss_SetForm_form_name,
41400           { "Form Name", "spoolss.spoolss_SetForm.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41401         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_level,
41402           { "Level", "spoolss.spoolss_GetPrintProcessorDirectory.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41403         { &hf_spoolss_spoolss_AddPrintProcessor_path_name,
41404           { "Path Name", "spoolss.spoolss_AddPrintProcessor.path_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41405         { &hf_spoolss_spoolss_PortData2_port_monitor_mib_index,
41406           { "Port Monitor Mib Index", "spoolss.spoolss_PortData2.port_monitor_mib_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41407         { &hf_spoolss_spoolss_AddDriverInfo4_driver_path,
41408           { "Driver Path", "spoolss.spoolss_AddDriverInfo4.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41409         { &hf_spoolss_spoolss_AddDriverInfo_info6,
41410           { "Info6", "spoolss.spoolss_AddDriverInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41411         { &hf_spoolss_spoolss_DriverInfo4_help_file,
41412           { "Help File", "spoolss.spoolss_DriverInfo4.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41413         { &hf_spoolss___spoolss_EnumJobs_count,
41414           { "Count", "spoolss.__spoolss_EnumJobs.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41415         { &hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceWhite,
41416           { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA500.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41417         { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_driver_count,
41418           { "Core Printer Driver Count", "spoolss.spoolss_GetCorePrinterDrivers.core_printer_driver_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41419         { &hf_spoolss_spoolss_ReplyOpenPrinter_handle,
41420           { "Handle", "spoolss.spoolss_ReplyOpenPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41421         { &hf_spoolss_spoolss_JobInfo2_time,
41422           { "Time", "spoolss.spoolss_JobInfo2.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41423         { &hf_spoolss_spoolss_PrinterInfo1_flags,
41424           { "Flags", "spoolss.spoolss_PrinterInfo1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41425         { &hf_spoolss_spoolss_PortData1_version,
41426           { "Version", "spoolss.spoolss_PortData1.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41427         { &hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL,
41428           { "Spoolss Dm Uni Flags Avoid Emfspool", "spoolss.spoolss_DMUNI_Flags.SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", FT_BOOLEAN, 32, TFS(&spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL_tfs), ( 0x00000010 ), NULL, HFILL }},
41429         { &hf_spoolss_spoolss_EnumPrintProcessors_offered,
41430           { "Offered", "spoolss.spoolss_EnumPrintProcessors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41431         { &hf_spoolss_spoolss_PortInfo3_status_string,
41432           { "Status String", "spoolss.spoolss_PortInfo3.status_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41433         { &hf_spoolss_spoolss_SetPrinterData_data,
41434           { "Data", "spoolss.spoolss_SetPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41435         { &hf_spoolss_spoolss_SetJobInfo4__devmode_ptr,
41436           { " Devmode Ptr", "spoolss.spoolss_SetJobInfo4._devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41437         { &hf_spoolss_spoolss_GetJob_level,
41438           { "Level", "spoolss.spoolss_GetJob.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41439         { &hf_spoolss_spoolss_DeviceMode_ttoption,
41440           { "Ttoption", "spoolss.spoolss_DeviceMode.ttoption", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeTTOption_vals), 0, NULL, HFILL }},
41441         { &hf_spoolss_spoolss_GetPrinterDriver_info_,
41442           { "Subcontext length", "spoolss.spoolss_GetPrinterDriver.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41443         { &hf_spoolss_spoolss_UNIDRVEXTRA_aOptions,
41444           { "Aoptions", "spoolss.spoolss_UNIDRVEXTRA.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41445         { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue,
41446           { "Pvalue", "spoolss.spoolss_RpcGetJobNamedPropertyValue.pValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41447         { &hf_spoolss_spoolss_DriverInfo_info3,
41448           { "Info3", "spoolss.spoolss_DriverInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41449         { &hf_spoolss_spoolss_UNIDRVEXTRA500_wVer,
41450           { "Wver", "spoolss.spoolss_UNIDRVEXTRA500.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41451         { &hf_spoolss_spoolss_UNIDRVEXTRA500_iLayout,
41452           { "Ilayout", "spoolss.spoolss_UNIDRVEXTRA500.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
41453         { &hf_spoolss_spoolss_PortData1_device_type,
41454           { "Device Type", "spoolss.spoolss_PortData1.device_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41455         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_info,
41456           { "Info", "spoolss._spoolss_EnumPrintProcDataTypes.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41457         { &hf_spoolss_spoolss_DeviceMode_displayflags,
41458           { "Displayflags", "spoolss.spoolss_DeviceMode.displayflags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeNUp_vals), 0, NULL, HFILL }},
41459         { &hf_spoolss_spoolss_PSDRVEXTRA351_wchEPSFile,
41460           { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA351.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41461         { &hf_spoolss_spoolss_PrinterInfo_info9,
41462           { "Info9", "spoolss.spoolss_PrinterInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41463         { &hf_spoolss_spoolss_Time_day_of_week,
41464           { "Day Of Week", "spoolss.spoolss_Time.day_of_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41465         { &hf_spoolss_spoolss_JobInfo1_text_status,
41466           { "Text Status", "spoolss.spoolss_JobInfo1.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41467         { &hf_spoolss_spoolss_PrinterInfo2_servername,
41468           { "Servername", "spoolss.spoolss_PrinterInfo2.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41469         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB,
41470           { "Printer Change Write Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_WRITE_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB_tfs), ( 0x00000800 ), NULL, HFILL }},
41471         { &hf_spoolss_spoolss_SetPrinterData_type,
41472           { "Type", "spoolss.spoolss_SetPrinterData.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
41473         { &hf_spoolss_spoolss_PrinterInfo0_processor_type,
41474           { "Processor Type", "spoolss.spoolss_PrinterInfo0.processor_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_ProcessorType_vals), 0, NULL, HFILL }},
41475         { &hf_spoolss_spoolss_SetPrinterInfo5_transmission_retry_timeout,
41476           { "Transmission Retry Timeout", "spoolss.spoolss_SetPrinterInfo5.transmission_retry_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41477         { &hf_spoolss_spoolss_FormInfo_info2,
41478           { "Info2", "spoolss.spoolss_FormInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41479         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_ERROR,
41480           { "Job Status Error", "spoolss.spoolss_JobStatus.JOB_STATUS_ERROR", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_ERROR_tfs), ( 0x00000002 ), NULL, HFILL }},
41481         { &hf_spoolss_spoolss_EnumPrinterDrivers_needed,
41482           { "Needed", "spoolss.spoolss_EnumPrinterDrivers.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41483         { &hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel,
41484           { "Ipslevel", "spoolss.spoolss_PSDRVEXTRA.iPSLevel", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_PSLevel_vals), 0, NULL, HFILL }},
41485         { &hf_spoolss_spoolss_GetPrinterDataEx_data,
41486           { "Data", "spoolss.spoolss_GetPrinterDataEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41487         { &hf_spoolss_spoolss_AddPrinter_server,
41488           { "Server", "spoolss.spoolss_AddPrinter.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41489         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3,
41490           { "Printer Enum Icon3", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON3", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3_tfs), ( 0x00040000 ), NULL, HFILL }},
41491         { &hf_spoolss_spoolss_DeviceMode_pelswidth,
41492           { "Pelswidth", "spoolss.spoolss_DeviceMode.pelswidth", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41493         { &hf_spoolss_spoolss_DeviceMode_orientation,
41494           { "Orientation", "spoolss.spoolss_DeviceMode.orientation", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeOrientation_vals), 0, NULL, HFILL }},
41495         { &hf_spoolss_spoolss_EnumForms_info,
41496           { "Info", "spoolss.spoolss_EnumForms.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41497         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwChecksum32,
41498           { "Dwchecksum32", "spoolss.spoolss_PSDRVEXTRA500.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41499         { &hf_spoolss_spoolss_NotifyOptionType_u1,
41500           { "U1", "spoolss.spoolss_NotifyOptionType.u1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41501         { &hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceBlack,
41502           { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA400.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41503         { &hf_spoolss_spoolss_AddFormInfo2_size,
41504           { "Size", "spoolss.spoolss_AddFormInfo2.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41505         { &hf_spoolss_spoolss_AddPrinterEx_server,
41506           { "Server", "spoolss.spoolss_AddPrinterEx.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41507         { &hf_spoolss_spoolss_DriverInfo8_color_profiles,
41508           { "Color Profiles", "spoolss.spoolss_DriverInfo8.color_profiles", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41509         { &hf_spoolss_spoolss_EnumPrintProcessors_count,
41510           { "Count", "spoolss.spoolss_EnumPrintProcessors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41511         { &hf_spoolss_spoolss_SetJobInfo4_pages_printed,
41512           { "Pages Printed", "spoolss.spoolss_SetJobInfo4.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41513         { &hf_spoolss__spoolss_EnumPrinters_offered,
41514           { "Offered", "spoolss._spoolss_EnumPrinters.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41515         { &hf_spoolss_spoolss_SetJobInfo4_print_processor,
41516           { "Print Processor", "spoolss.spoolss_SetJobInfo4.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41517         { &hf_spoolss_spoolss_PSDRVEXTRA_caBlueGamma,
41518           { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41519         { &hf_spoolss_spoolss_SetJobInfo4_until_time,
41520           { "Until Time", "spoolss.spoolss_SetJobInfo4.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41521         { &hf_spoolss___spoolss_EnumForms_count,
41522           { "Count", "spoolss.__spoolss_EnumForms.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41523         { &hf_spoolss_spoolss_DriverInfo_info101,
41524           { "Info101", "spoolss.spoolss_DriverInfo.info101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41525         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER,
41526           { "Printer Change Add Printer Driver", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PRINTER_DRIVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER_tfs), ( 0x10000000 ), NULL, HFILL }},
41527         { &hf_spoolss_spoolss_SetJobInfo_info1,
41528           { "Info1", "spoolss.spoolss_SetJobInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41529         { &hf_spoolss_spoolss_MonitorInfo2_dll_name,
41530           { "Dll Name", "spoolss.spoolss_MonitorInfo2.dll_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41531         { &hf_spoolss_spoolss_RouterReplyPrinter_flags,
41532           { "Flags", "spoolss.spoolss_RouterReplyPrinter.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41533         { &hf_spoolss_spoolss_GetPrinterDriver2_client_minor_version,
41534           { "Client Minor Version", "spoolss.spoolss_GetPrinterDriver2.client_minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41535         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwBookletFlags,
41536           { "Dwbookletflags", "spoolss.spoolss_UNIDRVEXTRA.dwBookletFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_BookletFlags_vals), 0, NULL, HFILL }},
41537         { &hf_spoolss_spoolss_OpenPrinter_access_mask,
41538           { "Access Mask", "spoolss.spoolss_OpenPrinter.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41539         { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED,
41540           { "Spoolss Port Type Net Attached", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_NET_ATTACHED", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED_tfs), ( 0x00000008 ), NULL, HFILL }},
41541         { &hf_spoolss__spoolss_EnumPrintProcessors_level,
41542           { "Level", "spoolss._spoolss_EnumPrintProcessors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41543         { &hf_spoolss_RPC_BIDI_REQUEST_DATA_data,
41544           { "Data", "spoolss.RPC_BIDI_REQUEST_DATA.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41545         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX,
41546           { "Printer Attribute Fax", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_FAX", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX_tfs), ( 0x00004000 ), NULL, HFILL }},
41547         { &hf_spoolss_spoolss_UNIDRVEXTRA_wVer,
41548           { "Wver", "spoolss.spoolss_UNIDRVEXTRA.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41549         { &hf_spoolss_spoolss_AddJob_handle,
41550           { "Handle", "spoolss.spoolss_AddJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41551         { &hf_spoolss_spoolss_GetPrinterDriver_architecture,
41552           { "Architecture", "spoolss.spoolss_GetPrinterDriver.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41553         { &hf_spoolss_spoolss_EnumPrinterData_type,
41554           { "Type", "spoolss.spoolss_EnumPrinterData.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
41555         { &hf_spoolss_spoolss_DriverInfo8_previous_names,
41556           { "Previous Names", "spoolss.spoolss_DriverInfo8.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41557         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer,
41558           { "Buffer", "spoolss.spoolss_GetPrintProcessorDirectory.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41559         { &hf_spoolss_spoolss_JobInfo2_devmode,
41560           { "Devmode", "spoolss.spoolss_JobInfo2.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41561         { &hf_spoolss_spoolss_JTEXP_dwSize,
41562           { "Dwsize", "spoolss.spoolss_JTEXP.dwSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41563         { &hf_spoolss_spoolss_PortVarContainer_monitor_data_size,
41564           { "Monitor Data Size", "spoolss.spoolss_PortVarContainer.monitor_data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41565         { &hf_spoolss_spoolss_EnumJobs_numjobs,
41566           { "Numjobs", "spoolss.spoolss_EnumJobs.numjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41567         { &hf_spoolss__spoolss_EnumJobs_firstjob,
41568           { "Firstjob", "spoolss._spoolss_EnumJobs.firstjob", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41569         { &hf_spoolss_spoolss_XcvData__in_data_length,
41570           { " In Data Length", "spoolss.spoolss_XcvData._in_data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41571         { &hf_spoolss_spoolss_SetPrinter_info_ctr,
41572           { "Info Ctr", "spoolss.spoolss_SetPrinter.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41573         { &hf_spoolss_spoolss_SetPrinterInfo0_processor_architecture,
41574           { "Processor Architecture", "spoolss.spoolss_SetPrinterInfo0.processor_architecture", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
41575         { &hf_spoolss_spoolss_ResetPrinter_devmode_ctr,
41576           { "Devmode Ctr", "spoolss.spoolss_ResetPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41577         { &hf_spoolss_spoolss_PrinterInfo5_transmission_retry_timeout,
41578           { "Transmission Retry Timeout", "spoolss.spoolss_PrinterInfo5.transmission_retry_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41579         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER,
41580           { "Printer Change Set Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_tfs), ( 0x00000002 ), NULL, HFILL }},
41581         { &hf_spoolss_spoolss_OpenPrinterEx_userlevel_ctr,
41582           { "Userlevel Ctr", "spoolss.spoolss_OpenPrinterEx.userlevel_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41583         { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_dependent_files,
41584           { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo8._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41585         { &hf_spoolss_spoolss_UNIDRVEXTRA_dwOptions,
41586           { "Dwoptions", "spoolss.spoolss_UNIDRVEXTRA.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41587         { &hf_spoolss_spoolss_PSDRVEXTRA_dwX,
41588           { "Dwx", "spoolss.spoolss_PSDRVEXTRA.dwX", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41589         { &hf_spoolss_spoolss_SetPrinterInfo0_cjobs,
41590           { "Cjobs", "spoolss.spoolss_SetPrinterInfo0.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41591         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB,
41592           { "Printer Change Delete Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB_tfs), ( 0x00000400 ), NULL, HFILL }},
41593         { &hf_spoolss___spoolss_EnumMonitors_count,
41594           { "Count", "spoolss.__spoolss_EnumMonitors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41595         { &hf_spoolss__spoolss_EnumPrintProcessors_servername,
41596           { "Servername", "spoolss._spoolss_EnumPrintProcessors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41597         { &hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr,
41598           { "Userlevel Ctr", "spoolss.spoolss_AddPrinterEx.userlevel_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41599         { &hf_spoolss_werror,
41600           { "Windows Error", "spoolss.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
41601         { &hf_spoolss_spoolss_EnumMonitors_servername,
41602           { "Servername", "spoolss.spoolss_EnumMonitors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41603         { &hf_spoolss_spoolss_AddJob_level,
41604           { "Level", "spoolss.spoolss_AddJob.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41605         { &hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_USE,
41606           { "Printer Access Use", "spoolss.spoolss_AccessRights.PRINTER_ACCESS_USE", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_PRINTER_ACCESS_USE_tfs), ( 0x00000008 ), NULL, HFILL }},
41607         { &hf_spoolss_spoolss_SetJobInfo2_data_type,
41608           { "Data Type", "spoolss.spoolss_SetJobInfo2.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41609         { &hf_spoolss_spoolss_AddMonitorInfo2_environment,
41610           { "Environment", "spoolss.spoolss_AddMonitorInfo2.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41611         { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_previous_names,
41612           { " Ndr Size Previous Names", "spoolss.spoolss_AddDriverInfo8._ndr_size_previous_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41613         { &hf_spoolss_spoolss_AddPrinterDriverEx_servername,
41614           { "Servername", "spoolss.spoolss_AddPrinterDriverEx.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41615         { &hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH,
41616           { "Printer Notify Info Color Mismatch", "spoolss.spoolss_PrinterNotifyFlags.PRINTER_NOTIFY_INFO_COLOR_MISMATCH", FT_BOOLEAN, 32, TFS(&spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH_tfs), ( 0x00080000 ), NULL, HFILL }},
41617         { &hf_spoolss_spoolss_JobInfo4_submitted,
41618           { "Submitted", "spoolss.spoolss_JobInfo4.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41619         { &hf_spoolss_spoolss_AddDriverInfo5_version,
41620           { "Version", "spoolss.spoolss_AddDriverInfo5.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
41621         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM,
41622           { "Printer Change Delete Form", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_FORM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM_tfs), ( 0x00040000 ), NULL, HFILL }},
41623         { &hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED,
41624           { "Printer Notify Info Discardnoted", "spoolss.spoolss_PrinterNotifyFlags.PRINTER_NOTIFY_INFO_DISCARDNOTED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED_tfs), ( 0x00010000 ), NULL, HFILL }},
41625         { &hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL,
41626           { "Spoolss Form String Type Mui Dll", "spoolss.spoolss_FormStringType.SPOOLSS_FORM_STRING_TYPE_MUI_DLL", FT_BOOLEAN, 32, TFS(&spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL_tfs), ( 0x00000002 ), NULL, HFILL }},
41627         { &hf_spoolss_spoolss_FormInfo2_size,
41628           { "Size", "spoolss.spoolss_FormInfo2.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41629         { &hf_spoolss_spoolss_DeletePrintProcessor_architecture,
41630           { "Architecture", "spoolss.spoolss_DeletePrintProcessor.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41631         { &hf_spoolss_spoolss_SetJob_job_id,
41632           { "Job Id", "spoolss.spoolss_SetJob.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41633         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DUPLEX,
41634           { "Devmode Duplex", "spoolss.spoolss_DeviceModeFields.DEVMODE_DUPLEX", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DUPLEX_tfs), ( 0x00001000 ), NULL, HFILL }},
41635         { &hf_spoolss_spoolss_EnumPrinterData_value_offered,
41636           { "Value Offered", "spoolss.spoolss_EnumPrinterData.value_offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41637         { &hf_spoolss_spoolss_DriverInfo6_architecture,
41638           { "Architecture", "spoolss.spoolss_DriverInfo6.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41639         { &hf_spoolss___spoolss_EnumPrinterDrivers_count,
41640           { "Count", "spoolss.__spoolss_EnumPrinterDrivers.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41641         { &hf_spoolss_spoolss_DriverInfo5_driver_attributes,
41642           { "Driver Attributes", "spoolss.spoolss_DriverInfo5.driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41643         { &hf_spoolss_spoolss_ResetPrinter_data_type,
41644           { "Data Type", "spoolss.spoolss_ResetPrinter.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41645         { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle,
41646           { "Gdi Handle", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.gdi_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41647         { &hf_spoolss_spoolss_UNIDRVEXTRA500_aOptions,
41648           { "Aoptions", "spoolss.spoolss_UNIDRVEXTRA500.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41649         { &hf_spoolss_spoolss_SetJobInfo4_text_status,
41650           { "Text Status", "spoolss.spoolss_SetJobInfo4.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41651         { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties,
41652           { "Pcproperties", "spoolss.spoolss_RpcEnumJobNamedProperties.pcProperties", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41653         { &hf_spoolss_spoolss_JTEXP_ModelName,
41654           { "Modelname", "spoolss.spoolss_JTEXP.ModelName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41655         { &hf_spoolss_spoolss_PSDRVEXTRA400_caFlags,
41656           { "Caflags", "spoolss.spoolss_PSDRVEXTRA400.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41657         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED,
41658           { "Printer Enum Shared", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_SHARED", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED_tfs), ( 0x00000020 ), NULL, HFILL }},
41659         { &hf_spoolss_spoolss_RouterReplyPrinterEx_handle,
41660           { "Handle", "spoolss.spoolss_RouterReplyPrinterEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41661         { &hf_spoolss_spoolss_PrintProcessorInfo_info1,
41662           { "Info1", "spoolss.spoolss_PrintProcessorInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41663         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT,
41664           { "Printer Enum Default", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_DEFAULT", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT_tfs), ( 0x00000001 ), NULL, HFILL }},
41665         { &hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version,
41666           { "Server Minor Version", "spoolss.spoolss_GetPrinterDriver2.server_minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41667         { &hf_spoolss_spoolss_EnumJobs_offered,
41668           { "Offered", "spoolss.spoolss_EnumJobs.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41669         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR,
41670           { "Printer Change Add Print Processor", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PRINT_PROCESSOR", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR_tfs), ( 0x01000000 ), NULL, HFILL }},
41671         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLLATE,
41672           { "Devmode Collate", "spoolss.spoolss_DeviceModeFields.DEVMODE_COLLATE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_COLLATE_tfs), ( 0x00008000 ), NULL, HFILL }},
41673         { &hf_spoolss_spoolss_EnumMonitors_offered,
41674           { "Offered", "spoolss.spoolss_EnumMonitors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41675         { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_uniblob,
41676           { "Uniblob", "spoolss.spoolss_DeviceModeExtraDataUniDriver.uniblob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41677         { &hf_spoolss_spoolss_WritePrinter_handle,
41678           { "Handle", "spoolss.spoolss_WritePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41679         { &hf_spoolss_spoolss_PSDRVEXTRA400_dwSignature,
41680           { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA400.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
41681         { &hf_spoolss_spoolss_AddDriverInfo5_driver_path,
41682           { "Driver Path", "spoolss.spoolss_AddDriverInfo5.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41683         { &hf_spoolss_spoolss_SetPrinterInfo5_portname,
41684           { "Portname", "spoolss.spoolss_SetPrinterInfo5.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41685         { &hf_spoolss_spoolss_Field_field,
41686           { "Field", "spoolss.spoolss_Field.field", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41687         { &hf_spoolss_spoolss_AddDriverInfo_info2,
41688           { "Info2", "spoolss.spoolss_AddDriverInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41689         { &hf_spoolss_spoolss_AddMonitorInfo_info1,
41690           { "Info1", "spoolss.spoolss_AddMonitorInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41691         { &hf_spoolss_spoolss_OSVersionEx_major,
41692           { "Major", "spoolss.spoolss_OSVersionEx.major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41693         { &hf_spoolss_spoolss_AddFormInfo2_mui_dll,
41694           { "Mui Dll", "spoolss.spoolss_AddFormInfo2.mui_dll", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41695         { &hf_spoolss_spoolss_SetPortInfo2_reserved,
41696           { "Reserved", "spoolss.spoolss_SetPortInfo2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41697         { &hf_spoolss_spoolss_AddDriverInfo4__ndr_size_previous_names,
41698           { " Ndr Size Previous Names", "spoolss.spoolss_AddDriverInfo4._ndr_size_previous_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41699         { &hf_spoolss_spoolss_DriverInfo3_dependent_files,
41700           { "Dependent Files", "spoolss.spoolss_DriverInfo3.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41701         { &hf_spoolss_spoolss_AddDriverInfo5_data_file,
41702           { "Data File", "spoolss.spoolss_AddDriverInfo5.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41703         { &hf_spoolss_spoolss_AddFormInfo2_display_name,
41704           { "Display Name", "spoolss.spoolss_AddFormInfo2.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41705         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwY,
41706           { "Dwy", "spoolss.spoolss_PSDRVEXTRA500.dwY", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41707         { &hf_spoolss_spoolss_JobInfo4_size_high,
41708           { "Size High", "spoolss.spoolss_JobInfo4.size_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41709         { &hf_spoolss_spoolss_Notify_job_id,
41710           { "Job Id", "spoolss.spoolss_Notify.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41711         { &hf_spoolss_spoolss_UserLevelCtr_user_info,
41712           { "User Info", "spoolss.spoolss_UserLevelCtr.user_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41713         { &hf_spoolss_spoolss_JobInfo2_priority,
41714           { "Priority", "spoolss.spoolss_JobInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41715         { &hf_spoolss_spoolss_PortInfo2_port_name,
41716           { "Port Name", "spoolss.spoolss_PortInfo2.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41717         { &hf_spoolss_spoolss_JobInfo1_user_name,
41718           { "User Name", "spoolss.spoolss_JobInfo1.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41719         { &hf_spoolss_spoolss_PrinterInfo2_devmode,
41720           { "Devmode", "spoolss.spoolss_PrinterInfo2.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41721         { &hf_spoolss_spoolss_GetPrinterData_data,
41722           { "Data", "spoolss.spoolss_GetPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41723         { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle,
41724           { "Handle", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41725         { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE,
41726           { "Job Status Complete", "spoolss.spoolss_JobStatus.JOB_STATUS_COMPLETE", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_COMPLETE_tfs), ( 0x00001000 ), NULL, HFILL }},
41727         { &hf_spoolss_spoolss_AddDriverInfo_info8,
41728           { "Info8", "spoolss.spoolss_AddDriverInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41729         { &hf_spoolss_spoolss_DeviceMode_collate,
41730           { "Collate", "spoolss.spoolss_DeviceMode.collate", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeCollate_vals), 0, NULL, HFILL }},
41731         { &hf_spoolss_spoolss_DeleteForm_form_name,
41732           { "Form Name", "spoolss.spoolss_DeleteForm.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41733         { &hf_spoolss_spoolss_Time_day,
41734           { "Day", "spoolss.spoolss_Time.day", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41735         { &hf_spoolss_spoolss_DriverDirectoryInfo1_directory_name,
41736           { "Directory Name", "spoolss.spoolss_DriverDirectoryInfo1.directory_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41737         { &hf_spoolss_spoolss_SetJobInfo2_start_time,
41738           { "Start Time", "spoolss.spoolss_SetJobInfo2.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41739         { &hf_spoolss_spoolss_PrinterInfo_info6,
41740           { "Info6", "spoolss.spoolss_PrinterInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41741         { &hf_spoolss_spoolss_PrinterInfo2_printprocessor,
41742           { "Printprocessor", "spoolss.spoolss_PrinterInfo2.printprocessor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41743         { &hf_spoolss_spoolss_PSDRVEXTRA_dwWidthOffset,
41744           { "Dwwidthoffset", "spoolss.spoolss_PSDRVEXTRA.dwWidthOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41745         { &hf_spoolss_spoolss_ReplyOpenPrinter_server_name,
41746           { "Server Name", "spoolss.spoolss_ReplyOpenPrinter.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41747         { &hf_spoolss_spoolss_DriverInfo5_config_version,
41748           { "Config Version", "spoolss.spoolss_DriverInfo5.config_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41749         { &hf_spoolss_spoolss_OpenPrinterEx_handle,
41750           { "Handle", "spoolss.spoolss_OpenPrinterEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41751         { &hf_spoolss___spoolss_EnumPrintProcessors_count,
41752           { "Count", "spoolss.__spoolss_EnumPrintProcessors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41753         { &hf_spoolss_spoolss_PortData1_dblspool,
41754           { "Dblspool", "spoolss.spoolss_PortData1.dblspool", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41755         { &hf_spoolss_spoolss_UNIDRVEXTRA500_wSize,
41756           { "Wsize", "spoolss.spoolss_UNIDRVEXTRA500.wSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41757         { &hf_spoolss_spoolss_SetJobInfo4_data_type,
41758           { "Data Type", "spoolss.spoolss_SetJobInfo4.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41759         { &hf_spoolss_spoolss_DriverInfo6_config_file,
41760           { "Config File", "spoolss.spoolss_DriverInfo6.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41761         { &hf_spoolss_spoolss_AddDriverInfo6_monitor_name,
41762           { "Monitor Name", "spoolss.spoolss_AddDriverInfo6.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41763         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_TTOPTION,
41764           { "Devmode Ttoption", "spoolss.spoolss_DeviceModeFields.DEVMODE_TTOPTION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_TTOPTION_tfs), ( 0x00004000 ), NULL, HFILL }},
41765         { &hf_spoolss_spoolss_DeletePrinterDriver_architecture,
41766           { "Architecture", "spoolss.spoolss_DeletePrinterDriver.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41767         { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData,
41768           { "Adata", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.aData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41769         { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwFlags,
41770           { "Dwflags", "spoolss.spoolss_UNIDRVEXTRA500.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41771         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE,
41772           { "Printer Status Io Active", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_IO_ACTIVE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE_tfs), ( 0x00000100 ), NULL, HFILL }},
41773         { &hf_spoolss_spoolss_PrinterInfo1_name,
41774           { "Name", "spoolss.spoolss_PrinterInfo1.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41775         { &hf_spoolss_spoolss_PortData2_portname,
41776           { "Portname", "spoolss.spoolss_PortData2.portname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41777         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT,
41778           { "Printer Change Delete Port", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PORT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT_tfs), ( 0x00400000 ), NULL, HFILL }},
41779         { &hf_spoolss_spoolss_OEM_DMEXTRA_dwSize,
41780           { "Dwsize", "spoolss.spoolss_OEM_DMEXTRA.dwSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41781         { &hf_spoolss_spoolss_AddPort_server_name,
41782           { "Server Name", "spoolss.spoolss_AddPort.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41783         { &hf_spoolss_propertyBlob_pBuf,
41784           { "Pbuf", "spoolss.propertyBlob.pBuf", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41785         { &hf_spoolss_spoolss_EnumPrinters_offered,
41786           { "Offered", "spoolss.spoolss_EnumPrinters.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41787         { &hf_spoolss_spoolss_DriverInfo7_driver_name,
41788           { "Driver Name", "spoolss.spoolss_DriverInfo7.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41789         { &hf_spoolss_spoolss_AddDriverInfo8_print_processor,
41790           { "Print Processor", "spoolss.spoolss_AddDriverInfo8.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41791         { &hf_spoolss_spoolss_PortData1_hardware_address,
41792           { "Hardware Address", "spoolss.spoolss_PortData1.hardware_address", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41793         { &hf_spoolss_UNIVERSAL_FONT_ID_ctr_fonts,
41794           { "Fonts", "spoolss.UNIVERSAL_FONT_ID_ctr.fonts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41795         { &hf_spoolss_spoolss_NotifyInfo_flags,
41796           { "Flags", "spoolss.spoolss_NotifyInfo.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41797         { &hf_spoolss_spoolss_PrinterInfo4_attributes,
41798           { "Attributes", "spoolss.spoolss_PrinterInfo4.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41799         { &hf_spoolss_spoolss_SetJobInfo4_submitted,
41800           { "Submitted", "spoolss.spoolss_SetJobInfo4.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41801         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSWIDTH,
41802           { "Devmode Pelswidth", "spoolss.spoolss_DeviceModeFields.DEVMODE_PELSWIDTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PELSWIDTH_tfs), ( 0x00080000 ), NULL, HFILL }},
41803         { &hf_spoolss_spoolss_SetJobInfo1_server_name,
41804           { "Server Name", "spoolss.spoolss_SetJobInfo1.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41805         { &hf_spoolss_spoolss_DeviceMode_color,
41806           { "Color", "spoolss.spoolss_DeviceMode.color", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeColor_vals), 0, NULL, HFILL }},
41807         { &hf_spoolss_spoolss_ReplyPrinterInfo_info0,
41808           { "Info0", "spoolss.spoolss_ReplyPrinterInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41809         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE,
41810           { "Printer Status Offline", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_OFFLINE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE_tfs), ( 0x00000080 ), NULL, HFILL }},
41811         { &hf_spoolss_spoolss_GetPrinterData_needed,
41812           { "Needed", "spoolss.spoolss_GetPrinterData.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41813         { &hf_spoolss_spoolss_EnumPrinterDrivers_info,
41814           { "Info", "spoolss.spoolss_EnumPrinterDrivers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41815         { &hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq,
41816           { "Fxscrfreq", "spoolss.spoolss_PSDRVEXTRA500.fxScrFreq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41817         { &hf_spoolss_spoolss_ReplyOpenPrinter_buffer,
41818           { "Buffer", "spoolss.spoolss_ReplyOpenPrinter.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
41819         { &hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER,
41820           { "Server Access Administer", "spoolss.spoolss_AccessRights.SERVER_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_SERVER_ACCESS_ADMINISTER_tfs), ( 0x00000001 ), NULL, HFILL }},
41821         { &hf_spoolss_spoolss_JobInfo_info1,
41822           { "Info1", "spoolss.spoolss_JobInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41823         { &hf_spoolss_spoolss_GetPrintProcessorDirectory_environment,
41824           { "Environment", "spoolss.spoolss_GetPrintProcessorDirectory.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41825         { &hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceWhite,
41826           { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA400.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41827         { &hf_spoolss_spoolss_MonitorContainer_info,
41828           { "Info", "spoolss.spoolss_MonitorContainer.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41829         { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra400,
41830           { "Psdrvextra400", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra400", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41831         { &hf_spoolss_spoolss_DriverInfo5_data_file,
41832           { "Data File", "spoolss.spoolss_DriverInfo5.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41833         { &hf_spoolss_spoolss_JobInfo2_total_pages,
41834           { "Total Pages", "spoolss.spoolss_JobInfo2.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41835         { &hf_spoolss_spoolss_SetJobInfo1_priority,
41836           { "Priority", "spoolss.spoolss_SetJobInfo1.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41837         { &hf_spoolss_opnum,
41838           { "Operation", "spoolss.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41839         { &hf_spoolss_spoolss_NotifyOptionType_type,
41840           { "Type", "spoolss.spoolss_NotifyOptionType.type", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_NotifyType_vals), 0, NULL, HFILL }},
41841         { &hf_spoolss_spoolss_WritePrinter_num_written,
41842           { "Num Written", "spoolss.spoolss_WritePrinter.num_written", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41843         { &hf_spoolss_spoolss_PSDRVEXTRA500_wCutSheet,
41844           { "Wcutsheet", "spoolss.spoolss_PSDRVEXTRA500.wCutSheet", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41845         { &hf_spoolss_spoolss_PSDRVEXTRA500_dwSignature,
41846           { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA500.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
41847         { &hf_spoolss_spoolss_PSDRVEXTRA500_iLayout,
41848           { "Ilayout", "spoolss.spoolss_PSDRVEXTRA500.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
41849         { &hf_spoolss_spoolss_GetPrinterDriver2_level,
41850           { "Level", "spoolss.spoolss_GetPrinterDriver2.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41851         { &hf_spoolss_spoolss_GetPrinterDriverDirectory_info_,
41852           { "Subcontext length", "spoolss.spoolss_GetPrinterDriverDirectory.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41853         { &hf_spoolss_spoolss_DriverInfo6_version,
41854           { "Version", "spoolss.spoolss_DriverInfo6.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
41855         { &hf_spoolss_spoolss_GetPrinter_offered,
41856           { "Offered", "spoolss.spoolss_GetPrinter.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41857         { &hf_spoolss_spoolss_JobInfo1_document_name,
41858           { "Document Name", "spoolss.spoolss_JobInfo1.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41859         { &hf_spoolss_spoolss_EnumPrintProcessors_servername,
41860           { "Servername", "spoolss.spoolss_EnumPrintProcessors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41861         { &hf_spoolss_spoolss_PrinterInfo3_secdesc_,
41862           { "Subcontext length", "spoolss.spoolss_PrinterInfo3.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
41863         { &hf_spoolss_spoolss_DeleteForm_handle,
41864           { "Handle", "spoolss.spoolss_DeleteForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
41865         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER,
41866           { "Printer Status No Toner", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_NO_TONER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER_tfs), ( 0x00040000 ), NULL, HFILL }},
41867         { &hf_spoolss_spoolss_PSDRVEXTRA_dwOptions,
41868           { "Dwoptions", "spoolss.spoolss_PSDRVEXTRA.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41869         { &hf_spoolss_spoolss_NotifyData_time,
41870           { "Time", "spoolss.spoolss_NotifyData.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41871         { &hf_spoolss_spoolss_AddPrinter_devmode_ctr,
41872           { "Devmode Ctr", "spoolss.spoolss_AddPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41873         { &hf_spoolss_spoolss_PSDRVEXTRA_caFlags,
41874           { "Caflags", "spoolss.spoolss_PSDRVEXTRA.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41875         { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_POSITION,
41876           { "Devmode Position", "spoolss.spoolss_DeviceModeFields.DEVMODE_POSITION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_POSITION_tfs), ( 0x00000020 ), NULL, HFILL }},
41877         { &hf_spoolss_spoolss_NotifyOption_flags,
41878           { "Flags", "spoolss.spoolss_NotifyOption.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41879         { &hf_spoolss_spoolss_SetJobInfo2_parameters,
41880           { "Parameters", "spoolss.spoolss_SetJobInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41881         { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ,
41882           { "Printer Attribute Enable Devq", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_ENABLE_DEVQ", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ_tfs), ( 0x00000080 ), NULL, HFILL }},
41883         { &hf_spoolss_spoolss_EnumPorts_info,
41884           { "Info", "spoolss.spoolss_EnumPorts.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41885         { &hf_spoolss_spoolss_DeviceMode_paperlength,
41886           { "Paperlength", "spoolss.spoolss_DeviceMode.paperlength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41887         { &hf_spoolss_spoolss_DriverInfo5_driver_version,
41888           { "Driver Version", "spoolss.spoolss_DriverInfo5.driver_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41889         { &hf_spoolss_spoolss_PortData2_queue,
41890           { "Queue", "spoolss.spoolss_PortData2.queue", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41891         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER,
41892           { "Printer Change Failed Connection Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER_tfs), ( 0x00000008 ), NULL, HFILL }},
41893         { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180,
41894           { "Spoolss Dm Ps Flags Rotate 180", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_ROTATE_180", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180_tfs), ( 0x00000200 ), NULL, HFILL }},
41895         { &hf_spoolss_spoolss_AddDriverInfo2_data_file,
41896           { "Data File", "spoolss.spoolss_AddDriverInfo2.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41897         { &hf_spoolss_spoolss_DeviceMode_specversion,
41898           { "Specversion", "spoolss.spoolss_DeviceMode.specversion", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeSpecVersion_vals), 0, NULL, HFILL }},
41899         { &hf_spoolss_spoolss_PortInfo_info2,
41900           { "Info2", "spoolss.spoolss_PortInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41901         { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1,
41902           { "Printer Enum Icon1", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON1", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1_tfs), ( 0x00010000 ), NULL, HFILL }},
41903         { &hf_spoolss_spoolss_WritePrinter__data_size,
41904           { " Data Size", "spoolss.spoolss_WritePrinter._data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41905         { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyBlob,
41906           { "Propertyblob", "spoolss.RPC_PrintPropertyValueUnion.propertyBlob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41907         { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED,
41908           { "Printer Driver Sandbox Enabled", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_SANDBOX_ENABLED", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
41909         { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers,
41910           { "Core Printer Drivers", "spoolss.spoolss_GetCorePrinterDrivers.core_printer_drivers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41911         { &hf_spoolss_spoolss_UserLevel1_size,
41912           { "Size", "spoolss.spoolss_UserLevel1.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41913         { &hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr,
41914           { "Info Ctr", "spoolss.spoolss_AddPrinterDriverEx.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41915         { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Flags,
41916           { "Flags", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41917         { &hf_spoolss_spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH,
41918           { "Printer Notify Options Refresh", "spoolss.spoolssNotifyOptionFlags.PRINTER_NOTIFY_OPTIONS_REFRESH", FT_BOOLEAN, 32, TFS(&spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH_tfs), ( 0x00000001 ), NULL, HFILL }},
41919         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_needed,
41920           { "Needed", "spoolss._spoolss_EnumPrintProcDataTypes.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41921         { &hf_spoolss_spoolss_AddJob_needed,
41922           { "Needed", "spoolss.spoolss_AddJob.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41923         { &hf_spoolss_spoolss_DriverInfo4_driver_name,
41924           { "Driver Name", "spoolss.spoolss_DriverInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41925         { &hf_spoolss_spoolss_AddDriverInfo4_dependent_files,
41926           { "Dependent Files", "spoolss.spoolss_AddDriverInfo4.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
41927         { &hf_spoolss_spoolss_PrinterInfo0_num_error_not_ready,
41928           { "Num Error Not Ready", "spoolss.spoolss_PrinterInfo0.num_error_not_ready", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41929         { &hf_spoolss_spoolss_SetPrinterInfo2_defaultpriority,
41930           { "Defaultpriority", "spoolss.spoolss_SetPrinterInfo2.defaultpriority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41931         { &hf_spoolss_spoolss_PrinterInfo0_printername,
41932           { "Printername", "spoolss.spoolss_PrinterInfo0.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41933         { &hf_spoolss__spoolss_EnumPrintProcDataTypes_offered,
41934           { "Offered", "spoolss._spoolss_EnumPrintProcDataTypes.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
41935         { &hf_spoolss_spoolss_PSDRVEXTRA_dwNupDirection,
41936           { "Dwnupdirection", "spoolss.spoolss_PSDRVEXTRA.dwNupDirection", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupDirection_vals), 0, NULL, HFILL }},
41937         { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PRINTING,
41938           { "Printer Status Printing", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PRINTING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PRINTING_tfs), ( 0x00000400 ), NULL, HFILL }},
41939         { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB,
41940           { "Printer Change Set Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB_tfs), ( 0x00000200 ), NULL, HFILL }},
41941         { &hf_spoolss_spoolss_PSDRVEXTRA500_caFlags,
41942           { "Caflags", "spoolss.spoolss_PSDRVEXTRA500.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41943         { &hf_spoolss_spoolss_PrinterInfo2_status,
41944           { "Status", "spoolss.spoolss_PrinterInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41945         { &hf_spoolss_spoolss_GetForm_info_,
41946           { "Subcontext length", "spoolss.spoolss_GetForm.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
41947         { &hf_spoolss_spoolss_PSDRVEXTRA400_wChecksum,
41948           { "Wchecksum", "spoolss.spoolss_PSDRVEXTRA400.wChecksum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
41949         { &hf_spoolss_RPC_PrintNamedProperty_propertyName,
41950           { "Propertyname", "spoolss.RPC_PrintNamedProperty.propertyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
41951         };
41952
41953
41954         static gint *ett[] = {
41955                 &ett_dcerpc_spoolss,
41956                 &ett_spoolss_spoolss_Time,
41957                 &ett_spoolss_spoolss_TimeCtr,
41958                 &ett_spoolss_spoolss_PrinterStatus,
41959                 &ett_spoolss_spoolss_JobStatus,
41960                 &ett_spoolss_spoolss_PrinterInfo0,
41961                 &ett_spoolss_spoolss_DMPS_Flags,
41962                 &ett_spoolss_spoolss_PSDRVEXTRA351,
41963                 &ett_spoolss_spoolss_PSDRVEXTRA400,
41964                 &ett_spoolss_spoolss_PSDRVEXTRA500,
41965                 &ett_spoolss_spoolss_PSDRVEXTRA,
41966                 &ett_spoolss_spoolss_UNIDRVEXTRA3_4,
41967                 &ett_spoolss_spoolss_DMUNI_Flags,
41968                 &ett_spoolss_spoolss_UNIDRVEXTRA500,
41969                 &ett_spoolss_spoolss_UNIDRVEXTRA,
41970                 &ett_spoolss_spoolss_JTEXP,
41971                 &ett_spoolss_spoolss_OEM_DMEXTRA,
41972                 &ett_spoolss_spoolss_DeviceModeExtraDataPostScript,
41973                 &ett_spoolss_spoolss_DeviceModeExtraDataUniDriver,
41974                 &ett_spoolss_spoolss_DeviceModeFields,
41975                 &ett_spoolss_spoolss_DeviceMode,
41976                 &ett_spoolss_spoolss_EnumPrinterFlags,
41977                 &ett_spoolss_spoolss_PrinterAttributes,
41978                 &ett_spoolss_spoolss_PrinterInfo1,
41979                 &ett_spoolss_spoolss_PrinterInfo2,
41980                 &ett_spoolss_spoolss_PrinterInfo3,
41981                 &ett_spoolss_spoolss_PrinterInfo4,
41982                 &ett_spoolss_spoolss_PrinterInfo5,
41983                 &ett_spoolss_spoolss_PrinterInfo6,
41984                 &ett_spoolss_spoolss_DsPrintAction,
41985                 &ett_spoolss_spoolss_PrinterInfo7,
41986                 &ett_spoolss_spoolss_DeviceModeInfo,
41987                 &ett_spoolss_spoolss_PrinterInfo,
41988                 &ett_spoolss_spoolss_DevmodeContainer,
41989                 &ett_spoolss_spoolss_JobInfo1,
41990                 &ett_spoolss_spoolss_JobInfo2,
41991                 &ett_spoolss_spoolss_JobInfo3,
41992                 &ett_spoolss_spoolss_JobInfo4,
41993                 &ett_spoolss_spoolss_JobInfo,
41994                 &ett_spoolss_spoolss_SetJobInfo1,
41995                 &ett_spoolss_spoolss_SetJobInfo2,
41996                 &ett_spoolss_spoolss_SetJobInfo4,
41997                 &ett_spoolss_spoolss_SetJobInfo,
41998                 &ett_spoolss_spoolss_JobInfoContainer,
41999                 &ett_spoolss_spoolss_SetPrinterInfo0,
42000                 &ett_spoolss_spoolss_SetPrinterInfo1,
42001                 &ett_spoolss_spoolss_SetPrinterInfo2,
42002                 &ett_spoolss_spoolss_SetPrinterInfo3,
42003                 &ett_spoolss_spoolss_SetPrinterInfo4,
42004                 &ett_spoolss_spoolss_SetPrinterInfo5,
42005                 &ett_spoolss_spoolss_SetPrinterInfo6,
42006                 &ett_spoolss_spoolss_SetPrinterInfo7,
42007                 &ett_spoolss_spoolss_SetPrinterInfo8,
42008                 &ett_spoolss_spoolss_SetPrinterInfo9,
42009                 &ett_spoolss_spoolss_SetPrinterInfo,
42010                 &ett_spoolss_spoolss_SetPrinterInfoCtr,
42011                 &ett_spoolss_spoolss_StringArray,
42012                 &ett_spoolss_spoolss_AddDriverInfo1,
42013                 &ett_spoolss_spoolss_AddDriverInfo2,
42014                 &ett_spoolss_spoolss_AddDriverInfo3,
42015                 &ett_spoolss_spoolss_AddDriverInfo4,
42016                 &ett_spoolss_spoolss_DriverAttributes,
42017                 &ett_spoolss_spoolss_AddDriverInfo5,
42018                 &ett_spoolss_spoolss_AddDriverInfo6,
42019                 &ett_spoolss_spoolss_AddDriverInfo8,
42020                 &ett_spoolss_spoolss_AddDriverInfo,
42021                 &ett_spoolss_spoolss_AddDriverInfoCtr,
42022                 &ett_spoolss_spoolss_DriverInfo1,
42023                 &ett_spoolss_spoolss_DriverInfo2,
42024                 &ett_spoolss_spoolss_DriverInfo3,
42025                 &ett_spoolss_spoolss_DriverInfo4,
42026                 &ett_spoolss_spoolss_DriverInfo5,
42027                 &ett_spoolss_spoolss_DriverInfo6,
42028                 &ett_spoolss_spoolss_DriverInfo7,
42029                 &ett_spoolss_spoolss_DriverInfo8,
42030                 &ett_spoolss_spoolss_DriverFileInfo,
42031                 &ett_spoolss_spoolss_DriverInfo101,
42032                 &ett_spoolss_spoolss_DriverInfo,
42033                 &ett_spoolss_spoolss_DriverDirectoryInfo1,
42034                 &ett_spoolss_spoolss_DriverDirectoryInfo,
42035                 &ett_spoolss_spoolss_PrintProcessorInfo1,
42036                 &ett_spoolss_spoolss_PrintProcessorInfo,
42037                 &ett_spoolss_spoolss_PrintProcessorDirectoryInfo1,
42038                 &ett_spoolss_spoolss_PrintProcessorDirectoryInfo,
42039                 &ett_spoolss_spoolss_DocumentInfo1,
42040                 &ett_spoolss_spoolss_DocumentInfo,
42041                 &ett_spoolss_spoolss_DocumentInfoCtr,
42042                 &ett_spoolss_spoolss_OSVersion,
42043                 &ett_spoolss_spoolss_OSVersionEx,
42044                 &ett_spoolss_spoolss_PrinterData,
42045                 &ett_spoolss_spoolss_FormSize,
42046                 &ett_spoolss_spoolss_FormArea,
42047                 &ett_spoolss_spoolss_FormInfo1,
42048                 &ett_spoolss_spoolss_FormStringType,
42049                 &ett_spoolss_spoolss_FormInfo2,
42050                 &ett_spoolss_spoolss_FormInfo,
42051                 &ett_spoolss_spoolss_AddFormInfo1,
42052                 &ett_spoolss_spoolss_AddFormInfo2,
42053                 &ett_spoolss_spoolss_AddFormInfo,
42054                 &ett_spoolss_spoolss_AddFormInfoCtr,
42055                 &ett_spoolss_spoolss_PortInfo1,
42056                 &ett_spoolss_spoolss_PortType,
42057                 &ett_spoolss_spoolss_PortInfo2,
42058                 &ett_spoolss_spoolss_PortInfo3,
42059                 &ett_spoolss_spoolss_PortInfoFF,
42060                 &ett_spoolss_spoolss_PortInfo,
42061                 &ett_spoolss_spoolss_MonitorInfo1,
42062                 &ett_spoolss_spoolss_MonitorInfo2,
42063                 &ett_spoolss_spoolss_MonitorInfo,
42064                 &ett_spoolss_spoolss_SetPortInfo1,
42065                 &ett_spoolss_spoolss_SetPortInfo2,
42066                 &ett_spoolss_spoolss_SetPortInfo3,
42067                 &ett_spoolss_spoolss_SetPortInfoFF,
42068                 &ett_spoolss_spoolss_SetPortInfo,
42069                 &ett_spoolss_spoolss_SetPortInfoContainer,
42070                 &ett_spoolss_UNIVERSAL_FONT_ID,
42071                 &ett_spoolss_UNIVERSAL_FONT_ID_ctr,
42072                 &ett_spoolss_spoolss_AddMonitorInfo1,
42073                 &ett_spoolss_spoolss_AddMonitorInfo2,
42074                 &ett_spoolss_spoolss_AddMonitorInfo,
42075                 &ett_spoolss_spoolss_MonitorContainer,
42076                 &ett_spoolss_spoolss_PrintProcDataTypesInfo1,
42077                 &ett_spoolss_spoolss_PrintProcDataTypesInfo,
42078                 &ett_spoolss_spoolss_PrinterChangeFlags,
42079                 &ett_spoolss_spoolss_PortVarContainer,
42080                 &ett_spoolss_spoolss_Field,
42081                 &ett_spoolss_spoolss_NotifyOptionType,
42082                 &ett_spoolss_spoolssNotifyOptionFlags,
42083                 &ett_spoolss_spoolss_NotifyOption,
42084                 &ett_spoolss_spoolss_NotifyString,
42085                 &ett_spoolss_spoolss_NotifyData,
42086                 &ett_spoolss_spoolss_Notify,
42087                 &ett_spoolss_spoolss_NotifyInfo,
42088                 &ett_spoolss_spoolss_ReplyPrinterInfo,
42089                 &ett_spoolss_spoolss_PrinterNotifyFlags,
42090                 &ett_spoolss_spoolss_UserLevel1,
42091                 &ett_spoolss_spoolss_UserLevel2,
42092                 &ett_spoolss_spoolss_UserLevel3,
42093                 &ett_spoolss_spoolss_UserLevel,
42094                 &ett_spoolss_spoolss_UserLevelCtr,
42095                 &ett_spoolss_spoolss_AccessRights,
42096                 &ett_spoolss_spoolss_PrinterEnumValues,
42097                 &ett_spoolss_spoolss_KeyNames,
42098                 &ett_spoolss_spoolss_DeleteDriverFlags,
42099                 &ett_spoolss_spoolss_PortData1,
42100                 &ett_spoolss_spoolss_PortData2,
42101                 &ett_spoolss_spoolss_MonitorUi,
42102                 &ett_spoolss_spoolss_AddPrinterDriverExFlags,
42103                 &ett_spoolss_RPC_BINARY_CONTAINER,
42104                 &ett_spoolss_RPC_BIDI_DATA_u,
42105                 &ett_spoolss_RPC_BIDI_DATA,
42106                 &ett_spoolss_RPC_BIDI_REQUEST_DATA,
42107                 &ett_spoolss_RPC_BIDI_REQUEST_CONTAINER,
42108                 &ett_spoolss_RPC_BIDI_RESPONSE_DATA,
42109                 &ett_spoolss_RPC_BIDI_RESPONSE_CONTAINER,
42110                 &ett_spoolss_spoolss_CorePrinterDriver,
42111                 &ett_spoolss_propertyBlob,
42112                 &ett_spoolss_RPC_PrintPropertyValueUnion,
42113                 &ett_spoolss_RPC_PrintPropertyValue,
42114                 &ett_spoolss_RPC_PrintNamedProperty,
42115         };
42116
42117         proto_dcerpc_spoolss = proto_register_protocol("Spooler SubSystem", "SPOOLSS", "spoolss");
42118         proto_register_field_array(proto_dcerpc_spoolss, hf, array_length (hf));
42119         proto_register_subtree_array(ett, array_length(ett));
42120 }
42121
42122 void proto_reg_handoff_dcerpc_spoolss(void)
42123 {
42124         dcerpc_init_uuid(proto_dcerpc_spoolss, ett_dcerpc_spoolss,
42125                 &uuid_dcerpc_spoolss, ver_dcerpc_spoolss,
42126                 spoolss_dissectors, hf_spoolss_opnum);
42127 }