Add new DCE/RPC IRemoteWinspool dissector
authorGünther Deschner <gd@samba.org>
Thu, 22 Sep 2016 16:36:09 +0000 (18:36 +0200)
committerAnders Broman <a.broman58@gmail.com>
Tue, 17 Dec 2019 05:14:52 +0000 (05:14 +0000)
Guenther

Change-Id: I75d0251ff6324c7133f710b33282d9115651f972
Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-on: https://code.wireshark.org/review/35424
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
epan/dissectors/CMakeLists.txt
epan/dissectors/packet-dcerpc-winspool.c [new file with mode: 0644]
epan/dissectors/packet-dcerpc-winspool.h [new file with mode: 0644]
epan/dissectors/pidl/CMakeLists.txt
epan/dissectors/pidl/Makefile.pidl
epan/dissectors/pidl/winspool/winspool.cnf [new file with mode: 0644]
epan/dissectors/pidl/winspool/winspool.idl [new file with mode: 0644]

index 9178ab950fb5fcb906a039ff6edf23917692767c..3a8d8049a733c0bf826b5a68a642899b84d5acab 100644 (file)
@@ -67,6 +67,7 @@ set(PIDL_DISSECTOR_SRC
        ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-rfr.c
        ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-srvsvc.c
        ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-winreg.c
+       ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-winspool.c
        ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-witness.c
        ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-wkssvc.c
        ${CMAKE_CURRENT_SOURCE_DIR}/packet-dcerpc-wzcsvc.c
diff --git a/epan/dissectors/packet-dcerpc-winspool.c b/epan/dissectors/packet-dcerpc-winspool.c
new file mode 100644 (file)
index 0000000..a9f0209
--- /dev/null
@@ -0,0 +1,10028 @@
+/* DO NOT EDIT
+       This file was automatically generated by Pidl
+       from winspool.idl and winspool.cnf.
+
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at https://wiki.wireshark.org/Pidl
+*/
+
+
+#include "config.h"
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-winspool.h"
+void proto_register_dcerpc_iremotewinspool(void);
+void proto_reg_handoff_dcerpc_iremotewinspool(void);
+
+/* Ett declarations */
+static gint ett_dcerpc_iremotewinspool = -1;
+static gint ett_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER = -1;
+static gint ett_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER = -1;
+static gint ett_iremotewinspool_winspool_PrintPropertyValueUnion = -1;
+static gint ett_iremotewinspool_winspool_PrintPropertyValue = -1;
+static gint ett_iremotewinspool_winspool_PrintNamedProperty = -1;
+static gint ett_iremotewinspool_winspool_PrintPropertiesCollection = -1;
+static gint ett_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags = -1;
+static gint ett_iremotewinspool_winspool_UploadPrinterDriverPackageFlags = -1;
+
+
+/* Header field declarations */
+static gint hf_iremotewinspool_hresult = -1;
+static gint hf_iremotewinspool_opnum = -1;
+static gint hf_iremotewinspool_werror = -1;
+static gint hf_iremotewinspool_winspool_AsyncAbortPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddForm_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddForm_pFormInfoContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_pAddJob = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddJob_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddMonitor_Name = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddMonitor_pMonitorContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrintServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrinterName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pProvider = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pMonitorName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pPortContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPort_pPortVarContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPathName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPrintProcessorName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_dwFileCopyFlags = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pDriverContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pClientInfo = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pDevModeContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pHandle = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pPrinterContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncAddPrinter_pSecurityContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncClosePrinter_phPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID = -1;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion = -1;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate = -1;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled = -1;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pDevModeContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pHandle = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteForm_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteForm_pFormName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_pszName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_Name = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeleteMonitor_pMonitorName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pPrinterName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_Name = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pPrintProcessorName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pKeyName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterData_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterData_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwVersionNum = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pDriverName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszInfPath = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pDriverName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterIC_phPrinterIC = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterKey_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinterKey_pKeyName = -1;
+static gint hf_iremotewinspool_winspool_AsyncDeletePrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEndDocPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEndPagePrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_pForm = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumForms_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_pcProperties = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_ppProperties = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_FirstJob = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_NoJobs = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pJob = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumJobs_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pMonitor = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumMonitors_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pPrinterEnum = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pPort = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPorts_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_cbEnumValues = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pEnumValues = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pKeyName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pcbEnumValues = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pnEnumValues = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbData = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_dwIndex = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pData = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pType = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbData = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pDrivers = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_cbSubkey = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pKeyName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pSubkey = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pcbSubkey = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_Flags = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pPrinterEnum = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pcReturned = -1;
+static gint hf_iremotewinspool_winspool_AsyncEnumPrinters_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_pForm = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_pFormName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetForm_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pValue = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pszName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_pJob = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetJob_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_nSize = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pData = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pKeyName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pType = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_nSize = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pData = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pType = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterData_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMajorVersion = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMinorVersion = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pDriver = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMinVersion = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_Level = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_pPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetPrinter_pcbNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_hRpcHandle = -1;
+static gint hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData = -1;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags = -1;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName = -1;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath = -1;
+static gint hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_AccessRequired = -1;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pClientInfo = -1;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pDatatype = -1;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pDevModeContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pHandle = -1;
+static gint hf_iremotewinspool_winspool_AsyncOpenPrinter_pPrinterName = -1;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn = -1;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut = -1;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC = -1;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn = -1;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut = -1;
+static gint hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_ul = -1;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_pBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncReadPrinter_pcNoBytesRead = -1;
+static gint hf_iremotewinspool_winspool_AsyncResetPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncResetPrinter_pDatatype = -1;
+static gint hf_iremotewinspool_winspool_AsyncResetPrinter_pDevModeContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncScheduleJob_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncScheduleJob_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pAction = -1;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pReqData = -1;
+static gint hf_iremotewinspool_winspool_AsyncSendRecvBidiData_ppRespData = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetForm_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetForm_pFormInfoContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetForm_pFormName = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_pProperty = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_Command = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_JobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetJob_pJobContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPort_pName = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPort_pPortContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPort_pPortName = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_Type = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_cbData = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pData = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pKeyName = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_Type = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_cbData = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_pData = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinterData_pValueName = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_Command = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pDevModeContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pPrinterContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncSetPrinter_pSecurityContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_pDocInfoContainer = -1;
+static gint hf_iremotewinspool_winspool_AsyncStartDocPrinter_pJobId = -1;
+static gint hf_iremotewinspool_winspool_AsyncStartPagePrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_dwFlags = -1;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath = -1;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath = -1;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment = -1;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszInfPath = -1;
+static gint hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszServer = -1;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_cbBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_pBuf = -1;
+static gint hf_iremotewinspool_winspool_AsyncWritePrinter_pcWritten = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_cbInputData = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_cbOutputData = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_hXcv = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pInputData = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pOutputData = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pcbOutputNeeded = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pdwStatus = -1;
+static gint hf_iremotewinspool_winspool_AsyncXcvData_pszDataName = -1;
+static gint hf_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES = -1;
+static gint hf_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions = -1;
+static gint hf_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER_pInfo = -1;
+static gint hf_iremotewinspool_winspool_PrintNamedProperty_propertyName = -1;
+static gint hf_iremotewinspool_winspool_PrintNamedProperty_propertyValue = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertiesCollection_numberOfProperties = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertiesCollection_propertiesCollection = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyByte = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyDevModeContainer = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt32 = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt64 = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyOptionsContainer = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyReplyContainer = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertySDContainer = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyString = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyTimeContainer = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValue_PropertyType = -1;
+static gint hf_iremotewinspool_winspool_PrintPropertyValue_value = -1;
+static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_hRpcHandle = -1;
+static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_pNotifyFilter = -1;
+static gint hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData = -1;
+static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_hPrinter = -1;
+static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter = -1;
+static gint hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_phRpcHandle = -1;
+static gint hf_iremotewinspool_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle = -1;
+static gint hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE = -1;
+static gint hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS = -1;
+
+static gint proto_dcerpc_iremotewinspool = -1;
+/* Version information */
+
+
+static e_guid_t uuid_dcerpc_iremotewinspool = {
+       0x76f03f96, 0xcdfd, 0x44fc,
+       { 0xa2, 0x2c, 0x64, 0x95, 0x0a, 0x00, 0x12, 0x09 }
+};
+static guint16 ver_dcerpc_iremotewinspool = 1;
+
+static int iremotewinspool_dissect_element_winspool_NOTIFY_REPLY_CONTAINER_pInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_NOTIFY_REPLY_CONTAINER_pInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+const value_string iremotewinspool_winspool_PrintPropertyType_vals[] = {
+       { winspool_PropertyTypeString, "winspool_PropertyTypeString" },
+       { winspool_PropertyTypeInt32, "winspool_PropertyTypeInt32" },
+       { winspool_PropertyTypeInt64, "winspool_PropertyTypeInt64" },
+       { winspool_PropertyTypeByte, "winspool_PropertyTypeByte" },
+       { winspool_PropertyTypeTime, "winspool_PropertyTypeTime" },
+       { winspool_PropertyTypeDevMode, "winspool_PropertyTypeDevMode" },
+       { winspool_PropertyTypeSD, "winspool_PropertyTypeSD" },
+       { winspool_PropertyTypeNotificationReply, "winspool_PropertyTypeNotificationReply" },
+       { winspool_PropertyTypeNotificationOptions, "winspool_PropertyTypeNotificationOptions" },
+{ 0, NULL }
+};
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyInt64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyByte(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyTimeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertySDContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyReplyContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyOptionsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValue_PropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *PropertyType);
+static int iremotewinspool_dissect_element_winspool_PrintPropertyValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *PropertyType);
+static int iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_numberOfProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static const true_false_string winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES_tfs = {
+   "IPDFP_COPY_ALL_FILES is SET",
+   "IPDFP_COPY_ALL_FILES is NOT SET",
+};
+static const true_false_string winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS_tfs = {
+   "UPDP_UPLOAD_ALWAYS is SET",
+   "UPDP_UPLOAD_ALWAYS is NOT SET",
+};
+static const true_false_string winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE_tfs = {
+   "UPDP_CHECK_DRIVERSTORE is SET",
+   "UPDP_CHECK_DRIVERSTORE is NOT SET",
+};
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pPrinterName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pPrinterName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDatatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDatatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_AccessRequired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pClientInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pPrinterContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pPrinterContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pSecurityContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pSecurityContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pClientInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJob_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJob_pJobContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJob_pJobContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJob_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJob_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_FirstJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_NoJobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddJob_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncScheduleJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncScheduleJob_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pPrinterContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pPrinterContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pSecurityContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pSecurityContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinter_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pDocInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pDocInfoContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pJobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pJobId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncStartPagePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pcWritten(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pcWritten_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEndPagePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEndDocPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAbortPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_nSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_nSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddForm_pFormInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddForm_pFormInfoContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteForm_pFormName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteForm_pFormName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pFormName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pFormName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetForm_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormInfoContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_dwClientMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_dwClientMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_dwIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_cbValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_cbEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pcbEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pcbEnumValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pnEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pnEnumValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_cbSubkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pcbSubkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pcbSubkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_hXcv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pszDataName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pszDataName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_cbInputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_cbOutputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pcbOutputNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pcbOutputNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pAction_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pReqData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pReqData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pDriverContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pDriverContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_dwFileCopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pDriverName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pDriverName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pDriverName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pDriverName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_dwVersionNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPathName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPathName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPrintProcessorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPrintProcessorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortVarContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortVarContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pMonitorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPort_pMonitorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPort_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPort_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddMonitor_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddMonitor_Name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddMonitor_pMonitorContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddMonitor_pMonitorContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_Name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pMonitorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pMonitorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_Name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pPrintProcessorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pPrintProcessorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrinterName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrinterName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrintServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrintServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pPrinterName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pPrinterName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_phRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_phRpcHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_hRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_pNotifyFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_pNotifyFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_hRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pcNoBytesRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pcNoBytesRead_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncResetPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDatatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDatatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_pProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_pProperty_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_pcProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_pcProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+static int iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] spoolss_NotifyInfo *pInfo; */
+/* IDL: } */
+
+static int
+iremotewinspool_dissect_element_winspool_NOTIFY_REPLY_CONTAINER_pInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_NOTIFY_REPLY_CONTAINER_pInfo_, NDR_POINTER_UNIQUE, "Pointer to PInfo (spoolss_NotifyInfo)",hf_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER_pInfo);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_NOTIFY_REPLY_CONTAINER_pInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+int
+iremotewinspool_dissect_struct_winspool_NOTIFY_REPLY_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER);
+       }
+
+       offset = iremotewinspool_dissect_element_winspool_NOTIFY_REPLY_CONTAINER_pInfo(tvb, offset, pinfo, tree, di, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] spoolss_NotifyOption *pOptions; */
+/* IDL: } */
+
+static int
+iremotewinspool_dissect_element_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions_, NDR_POINTER_UNIQUE, "Pointer to POptions (spoolss_NotifyOption)",hf_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+int
+iremotewinspool_dissect_struct_winspool_NOTIFY_OPTIONS_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER);
+       }
+
+       offset = iremotewinspool_dissect_element_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions(tvb, offset, pinfo, tree, di, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        winspool_PropertyTypeString=1, */
+/* IDL:        winspool_PropertyTypeInt32=2, */
+/* IDL:        winspool_PropertyTypeInt64=3, */
+/* IDL:        winspool_PropertyTypeByte=4, */
+/* IDL:        winspool_PropertyTypeTime=5, */
+/* IDL:        winspool_PropertyTypeDevMode=6, */
+/* IDL:        winspool_PropertyTypeSD=7, */
+/* IDL:        winspool_PropertyTypeNotificationReply=8, */
+/* IDL:        winspool_PropertyTypeNotificationOptions=9, */
+/* IDL: } */
+
+int
+iremotewinspool_dissect_enum_winspool_PrintPropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_)
+{
+       guint1632 parameter=0;
+       if (param) {
+               parameter = *param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &parameter);
+       if (param) {
+               *param = parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(winspool_PrintPropertyType)] union { */
+/* IDL: [case(winspool_PropertyTypeString)] [case(winspool_PropertyTypeString)] [charset(UTF16)] [unique(1)] uint16 *propertyString; */
+/* IDL: [case(winspool_PropertyTypeInt32)] [case(winspool_PropertyTypeInt32)] uint32 propertyInt32; */
+/* IDL: [case(winspool_PropertyTypeInt64)] [case(winspool_PropertyTypeInt64)] hyper propertyInt64; */
+/* IDL: [case(winspool_PropertyTypeByte)] [case(winspool_PropertyTypeByte)] uint8 propertyByte; */
+/* IDL: [case(winspool_PropertyTypeTime)] [case(winspool_PropertyTypeTime)] spoolss_TimeCtr propertyTimeContainer; */
+/* IDL: [case(winspool_PropertyTypeDevMode)] [case(winspool_PropertyTypeDevMode)] spoolss_DevmodeContainer propertyDevModeContainer; */
+/* IDL: [case(winspool_PropertyTypeSD)] [case(winspool_PropertyTypeSD)] sec_desc_buf propertySDContainer; */
+/* IDL: [case(winspool_PropertyTypeNotificationReply)] [case(winspool_PropertyTypeNotificationReply)] winspool_NOTIFY_REPLY_CONTAINER propertyReplyContainer; */
+/* IDL: [case(winspool_PropertyTypeNotificationOptions)] [case(winspool_PropertyTypeNotificationOptions)] winspool_NOTIFY_OPTIONS_CONTAINER propertyOptionsContainer; */
+/* IDL: } */
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyString_, NDR_POINTER_UNIQUE, "Pointer to PropertyString (uint16)",hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyString);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyString, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt32, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyInt64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt64, NULL);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyByte(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyByte, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyTimeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertySDContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyReplyContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_NOTIFY_REPLY_CONTAINER(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyReplyContainer,0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyOptionsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_NOTIFY_OPTIONS_CONTAINER(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyOptionsContainer,0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_PrintPropertyValueUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               tree = proto_tree_add_subtree(parent_tree, tvb, offset, -1, ett_iremotewinspool_winspool_PrintPropertyValueUnion, &item, "winspool_PrintPropertyValueUnion");
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, di, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case winspool_PropertyTypeString:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyString(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeInt32:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyInt32(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeInt64:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyInt64(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeByte:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyByte(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeTime:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyTimeContainer(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeDevMode:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyDevModeContainer(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeSD:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertySDContainer(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeNotificationReply:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyReplyContainer(tvb, offset, pinfo, tree, di, drep);
+               break;
+
+               case winspool_PropertyTypeNotificationOptions:
+                       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValueUnion_propertyOptionsContainer(tvb, offset, pinfo, tree, di, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        winspool_PrintPropertyType PropertyType; */
+/* IDL:        [switch_is(PropertyType)] winspool_PrintPropertyValueUnion value; */
+/* IDL: } */
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValue_PropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *PropertyType)
+{
+       offset = iremotewinspool_dissect_enum_winspool_PrintPropertyType(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_PrintPropertyValue_PropertyType, PropertyType);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertyValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, guint1632 *PropertyType)
+{
+       offset = iremotewinspool_dissect_winspool_PrintPropertyValueUnion(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_PrintPropertyValue_value, *PropertyType);
+
+       return offset;
+}
+
+int
+iremotewinspool_dissect_struct_winspool_PrintPropertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 PropertyType = 0;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_iremotewinspool_winspool_PrintPropertyValue);
+       }
+
+       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValue_PropertyType(tvb, offset, pinfo, tree, di, drep, &PropertyType);
+
+       offset = iremotewinspool_dissect_element_winspool_PrintPropertyValue_value(tvb, offset, pinfo, tree, di, drep, &PropertyType);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [charset(UTF16)] [unique(1)] uint16 *propertyName; */
+/* IDL:        winspool_PrintPropertyValue propertyValue; */
+/* IDL: } */
+
+static int
+iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyName_, NDR_POINTER_UNIQUE, "Pointer to PropertyName (uint16)",hf_iremotewinspool_winspool_PrintNamedProperty_propertyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_PrintNamedProperty_propertyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_PrintPropertyValue(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_PrintNamedProperty_propertyValue,0);
+
+       return offset;
+}
+
+int
+iremotewinspool_dissect_struct_winspool_PrintNamedProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_iremotewinspool_winspool_PrintNamedProperty);
+       }
+
+       offset = iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyName(tvb, offset, pinfo, tree, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_PrintNamedProperty_propertyValue(tvb, offset, pinfo, tree, di, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,50)] uint32 numberOfProperties; */
+/* IDL:        [size_is(numberOfProperties)] [unique(1)] winspool_PrintNamedProperty *propertiesCollection; */
+/* IDL: } */
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_numberOfProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_PrintPropertiesCollection_numberOfProperties, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection_, NDR_POINTER_UNIQUE, "Pointer to PropertiesCollection (winspool_PrintNamedProperty)",hf_iremotewinspool_winspool_PrintPropertiesCollection_propertiesCollection);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_PrintNamedProperty(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_PrintPropertiesCollection_propertiesCollection,0);
+
+       return offset;
+}
+
+int
+iremotewinspool_dissect_struct_winspool_PrintPropertiesCollection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_iremotewinspool_winspool_PrintPropertiesCollection);
+       }
+
+       offset = iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_numberOfProperties(tvb, offset, pinfo, tree, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_PrintPropertiesCollection_propertiesCollection(tvb, offset, pinfo, tree, di, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        IPDFP_FLAG_NONE =  0x00000000 , */
+/* IDL:        IPDFP_COPY_ALL_FILES =  0x00000001 , */
+/* IDL: } */
+
+int
+iremotewinspool_dissect_bitmap_winspool_InstallPrinterDriverFromPackageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item;
+       static const int * iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_fields[] = {
+               &hf_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES,
+               NULL
+       };
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
+                               ett_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags, iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
+
+       if (!flags)
+               proto_item_append_text(item, ": (No values set)");
+
+       if (flags & (~0x00000001)) {
+               flags &= (~0x00000001);
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        UPDP_FLAG_NONE =  0x00000000 , */
+/* IDL:        UPDP_UPLOAD_ALWAYS =  0x00000002 , */
+/* IDL:        UPDP_CHECK_DRIVERSTORE =  0x00000004 , */
+/* IDL: } */
+
+int
+iremotewinspool_dissect_bitmap_winspool_UploadPrinterDriverPackageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item;
+       static const int * iremotewinspool_winspool_UploadPrinterDriverPackageFlags_fields[] = {
+               &hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS,
+               &hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE,
+               NULL
+       };
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       item = proto_tree_add_bitmask_with_flags(parent_tree, tvb, offset, hf_index,
+                               ett_iremotewinspool_winspool_UploadPrinterDriverPackageFlags, iremotewinspool_winspool_UploadPrinterDriverPackageFlags_fields, DREP_ENC_INTEGER(drep), BMT_NO_FALSE);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, parent_tree, di, drep, -1, &flags);
+
+       if (!flags)
+               proto_item_append_text(item, ": (No values set)");
+
+       if (flags & (~0x00000006)) {
+               flags &= (~0x00000006);
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pPrinterName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pPrinterName_, NDR_POINTER_UNIQUE, "Pointer to PPrinterName (uint16)",hf_iremotewinspool_winspool_AsyncOpenPrinter_pPrinterName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pPrinterName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncOpenPrinter_pPrinterName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pHandle_, NDR_POINTER_REF, "Pointer to PHandle (policy_handle)",hf_iremotewinspool_winspool_AsyncOpenPrinter_pHandle);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncOpenPrinter_pHandle, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDatatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDatatype_, NDR_POINTER_UNIQUE, "Pointer to PDatatype (uint16)",hf_iremotewinspool_winspool_AsyncOpenPrinter_pDatatype);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDatatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncOpenPrinter_pDatatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDevModeContainer_, NDR_POINTER_REF, "Pointer to PDevModeContainer (spoolss_DevmodeContainer)",hf_iremotewinspool_winspool_AsyncOpenPrinter_pDevModeContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_AccessRequired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncOpenPrinter_AccessRequired, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pClientInfo_, NDR_POINTER_REF, "Pointer to PClientInfo (spoolss_UserLevelCtr)",hf_iremotewinspool_winspool_AsyncOpenPrinter_pClientInfo);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pClientInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncOpenPrinter( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pPrinterName, */
+/* IDL: [out] [ref] policy_handle *pHandle, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pDatatype, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *pDevModeContainer, */
+/* IDL: [in] uint32 AccessRequired, */
+/* IDL: [in] [ref] spoolss_UserLevelCtr *pClientInfo */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncOpenPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncOpenPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncOpenPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncOpenPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pPrinterName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDatatype(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pDevModeContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_AccessRequired(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncOpenPrinter_pClientInfo(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncAddPrinter_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPrinter_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pPrinterContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pPrinterContainer_, NDR_POINTER_REF, "Pointer to PPrinterContainer (spoolss_SetPrinterInfoCtr)",hf_iremotewinspool_winspool_AsyncAddPrinter_pPrinterContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pPrinterContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pDevModeContainer_, NDR_POINTER_REF, "Pointer to PDevModeContainer (spoolss_DevmodeContainer)",hf_iremotewinspool_winspool_AsyncAddPrinter_pDevModeContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pSecurityContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pSecurityContainer_, NDR_POINTER_REF, "Pointer to PSecurityContainer (sec_desc_buf)",hf_iremotewinspool_winspool_AsyncAddPrinter_pSecurityContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pSecurityContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pClientInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pClientInfo_, NDR_POINTER_REF, "Pointer to PClientInfo (spoolss_UserLevelCtr)",hf_iremotewinspool_winspool_AsyncAddPrinter_pClientInfo);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pClientInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pHandle_, NDR_POINTER_REF, "Pointer to PHandle (policy_handle)",hf_iremotewinspool_winspool_AsyncAddPrinter_pHandle);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddPrinter_pHandle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddPrinter( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *pPrinterContainer, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *pDevModeContainer, */
+/* IDL: [in] [ref] sec_desc_buf *pSecurityContainer, */
+/* IDL: [in] [ref] spoolss_UserLevelCtr *pClientInfo, */
+/* IDL: [out] [ref] policy_handle *pHandle */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pPrinterContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pDevModeContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pSecurityContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinter_pClientInfo(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetJob_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJob_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetJob_JobId, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJob_pJobContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetJob_pJobContainer_, NDR_POINTER_UNIQUE, "Pointer to PJobContainer (spoolss_JobInfoContainer)",hf_iremotewinspool_winspool_AsyncSetJob_pJobContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJob_pJobContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJob_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetJob_Command, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetJob( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [in] [unique(1)] spoolss_JobInfoContainer *pJobContainer, */
+/* IDL: [in] uint32 Command */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetJob";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetJob";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJob_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJob_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJob_pJobContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJob_Command(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJob_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJob_JobId, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJob_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob_, NDR_POINTER_UNIQUE, "Pointer to PJob (uint8)",hf_iremotewinspool_winspool_AsyncGetJob_pJob);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJob_pJob, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJob_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetJob_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetJob_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJob_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJob_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetJob( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pJob, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetJob";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetJob";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_pJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJob_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_FirstJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_FirstJob, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_NoJobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_NoJobs, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob_, NDR_POINTER_UNIQUE, "Pointer to PJob (uint8)",hf_iremotewinspool_winspool_AsyncEnumJobs_pJob);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_pJob, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumJobs_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumJobs_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobs_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumJobs( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 FirstJob, */
+/* IDL: [in] uint32 NoJobs, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pJob, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumJobs";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumJobs";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_FirstJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_NoJobs(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_pJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobs_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddJob_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddJob_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob_, NDR_POINTER_UNIQUE, "Pointer to PAddJob (uint8)",hf_iremotewinspool_winspool_AsyncAddJob_pAddJob);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddJob_pAddJob, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddJob_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddJob_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncAddJob_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddJob_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddJob_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddJob( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pAddJob, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddJob";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddJob_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddJob";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddJob_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddJob_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddJob_pAddJob(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddJob_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncScheduleJob_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncScheduleJob_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncScheduleJob_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncScheduleJob_JobId, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncScheduleJob( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncScheduleJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncScheduleJob";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncScheduleJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncScheduleJob";
+       offset = iremotewinspool_dissect_element_winspool_AsyncScheduleJob_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncScheduleJob_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinter_hPrinter, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinter( */
+/* IDL: [in] policy_handle hPrinter */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pPrinterContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pPrinterContainer_, NDR_POINTER_REF, "Pointer to PPrinterContainer (spoolss_SetPrinterInfoCtr)",hf_iremotewinspool_winspool_AsyncSetPrinter_pPrinterContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pPrinterContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pDevModeContainer_, NDR_POINTER_REF, "Pointer to PDevModeContainer (spoolss_DevmodeContainer)",hf_iremotewinspool_winspool_AsyncSetPrinter_pDevModeContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pSecurityContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pSecurityContainer_, NDR_POINTER_REF, "Pointer to PSecurityContainer (sec_desc_buf)",hf_iremotewinspool_winspool_AsyncSetPrinter_pSecurityContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pSecurityContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinter_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinter_Command, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetPrinter( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *pPrinterContainer, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *pDevModeContainer, */
+/* IDL: [in] [ref] sec_desc_buf *pSecurityContainer, */
+/* IDL: [in] uint32 Command */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pPrinterContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pDevModeContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinter_pSecurityContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinter_Command(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinter_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter_, NDR_POINTER_UNIQUE, "Pointer to PPrinter (uint8)",hf_iremotewinspool_winspool_AsyncGetPrinter_pPrinter);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinter_pPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinter_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinter_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinter_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetPrinter( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pPrinter, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinter_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinter_pPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinter_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncStartDocPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pDocInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pDocInfoContainer_, NDR_POINTER_REF, "Pointer to PDocInfoContainer (spoolss_DocumentInfoCtr)",hf_iremotewinspool_winspool_AsyncStartDocPrinter_pDocInfoContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pDocInfoContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pJobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pJobId_, NDR_POINTER_REF, "Pointer to PJobId (uint32)",hf_iremotewinspool_winspool_AsyncStartDocPrinter_pJobId);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pJobId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncStartDocPrinter_pJobId, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncStartDocPrinter( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] [ref] spoolss_DocumentInfoCtr *pDocInfoContainer, */
+/* IDL: [out] [ref] uint32 *pJobId */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncStartDocPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncStartDocPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pJobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncStartDocPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncStartDocPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncStartDocPrinter_pDocInfoContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncStartPagePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncStartPagePrinter_hPrinter, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncStartPagePrinter( */
+/* IDL: [in] policy_handle hPrinter */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncStartPagePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncStartPagePrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncStartPagePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncStartPagePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncStartPagePrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncWritePrinter_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf_, NDR_POINTER_REF, "Pointer to PBuf (uint8)",hf_iremotewinspool_winspool_AsyncWritePrinter_pBuf);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncWritePrinter_pBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncWritePrinter_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pcWritten(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pcWritten_, NDR_POINTER_REF, "Pointer to PcWritten (uint32)",hf_iremotewinspool_winspool_AsyncWritePrinter_pcWritten);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pcWritten_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncWritePrinter_pcWritten, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncWritePrinter( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] [ref] [size_is(cbBuf)] uint8 *pBuf, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcWritten */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncWritePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncWritePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pcWritten(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncWritePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncWritePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncWritePrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncWritePrinter_pBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncWritePrinter_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEndPagePrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEndPagePrinter_hPrinter, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEndPagePrinter( */
+/* IDL: [in] policy_handle hPrinter */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEndPagePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEndPagePrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEndPagePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEndPagePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEndPagePrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEndDocPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEndDocPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEndDocPrinter( */
+/* IDL: [in] policy_handle hPrinter */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEndDocPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEndDocPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEndDocPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEndDocPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEndDocPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAbortPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAbortPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAbortPrinter( */
+/* IDL: [in] policy_handle hPrinter */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAbortPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAbortPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAbortPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAbortPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAbortPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterData_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterData_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterData_pValueName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pType_, NDR_POINTER_REF, "Pointer to PType (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterData_pType);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterData_pType, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData_, NDR_POINTER_REF, "Pointer to PData (uint8)",hf_iremotewinspool_winspool_AsyncGetPrinterData_pData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterData_pData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_nSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterData_nSize, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterData_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterData_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetPrinterData( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pValueName, */
+/* IDL: [out] [ref] uint32 *pType, */
+/* IDL: [out] [ref] [size_is(nSize)] uint8 *pData, */
+/* IDL: [in] uint32 nSize, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pType(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterData_nSize(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pKeyName_, NDR_POINTER_REF, "Pointer to PKeyName (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pKeyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pKeyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pValueName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pType_, NDR_POINTER_REF, "Pointer to PType (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pType);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pType, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData_, NDR_POINTER_REF, "Pointer to PData (uint8)",hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_nSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_nSize, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetPrinterDataEx( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pKeyName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pValueName, */
+/* IDL: [out] [ref] uint32 *pType, */
+/* IDL: [out] [ref] [size_is(nSize)] uint8 *pData, */
+/* IDL: [in] uint32 nSize, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDataEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pType(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDataEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pKeyName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDataEx_nSize(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterData_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncSetPrinterData_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSetPrinterData_pValueName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterData_Type, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData_, NDR_POINTER_REF, "Pointer to PData (uint8)",hf_iremotewinspool_winspool_AsyncSetPrinterData_pData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterData_pData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterData_cbData, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetPrinterData( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pValueName, */
+/* IDL: [in] uint32 Type, */
+/* IDL: [in] [ref] [size_is(cbData)] uint8 *pData, */
+/* IDL: [in] uint32 cbData */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetPrinterData";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetPrinterData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_Type(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_pData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterData_cbData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pKeyName_, NDR_POINTER_REF, "Pointer to PKeyName (uint16)",hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pKeyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pKeyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pValueName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_Type, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData_, NDR_POINTER_REF, "Pointer to PData (uint8)",hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_cbData, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetPrinterDataEx( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pKeyName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pValueName, */
+/* IDL: [in] uint32 Type, */
+/* IDL: [in] [ref] [size_is(cbData)] uint8 *pData, */
+/* IDL: [in] uint32 cbData */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetPrinterDataEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetPrinterDataEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pKeyName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_Type(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_pData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPrinterDataEx_cbData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter_, NDR_POINTER_REF, "Pointer to PhPrinter (policy_handle)",hf_iremotewinspool_winspool_AsyncClosePrinter_phPrinter);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncClosePrinter_phPrinter, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncClosePrinter( */
+/* IDL: [in] [out] [ref] policy_handle *phPrinter */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncClosePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncClosePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncClosePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncClosePrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncClosePrinter_phPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddForm_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddForm_pFormInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddForm_pFormInfoContainer_, NDR_POINTER_REF, "Pointer to PFormInfoContainer (spoolss_AddFormInfoCtr)",hf_iremotewinspool_winspool_AsyncAddForm_pFormInfoContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddForm_pFormInfoContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddForm( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] [ref] spoolss_AddFormInfoCtr *pFormInfoContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddForm";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddForm";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddForm_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddForm_pFormInfoContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeleteForm_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteForm_pFormName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeleteForm_pFormName_, NDR_POINTER_REF, "Pointer to PFormName (uint16)",hf_iremotewinspool_winspool_AsyncDeleteForm_pFormName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteForm_pFormName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeleteForm_pFormName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeleteForm( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pFormName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeleteForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeleteForm";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeleteForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeleteForm";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteForm_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteForm_pFormName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetForm_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pFormName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetForm_pFormName_, NDR_POINTER_REF, "Pointer to PFormName (uint16)",hf_iremotewinspool_winspool_AsyncGetForm_pFormName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pFormName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetForm_pFormName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetForm_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm_, NDR_POINTER_UNIQUE, "Pointer to PForm (uint8)",hf_iremotewinspool_winspool_AsyncGetForm_pForm);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetForm_pForm, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetForm_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetForm_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetForm_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetForm_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetForm_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetForm( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pFormName, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pForm, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetForm";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetForm";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_pFormName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_pForm(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetForm_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetForm_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetForm_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormName_, NDR_POINTER_REF, "Pointer to PFormName (uint16)",hf_iremotewinspool_winspool_AsyncSetForm_pFormName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSetForm_pFormName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormInfoContainer_, NDR_POINTER_REF, "Pointer to PFormInfoContainer (spoolss_AddFormInfoCtr)",hf_iremotewinspool_winspool_AsyncSetForm_pFormInfoContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormInfoContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetForm( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pFormName, */
+/* IDL: [in] [ref] spoolss_AddFormInfoCtr *pFormInfoContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetForm";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetForm";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetForm_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetForm_pFormInfoContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumForms_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumForms_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm_, NDR_POINTER_UNIQUE, "Pointer to PForm (uint8)",hf_iremotewinspool_winspool_AsyncEnumForms_pForm);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumForms_pForm, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumForms_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumForms_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumForms_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumForms_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumForms_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumForms( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pForm, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumForms";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumForms";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_pForm(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumForms_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver_, NDR_POINTER_UNIQUE, "Pointer to PDriver (uint8)",hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pDriver);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pDriver, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_dwClientMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMajorVersion, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_dwClientMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMinorVersion, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion_, NDR_POINTER_REF, "Pointer to PdwServerMaxVersion (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMinVersion_, NDR_POINTER_REF, "Pointer to PdwServerMinVersion (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMinVersion);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMinVersion, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetPrinterDriver( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pDriver, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [in] uint32 dwClientMajorVersion, */
+/* IDL: [in] uint32 dwClientMinorVersion, */
+/* IDL: [out] [ref] uint32 *pdwServerMaxVersion, */
+/* IDL: [out] [ref] uint32 *pdwServerMinVersion */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDriver";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pdwServerMinVersion(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDriver";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_pDriver(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_dwClientMajorVersion(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriver_dwClientMinorVersion(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_dwIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_dwIndex, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinterData_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_pValueName, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_cbValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbValueName, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbValueName_, NDR_POINTER_REF, "Pointer to PcbValueName (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbValueName, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pType_, NDR_POINTER_REF, "Pointer to PType (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterData_pType);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pType_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_pType, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData_, NDR_POINTER_REF, "Pointer to PData (uint8)",hf_iremotewinspool_winspool_AsyncEnumPrinterData_pData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_pData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbData_, NDR_POINTER_REF, "Pointer to PcbData (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbData, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrinterData( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 dwIndex, */
+/* IDL: [out] [ref] [size_is(cbValueName/2)] uint16 *pValueName, */
+/* IDL: [in] uint32 cbValueName, */
+/* IDL: [out] [ref] uint32 *pcbValueName, */
+/* IDL: [out] [ref] uint32 *pType, */
+/* IDL: [out] [ref] [size_is(cbData)] uint8 *pData, */
+/* IDL: [in] uint32 cbData, */
+/* IDL: [out] [ref] uint32 *pcbData */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pType(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_pcbData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_dwIndex(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_cbValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterData_cbData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pKeyName_, NDR_POINTER_REF, "Pointer to PKeyName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pKeyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pKeyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues_, NDR_POINTER_REF, "Pointer to PEnumValues (uint8)",hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pEnumValues);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pEnumValues, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_cbEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_cbEnumValues, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pcbEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pcbEnumValues_, NDR_POINTER_REF, "Pointer to PcbEnumValues (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pcbEnumValues);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pcbEnumValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pcbEnumValues, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pnEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pnEnumValues_, NDR_POINTER_REF, "Pointer to PnEnumValues (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pnEnumValues);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pnEnumValues_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pnEnumValues, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrinterDataEx( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pKeyName, */
+/* IDL: [out] [ref] [size_is(cbEnumValues)] uint8 *pEnumValues, */
+/* IDL: [in] uint32 cbEnumValues, */
+/* IDL: [out] [ref] uint32 *pcbEnumValues, */
+/* IDL: [out] [ref] uint32 *pnEnumValues */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterDataEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pEnumValues(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pcbEnumValues(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pnEnumValues(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterDataEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_pKeyName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDataEx_cbEnumValues(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterKey_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pKeyName_, NDR_POINTER_REF, "Pointer to PKeyName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pKeyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pKeyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey_, NDR_POINTER_REF, "Pointer to PSubkey (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pSubkey);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pSubkey, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_cbSubkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterKey_cbSubkey, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pcbSubkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pcbSubkey_, NDR_POINTER_REF, "Pointer to PcbSubkey (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pcbSubkey);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pcbSubkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pcbSubkey, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrinterKey( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pKeyName, */
+/* IDL: [out] [ref] [size_is(cbSubkey/2)] uint16 *pSubkey, */
+/* IDL: [in] uint32 cbSubkey, */
+/* IDL: [out] [ref] uint32 *pcbSubkey */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterKey";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pSubkey(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pcbSubkey(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterKey";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_pKeyName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterKey_cbSubkey(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinterData_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterData_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterData_pValueName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinterData( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pValueName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterData";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterData_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pKeyName_, NDR_POINTER_REF, "Pointer to PKeyName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pKeyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pKeyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pValueName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pValueName_, NDR_POINTER_REF, "Pointer to PValueName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pValueName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pValueName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pValueName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinterDataEx( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pKeyName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pValueName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDataEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDataEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pKeyName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDataEx_pValueName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinterKey_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_pKeyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_pKeyName_, NDR_POINTER_REF, "Pointer to PKeyName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterKey_pKeyName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_pKeyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterKey_pKeyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinterKey( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pKeyName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterKey";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterKey_pKeyName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_hXcv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_hXcv, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pszDataName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pszDataName_, NDR_POINTER_REF, "Pointer to PszDataName (uint16)",hf_iremotewinspool_winspool_AsyncXcvData_pszDataName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pszDataName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncXcvData_pszDataName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData_, NDR_POINTER_REF, "Pointer to PInputData (uint8)",hf_iremotewinspool_winspool_AsyncXcvData_pInputData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_pInputData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_cbInputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_cbInputData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData_, NDR_POINTER_REF, "Pointer to POutputData (uint8)",hf_iremotewinspool_winspool_AsyncXcvData_pOutputData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_pOutputData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_cbOutputData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_cbOutputData, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pcbOutputNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pcbOutputNeeded_, NDR_POINTER_REF, "Pointer to PcbOutputNeeded (uint32)",hf_iremotewinspool_winspool_AsyncXcvData_pcbOutputNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pcbOutputNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_pcbOutputNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus_, NDR_POINTER_REF, "Pointer to PdwStatus (uint32)",hf_iremotewinspool_winspool_AsyncXcvData_pdwStatus);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncXcvData_pdwStatus, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncXcvData( */
+/* IDL: [in] policy_handle hXcv, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszDataName, */
+/* IDL: [in] [ref] [size_is(cbInputData)] uint8 *pInputData, */
+/* IDL: [in] uint32 cbInputData, */
+/* IDL: [out] [ref] [size_is(cbOutputData)] uint8 *pOutputData, */
+/* IDL: [in] uint32 cbOutputData, */
+/* IDL: [out] [ref] uint32 *pcbOutputNeeded, */
+/* IDL: [in] [out] [ref] uint32 *pdwStatus */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncXcvData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncXcvData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_pOutputData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_pcbOutputNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncXcvData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncXcvData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_hXcv(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_pszDataName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_pInputData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_cbInputData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_cbOutputData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncXcvData_pdwStatus(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSendRecvBidiData_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pAction_, NDR_POINTER_UNIQUE, "Pointer to PAction (uint16)",hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pAction);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pAction_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pAction, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pReqData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pReqData_, NDR_POINTER_REF, "Pointer to PReqData (RPC_BIDI_REQUEST_CONTAINER)",hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pReqData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pReqData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData_, NDR_POINTER_REF, "Pointer to PpRespData (RPC_BIDI_RESPONSE_CONTAINER)",hf_iremotewinspool_winspool_AsyncSendRecvBidiData_ppRespData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData__, NDR_POINTER_UNIQUE, "Pointer to PpRespData (RPC_BIDI_RESPONSE_CONTAINER)",hf_iremotewinspool_winspool_AsyncSendRecvBidiData_ppRespData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSendRecvBidiData( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pAction, */
+/* IDL: [in] [ref] RPC_BIDI_REQUEST_CONTAINER *pReqData, */
+/* IDL: [out] [ref] RPC_BIDI_RESPONSE_CONTAINER **ppRespData */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSendRecvBidiData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSendRecvBidiData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_ppRespData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSendRecvBidiData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSendRecvBidiData";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pAction(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSendRecvBidiData_pReqData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncCreatePrinterIC_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pHandle_, NDR_POINTER_REF, "Pointer to PHandle (policy_handle)",hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pHandle);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pHandle, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pDevModeContainer_, NDR_POINTER_REF, "Pointer to PDevModeContainer (spoolss_DevmodeContainer)",hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pDevModeContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncCreatePrinterIC( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [out] [ref] policy_handle *pHandle, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *pDevModeContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncCreatePrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncCreatePrinterIC";
+       offset = iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncCreatePrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncCreatePrinterIC";
+       offset = iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncCreatePrinterIC_pDevModeContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn_, NDR_POINTER_REF, "Pointer to PIn (uint8)",hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut_, NDR_POINTER_REF, "Pointer to POut (uint8)",hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_ul, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncPlayGdiScriptOnPrinterIC( */
+/* IDL: [in] policy_handle hPrinterIC, */
+/* IDL: [in] [ref] [size_is(cIn)] uint8 *pIn, */
+/* IDL: [in] uint32 cIn, */
+/* IDL: [out] [ref] [size_is(cOut)] uint8 *pOut, */
+/* IDL: [in] uint32 cOut, */
+/* IDL: [in] uint32 ul */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncPlayGdiScriptOnPrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncPlayGdiScriptOnPrinterIC";
+       offset = iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncPlayGdiScriptOnPrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncPlayGdiScriptOnPrinterIC";
+       offset = iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncPlayGdiScriptOnPrinterIC_ul(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC_, NDR_POINTER_REF, "Pointer to PhPrinterIC (policy_handle)",hf_iremotewinspool_winspool_AsyncDeletePrinterIC_phPrinterIC);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinterIC_phPrinterIC, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinterIC( */
+/* IDL: [in] [out] [ref] policy_handle *phPrinterIC */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterIC";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterIC";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterIC_phPrinterIC(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinters_Flags, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinters_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrinters_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinters_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum_, NDR_POINTER_UNIQUE, "Pointer to PPrinterEnum (uint8)",hf_iremotewinspool_winspool_AsyncEnumPrinters_pPrinterEnum);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinters_pPrinterEnum, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinters_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinters_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinters_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinters_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinters_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrinters( */
+/* IDL: [in] uint32 Flags, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pPrinterEnum, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinters";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinters";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_Flags(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_pPrinterEnum(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinters_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pDriverContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pDriverContainer_, NDR_POINTER_REF, "Pointer to PDriverContainer (spoolss_AddDriverInfoCtr)",hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pDriverContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pDriverContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_dwFileCopyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncAddPrinterDriver_dwFileCopyFlags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddPrinterDriver( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [in] [ref] spoolss_AddDriverInfoCtr *pDriverContainer, */
+/* IDL: [in] uint32 dwFileCopyFlags */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddPrinterDriver";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddPrinterDriver";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_pDriverContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrinterDriver_dwFileCopyFlags(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers_, NDR_POINTER_UNIQUE, "Pointer to PDrivers (uint8)",hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pDrivers);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pDrivers, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrinterDrivers( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pDrivers, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterDrivers";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrinterDrivers";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_pDrivers(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrinterDrivers_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory_, NDR_POINTER_UNIQUE, "Pointer to PDriverDirectory (uint8)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetPrinterDriverDirectory( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pDriverDirectory, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDriverDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDriverDirectory";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDriverDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDriverDirectory";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverDirectory_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pEnvironment_, NDR_POINTER_REF, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pDriverName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pDriverName_, NDR_POINTER_REF, "Pointer to PDriverName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pDriverName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pDriverName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pDriverName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinterDriver( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pEnvironment, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pDriverName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDriver";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDriver";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriver_pDriverName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pEnvironment_, NDR_POINTER_REF, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pDriverName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pDriverName_, NDR_POINTER_REF, "Pointer to PDriverName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pDriverName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pDriverName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pDriverName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_dwVersionNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwVersionNum, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrinterDriverEx( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pEnvironment, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pDriverName, */
+/* IDL: [in] uint32 dwDeleteFlag, */
+/* IDL: [in] uint32 dwVersionNum */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDriverEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDriverEx";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_pDriverName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverEx_dwVersionNum(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pEnvironment_, NDR_POINTER_REF, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPathName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPathName_, NDR_POINTER_REF, "Pointer to PPathName (uint16)",hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPathName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPathName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPathName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPrintProcessorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPrintProcessorName_, NDR_POINTER_REF, "Pointer to PPrintProcessorName (uint16)",hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPrintProcessorName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPrintProcessorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPrintProcessorName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddPrintProcessor( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pEnvironment, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pPathName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pPrintProcessorName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPrintProcessor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddPrintProcessor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPrintProcessor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddPrintProcessor";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPathName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPrintProcessor_pPrintProcessorName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo_, NDR_POINTER_UNIQUE, "Pointer to PPrintProcessorInfo (uint8)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrintProcessors( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pPrintProcessorInfo, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrintProcessors";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrintProcessors";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessors_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory_, NDR_POINTER_UNIQUE, "Pointer to PPrintProcessorDirectory (uint8)",hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetPrintProcessorDirectory( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pPrintProcessorDirectory, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrintProcessorDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrintProcessorDirectory";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrintProcessorDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrintProcessorDirectory";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrintProcessorDirectory_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPorts_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPorts_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPorts_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort_, NDR_POINTER_UNIQUE, "Pointer to PPort (uint8)",hf_iremotewinspool_winspool_AsyncEnumPorts_pPort);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPorts_pPort, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPorts_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumPorts_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPorts_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumPorts_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPorts_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPorts( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pPort, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPorts";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPorts";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_pPort(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPorts_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncEnumMonitors_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumMonitors_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumMonitors_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor_, NDR_POINTER_UNIQUE, "Pointer to PMonitor (uint8)",hf_iremotewinspool_winspool_AsyncEnumMonitors_pMonitor);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumMonitors_pMonitor, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumMonitors_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumMonitors_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumMonitors_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumMonitors_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumMonitors_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumMonitors( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pMonitor, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumMonitors";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumMonitors";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_pMonitor(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumMonitors_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPort_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncAddPort_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPort_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortContainer_, NDR_POINTER_REF, "Pointer to PPortContainer (spoolss_SetPortInfoContainer)",hf_iremotewinspool_winspool_AsyncAddPort_pPortContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortVarContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortVarContainer_, NDR_POINTER_REF, "Pointer to PPortVarContainer (spoolss_PortVarContainer)",hf_iremotewinspool_winspool_AsyncAddPort_pPortVarContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortVarContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pMonitorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPort_pMonitorName_, NDR_POINTER_REF, "Pointer to PMonitorName (uint16)",hf_iremotewinspool_winspool_AsyncAddPort_pMonitorName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPort_pMonitorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPort_pMonitorName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddPort( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [in] [ref] spoolss_SetPortInfoContainer *pPortContainer, */
+/* IDL: [in] [ref] spoolss_PortVarContainer *pPortVarContainer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pMonitorName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddPort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddPort";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPort_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPort_pPortVarContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPort_pMonitorName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPort_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPort_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncSetPort_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPort_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSetPort_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortName_, NDR_POINTER_UNIQUE, "Pointer to PPortName (uint16)",hf_iremotewinspool_winspool_AsyncSetPort_pPortName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncSetPort_pPortName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortContainer_, NDR_POINTER_REF, "Pointer to PPortContainer (spoolss_SetPortInfoContainer)",hf_iremotewinspool_winspool_AsyncSetPort_pPortContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetPort( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pPortName, */
+/* IDL: [in] [ref] spoolss_SetPortInfoContainer *pPortContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetPort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetPort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetPort";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPort_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetPort_pPortContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddMonitor_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddMonitor_Name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_iremotewinspool_winspool_AsyncAddMonitor_Name);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddMonitor_Name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddMonitor_Name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddMonitor_pMonitorContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddMonitor_pMonitorContainer_, NDR_POINTER_REF, "Pointer to PMonitorContainer (spoolss_MonitorContainer)",hf_iremotewinspool_winspool_AsyncAddMonitor_pMonitorContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddMonitor_pMonitorContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddMonitor( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *Name, */
+/* IDL: [in] [ref] spoolss_MonitorContainer *pMonitorContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddMonitor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddMonitor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddMonitor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddMonitor";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddMonitor_Name(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddMonitor_pMonitorContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_Name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_iremotewinspool_winspool_AsyncDeleteMonitor_Name);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_Name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeleteMonitor_Name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncDeleteMonitor_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeleteMonitor_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pMonitorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pMonitorName_, NDR_POINTER_REF, "Pointer to PMonitorName (uint16)",hf_iremotewinspool_winspool_AsyncDeleteMonitor_pMonitorName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pMonitorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeleteMonitor_pMonitorName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeleteMonitor( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *Name, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pMonitorName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeleteMonitor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeleteMonitor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeleteMonitor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeleteMonitor";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_Name(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteMonitor_pMonitorName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_Name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_Name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_Name);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_Name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_Name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pEnvironment_, NDR_POINTER_UNIQUE, "Pointer to PEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pPrintProcessorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pPrintProcessorName_, NDR_POINTER_REF, "Pointer to PPrintProcessorName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pPrintProcessorName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pPrintProcessorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pPrintProcessorName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePrintProcessor( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *Name, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pEnvironment, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pPrintProcessorName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrintProcessor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrintProcessor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrintProcessor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrintProcessor";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_Name(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrintProcessor_pPrintProcessorName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pName_, NDR_POINTER_UNIQUE, "Pointer to PName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName_, NDR_POINTER_UNIQUE, "Pointer to PPrintProcessorName (uint16)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_Level, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes_, NDR_POINTER_UNIQUE, "Pointer to PDatatypes (uint8)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPrintProcessorDatatypes( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pName, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pPrintProcessorName, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pDatatypes, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrintProcessorDatatypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrintProcessorDatatypes";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPrintProcessorDatatypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPrintProcessorDatatypes";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_Level(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pServer_, NDR_POINTER_UNIQUE, "Pointer to PServer (uint16)",hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrinterName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrinterName_, NDR_POINTER_REF, "Pointer to PPrinterName (uint16)",hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrinterName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrinterName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrinterName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrintServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrintServer_, NDR_POINTER_REF, "Pointer to PPrintServer (uint16)",hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrintServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrintServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrintServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pProvider_, NDR_POINTER_REF, "Pointer to PProvider (uint16)",hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pProvider);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pProvider, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncAddPerMachineConnection( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pPrinterName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pPrintServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pProvider */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPerMachineConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncAddPerMachineConnection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncAddPerMachineConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncAddPerMachineConnection";
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrinterName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pPrintServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncAddPerMachineConnection_pProvider(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pServer_, NDR_POINTER_UNIQUE, "Pointer to PServer (uint16)",hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pPrinterName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pPrinterName_, NDR_POINTER_REF, "Pointer to PPrinterName (uint16)",hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pPrinterName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pPrinterName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pPrinterName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeletePerMachineConnection( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pPrinterName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePerMachineConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePerMachineConnection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePerMachineConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePerMachineConnection";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePerMachineConnection_pPrinterName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pServer_, NDR_POINTER_UNIQUE, "Pointer to PServer (uint16)",hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum_, NDR_POINTER_UNIQUE, "Pointer to PPrinterEnum (uint8)",hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pPrinterEnum);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pPrinterEnum, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcbNeeded(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcbNeeded_, NDR_POINTER_REF, "Pointer to PcbNeeded (uint32)",hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcbNeeded);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcbNeeded_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcbNeeded, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcReturned_, NDR_POINTER_REF, "Pointer to PcReturned (uint32)",hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcReturned);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcReturned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumPerMachineConnections( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pServer, */
+/* IDL: [in] [out] [size_is(cbBuf)] [unique(1)] uint8 *pPrinterEnum, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcbNeeded, */
+/* IDL: [out] [ref] uint32 *pcReturned */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPerMachineConnections_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumPerMachineConnections";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcbNeeded(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pcReturned(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumPerMachineConnections_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumPerMachineConnections";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_pPrinterEnum(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumPerMachineConnections_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter_, NDR_POINTER_REF, "Pointer to PNotifyFilter (winspool_PrintPropertiesCollection)",hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_PrintPropertiesCollection(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter,0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_phRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_phRpcHandle_, NDR_POINTER_REF, "Pointer to PhRpcHandle (policy_handle)",hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_phRpcHandle);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_phRpcHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_phRpcHandle, 0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_SyncRegisterForRemoteNotifications( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] [ref] winspool_PrintPropertiesCollection *pNotifyFilter, */
+/* IDL: [out] [ref] policy_handle *phRpcHandle */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_SyncRegisterForRemoteNotifications_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_SyncRegisterForRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_phRpcHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_SyncRegisterForRemoteNotifications_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_SyncRegisterForRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle_, NDR_POINTER_REF, "Pointer to PhRpcHandle (policy_handle)",hf_iremotewinspool_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle, 0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_SyncUnRegisterForRemoteNotifications( */
+/* IDL: [in] [out] [ref] policy_handle *phRpcHandle */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_SyncUnRegisterForRemoteNotifications_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_SyncUnRegisterForRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_SyncUnRegisterForRemoteNotifications_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_SyncUnRegisterForRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_hRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_hRpcHandle, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_pNotifyFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_pNotifyFilter_, NDR_POINTER_REF, "Pointer to PNotifyFilter (winspool_PrintPropertiesCollection)",hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_pNotifyFilter);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_pNotifyFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_PrintPropertiesCollection(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_pNotifyFilter,0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData_, NDR_POINTER_REF, "Pointer to PpNotifyData (winspool_PrintPropertiesCollection)",hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData__, NDR_POINTER_UNIQUE, "Pointer to PpNotifyData (winspool_PrintPropertiesCollection)",hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_PrintPropertiesCollection(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData,0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_SyncRefreshRemoteNotifications( */
+/* IDL: [in] policy_handle hRpcHandle, */
+/* IDL: [in] [ref] winspool_PrintPropertiesCollection *pNotifyFilter, */
+/* IDL: [out] [ref] winspool_PrintPropertiesCollection **ppNotifyData */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_SyncRefreshRemoteNotifications_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_SyncRefreshRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_ppNotifyData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_SyncRefreshRemoteNotifications_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_SyncRefreshRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_hRpcHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_SyncRefreshRemoteNotifications_pNotifyFilter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_hRpcHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_hRpcHandle, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData_, NDR_POINTER_REF, "Pointer to PpNotifyData (winspool_PrintPropertiesCollection)",hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData__, NDR_POINTER_UNIQUE, "Pointer to PpNotifyData (winspool_PrintPropertiesCollection)",hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_struct_winspool_PrintPropertiesCollection(tvb,offset,pinfo,tree,di,drep,hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData,0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncGetRemoteNotifications( */
+/* IDL: [in] policy_handle hRpcHandle, */
+/* IDL: [out] [ref] winspool_PrintPropertiesCollection **ppNotifyData */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetRemoteNotifications_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_ppNotifyData(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetRemoteNotifications_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetRemoteNotifications";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetRemoteNotifications_hRpcHandle(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszServer_, NDR_POINTER_UNIQUE, "Pointer to PszServer (uint16)",hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath_, NDR_POINTER_UNIQUE, "Pointer to PszInfPath (uint16)",hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName_, NDR_POINTER_REF, "Pointer to PszDriverName (uint16)",hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment_, NDR_POINTER_REF, "Pointer to PszEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_bitmap_winspool_InstallPrinterDriverFromPackageFlags(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags, 0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncInstallPrinterDriverFromPackage( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszServer, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszInfPath, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszDriverName, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszEnvironment, */
+/* IDL: [in] winspool_InstallPrinterDriverFromPackageFlags dwFlags */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncInstallPrinterDriverFromPackage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncInstallPrinterDriverFromPackage";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncInstallPrinterDriverFromPackage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncInstallPrinterDriverFromPackage";
+       offset = iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszServer_, NDR_POINTER_UNIQUE, "Pointer to PszServer (uint16)",hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszInfPath_, NDR_POINTER_REF, "Pointer to PszInfPath (uint16)",hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszInfPath);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszInfPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment_, NDR_POINTER_REF, "Pointer to PszEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = iremotewinspool_dissect_bitmap_winspool_UploadPrinterDriverPackageFlags(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath_, NDR_POINTER_UNIQUE, "Pointer to PszDestInfPath (uint16)",hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath_, NDR_POINTER_REF, "Pointer to PcchDestInfPath (uint32)",hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath, 0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncUploadPrinterDriverPackage( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszInfPath, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszEnvironment, */
+/* IDL: [in] winspool_UploadPrinterDriverPackageFlags dwFlags, */
+/* IDL: [charset(UTF16)] [in] [out] [size_is(*pcchDestInfPath)] [unique(1)] uint16 *pszDestInfPath, */
+/* IDL: [in] [out] [ref] uint32 *pcchDestInfPath */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncUploadPrinterDriverPackage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncUploadPrinterDriverPackage";
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncUploadPrinterDriverPackage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncUploadPrinterDriverPackage";
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_dwFlags(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszServer_, NDR_POINTER_UNIQUE, "Pointer to PszServer (uint16)",hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszEnvironment_, NDR_POINTER_REF, "Pointer to PszEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies_, NDR_POINTER_REF, "Pointer to PszzCoreDriverDependencies (uint16)",hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers_, NDR_POINTER_REF, "Pointer to PCorePrinterDrivers (spoolss_CorePrinterDriver)",hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncGetCorePrinterDrivers( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszEnvironment, */
+/* IDL: [in] uint32 cchCoreDrivers, */
+/* IDL: [in] [ref] [size_is(cchCoreDrivers)] uint16 *pszzCoreDriverDependencies, */
+/* IDL: [in] uint32 cCorePrinterDrivers, */
+/* IDL: [out] [ref] [size_is(cCorePrinterDrivers)] spoolss_CorePrinterDriver *pCorePrinterDrivers */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetCorePrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetCorePrinterDrivers";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetCorePrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetCorePrinterDrivers";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszServer_, NDR_POINTER_UNIQUE, "Pointer to PszServer (uint16)",hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment_, NDR_POINTER_REF, "Pointer to PszEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID, NULL);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion, NULL);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled_, NDR_POINTER_REF, "Pointer to PbDriverInstalled (int32)",hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled, 0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncCorePrinterDriverInstalled( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszEnvironment, */
+/* IDL: [in] GUID CoreDriverGUID, */
+/* IDL: [in] NTTIME ftDriverDate, */
+/* IDL: [in] hyper dwlDriverVersion, */
+/* IDL: [out] [ref] int32 *pbDriverInstalled */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncCorePrinterDriverInstalled_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncCorePrinterDriverInstalled";
+       offset = iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncCorePrinterDriverInstalled_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncCorePrinterDriverInstalled";
+       offset = iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszServer_, NDR_POINTER_UNIQUE, "Pointer to PszServer (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment_, NDR_POINTER_REF, "Pointer to PszEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage_, NDR_POINTER_UNIQUE, "Pointer to PszLanguage (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID_, NDR_POINTER_REF, "Pointer to PszPackageID (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab_, NDR_POINTER_UNIQUE, "Pointer to PszDriverPackageCab (uint16)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize_, NDR_POINTER_REF, "Pointer to PcchRequiredSize (uint32)",hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize, 0);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncGetPrinterDriverPackagePath( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszEnvironment, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszLanguage, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszPackageID, */
+/* IDL: [in] [out] [size_is(cchDriverPackageCab)] [unique(1)] uint16 *pszDriverPackageCab, */
+/* IDL: [in] uint32 cchDriverPackageCab, */
+/* IDL: [out] [ref] uint32 *pcchRequiredSize */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDriverPackagePath_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDriverPackagePath";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetPrinterDriverPackagePath_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetPrinterDriverPackagePath";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszServer_, NDR_POINTER_UNIQUE, "Pointer to PszServer (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszServer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszServer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszServer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszInfPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszInfPath_, NDR_POINTER_REF, "Pointer to PszInfPath (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszInfPath);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszInfPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszInfPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment_, NDR_POINTER_REF, "Pointer to PszEnvironment (uint16)",hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: HRESULT winspool_AsyncDeletePrinterDriverPackage( */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pszServer, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszInfPath, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszEnvironment */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverPackage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDriverPackage";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_hresult, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, HRES_errors, "Unknown HRES error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverPackage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeletePrinterDriverPackage";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszServer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszInfPath(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncReadPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf_, NDR_POINTER_REF, "Pointer to PBuf (uint8)",hf_iremotewinspool_winspool_AsyncReadPrinter_pBuf);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf__);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncReadPrinter_pBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncReadPrinter_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pcNoBytesRead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pcNoBytesRead_, NDR_POINTER_REF, "Pointer to PcNoBytesRead (uint32)",hf_iremotewinspool_winspool_AsyncReadPrinter_pcNoBytesRead);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pcNoBytesRead_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncReadPrinter_pcNoBytesRead, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncReadPrinter( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [out] [ref] [size_is(cbBuf)] uint8 *pBuf, */
+/* IDL: [in] uint32 cbBuf, */
+/* IDL: [out] [ref] uint32 *pcNoBytesRead */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncReadPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncReadPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncReadPrinter_pcNoBytesRead(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncReadPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncReadPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncReadPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncReadPrinter_cbBuf(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncResetPrinter_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncResetPrinter_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDatatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDatatype_, NDR_POINTER_UNIQUE, "Pointer to PDatatype (uint16)",hf_iremotewinspool_winspool_AsyncResetPrinter_pDatatype);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDatatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncResetPrinter_pDatatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDevModeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDevModeContainer_, NDR_POINTER_REF, "Pointer to PDevModeContainer (spoolss_DevmodeContainer)",hf_iremotewinspool_winspool_AsyncResetPrinter_pDevModeContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDevModeContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncResetPrinter( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [charset(UTF16)] [in] [unique(1)] uint16 *pDatatype, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *pDevModeContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncResetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncResetPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncResetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncResetPrinter";
+       offset = iremotewinspool_dissect_element_winspool_AsyncResetPrinter_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDatatype(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncResetPrinter_pDevModeContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_JobId, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pszName_, NDR_POINTER_REF, "Pointer to PszName (uint16)",hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pszName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pszName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pValue_, NDR_POINTER_REF, "Pointer to PValue (spoolss_PrintPropertyValue)",hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pValue);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncGetJobNamedPropertyValue( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszName, */
+/* IDL: [out] [ref] spoolss_PrintPropertyValue *pValue */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetJobNamedPropertyValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncGetJobNamedPropertyValue";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pValue(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncGetJobNamedPropertyValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncGetJobNamedPropertyValue";
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncGetJobNamedPropertyValue_pszName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_JobId, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_pProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_pProperty_, NDR_POINTER_REF, "Pointer to PProperty (spoolss_PrintNamedProperty)",hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_pProperty);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_pProperty_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncSetJobNamedProperty( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [in] [ref] spoolss_PrintNamedProperty *pProperty */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetJobNamedProperty_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncSetJobNamedProperty";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncSetJobNamedProperty_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncSetJobNamedProperty";
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncSetJobNamedProperty_pProperty(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_JobId, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_pszName_, NDR_POINTER_REF, "Pointer to PszName (uint16)",hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_pszName);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(guint16), hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_pszName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncDeleteJobNamedProperty( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [charset(UTF16)] [in] [ref] uint16 *pszName */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeleteJobNamedProperty_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncDeleteJobNamedProperty";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncDeleteJobNamedProperty_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncDeleteJobNamedProperty";
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncDeleteJobNamedProperty_pszName(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_JobId, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_pcProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_pcProperties_, NDR_POINTER_REF, "Pointer to PcProperties (uint32)",hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_pcProperties);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_pcProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_pcProperties, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties_, NDR_POINTER_REF, "Pointer to PpProperties (spoolss_PrintNamedProperty)",hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_ppProperties);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties__, NDR_POINTER_UNIQUE, "Pointer to PpProperties (spoolss_PrintNamedProperty)",hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_ppProperties);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties___);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncEnumJobNamedProperties( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [out] [ref] uint32 *pcProperties, */
+/* IDL: [out] [ref] [size_is(,*pcProperties)] spoolss_PrintNamedProperty **ppProperties */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumJobNamedProperties_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncEnumJobNamedProperties";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_pcProperties(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_ppProperties(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncEnumJobNamedProperties_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncEnumJobNamedProperties";
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncEnumJobNamedProperties_JobId(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, di, drep, iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer_, NDR_POINTER_REF, "Pointer to PBranchOfficeJobDataContainer (spoolss_BranchOfficeJobDataContainer)",hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer);
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);
+
+       return offset;
+}
+
+/* IDL: WERROR winspool_AsyncLogJobInfoForBranchOffice( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [in] [ref] spoolss_BranchOfficeJobDataContainer *pBranchOfficeJobDataContainer */
+/* IDL: ); */
+
+static int
+iremotewinspool_dissect_winspool_AsyncLogJobInfoForBranchOffice_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       di->dcerpc_procedure_name="winspool_AsyncLogJobInfoForBranchOffice";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf_iremotewinspool_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+iremotewinspool_dissect_winspool_AsyncLogJobInfoForBranchOffice_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_)
+{
+       di->dcerpc_procedure_name="winspool_AsyncLogJobInfoForBranchOffice";
+       offset = iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_hPrinter(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       offset = iremotewinspool_dissect_element_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer(tvb, offset, pinfo, tree, di, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, di, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector iremotewinspool_dissectors[] = {
+       { 0, "winspool_AsyncOpenPrinter",
+          iremotewinspool_dissect_winspool_AsyncOpenPrinter_request, iremotewinspool_dissect_winspool_AsyncOpenPrinter_response},
+       { 1, "winspool_AsyncAddPrinter",
+          iremotewinspool_dissect_winspool_AsyncAddPrinter_request, iremotewinspool_dissect_winspool_AsyncAddPrinter_response},
+       { 2, "winspool_AsyncSetJob",
+          iremotewinspool_dissect_winspool_AsyncSetJob_request, iremotewinspool_dissect_winspool_AsyncSetJob_response},
+       { 3, "winspool_AsyncGetJob",
+          iremotewinspool_dissect_winspool_AsyncGetJob_request, iremotewinspool_dissect_winspool_AsyncGetJob_response},
+       { 4, "winspool_AsyncEnumJobs",
+          iremotewinspool_dissect_winspool_AsyncEnumJobs_request, iremotewinspool_dissect_winspool_AsyncEnumJobs_response},
+       { 5, "winspool_AsyncAddJob",
+          iremotewinspool_dissect_winspool_AsyncAddJob_request, iremotewinspool_dissect_winspool_AsyncAddJob_response},
+       { 6, "winspool_AsyncScheduleJob",
+          iremotewinspool_dissect_winspool_AsyncScheduleJob_request, iremotewinspool_dissect_winspool_AsyncScheduleJob_response},
+       { 7, "winspool_AsyncDeletePrinter",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinter_request, iremotewinspool_dissect_winspool_AsyncDeletePrinter_response},
+       { 8, "winspool_AsyncSetPrinter",
+          iremotewinspool_dissect_winspool_AsyncSetPrinter_request, iremotewinspool_dissect_winspool_AsyncSetPrinter_response},
+       { 9, "winspool_AsyncGetPrinter",
+          iremotewinspool_dissect_winspool_AsyncGetPrinter_request, iremotewinspool_dissect_winspool_AsyncGetPrinter_response},
+       { 10, "winspool_AsyncStartDocPrinter",
+          iremotewinspool_dissect_winspool_AsyncStartDocPrinter_request, iremotewinspool_dissect_winspool_AsyncStartDocPrinter_response},
+       { 11, "winspool_AsyncStartPagePrinter",
+          iremotewinspool_dissect_winspool_AsyncStartPagePrinter_request, iremotewinspool_dissect_winspool_AsyncStartPagePrinter_response},
+       { 12, "winspool_AsyncWritePrinter",
+          iremotewinspool_dissect_winspool_AsyncWritePrinter_request, iremotewinspool_dissect_winspool_AsyncWritePrinter_response},
+       { 13, "winspool_AsyncEndPagePrinter",
+          iremotewinspool_dissect_winspool_AsyncEndPagePrinter_request, iremotewinspool_dissect_winspool_AsyncEndPagePrinter_response},
+       { 14, "winspool_AsyncEndDocPrinter",
+          iremotewinspool_dissect_winspool_AsyncEndDocPrinter_request, iremotewinspool_dissect_winspool_AsyncEndDocPrinter_response},
+       { 15, "winspool_AsyncAbortPrinter",
+          iremotewinspool_dissect_winspool_AsyncAbortPrinter_request, iremotewinspool_dissect_winspool_AsyncAbortPrinter_response},
+       { 16, "winspool_AsyncGetPrinterData",
+          iremotewinspool_dissect_winspool_AsyncGetPrinterData_request, iremotewinspool_dissect_winspool_AsyncGetPrinterData_response},
+       { 17, "winspool_AsyncGetPrinterDataEx",
+          iremotewinspool_dissect_winspool_AsyncGetPrinterDataEx_request, iremotewinspool_dissect_winspool_AsyncGetPrinterDataEx_response},
+       { 18, "winspool_AsyncSetPrinterData",
+          iremotewinspool_dissect_winspool_AsyncSetPrinterData_request, iremotewinspool_dissect_winspool_AsyncSetPrinterData_response},
+       { 19, "winspool_AsyncSetPrinterDataEx",
+          iremotewinspool_dissect_winspool_AsyncSetPrinterDataEx_request, iremotewinspool_dissect_winspool_AsyncSetPrinterDataEx_response},
+       { 20, "winspool_AsyncClosePrinter",
+          iremotewinspool_dissect_winspool_AsyncClosePrinter_request, iremotewinspool_dissect_winspool_AsyncClosePrinter_response},
+       { 21, "winspool_AsyncAddForm",
+          iremotewinspool_dissect_winspool_AsyncAddForm_request, iremotewinspool_dissect_winspool_AsyncAddForm_response},
+       { 22, "winspool_AsyncDeleteForm",
+          iremotewinspool_dissect_winspool_AsyncDeleteForm_request, iremotewinspool_dissect_winspool_AsyncDeleteForm_response},
+       { 23, "winspool_AsyncGetForm",
+          iremotewinspool_dissect_winspool_AsyncGetForm_request, iremotewinspool_dissect_winspool_AsyncGetForm_response},
+       { 24, "winspool_AsyncSetForm",
+          iremotewinspool_dissect_winspool_AsyncSetForm_request, iremotewinspool_dissect_winspool_AsyncSetForm_response},
+       { 25, "winspool_AsyncEnumForms",
+          iremotewinspool_dissect_winspool_AsyncEnumForms_request, iremotewinspool_dissect_winspool_AsyncEnumForms_response},
+       { 26, "winspool_AsyncGetPrinterDriver",
+          iremotewinspool_dissect_winspool_AsyncGetPrinterDriver_request, iremotewinspool_dissect_winspool_AsyncGetPrinterDriver_response},
+       { 27, "winspool_AsyncEnumPrinterData",
+          iremotewinspool_dissect_winspool_AsyncEnumPrinterData_request, iremotewinspool_dissect_winspool_AsyncEnumPrinterData_response},
+       { 28, "winspool_AsyncEnumPrinterDataEx",
+          iremotewinspool_dissect_winspool_AsyncEnumPrinterDataEx_request, iremotewinspool_dissect_winspool_AsyncEnumPrinterDataEx_response},
+       { 29, "winspool_AsyncEnumPrinterKey",
+          iremotewinspool_dissect_winspool_AsyncEnumPrinterKey_request, iremotewinspool_dissect_winspool_AsyncEnumPrinterKey_response},
+       { 30, "winspool_AsyncDeletePrinterData",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterData_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterData_response},
+       { 31, "winspool_AsyncDeletePrinterDataEx",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterDataEx_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterDataEx_response},
+       { 32, "winspool_AsyncDeletePrinterKey",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterKey_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterKey_response},
+       { 33, "winspool_AsyncXcvData",
+          iremotewinspool_dissect_winspool_AsyncXcvData_request, iremotewinspool_dissect_winspool_AsyncXcvData_response},
+       { 34, "winspool_AsyncSendRecvBidiData",
+          iremotewinspool_dissect_winspool_AsyncSendRecvBidiData_request, iremotewinspool_dissect_winspool_AsyncSendRecvBidiData_response},
+       { 35, "winspool_AsyncCreatePrinterIC",
+          iremotewinspool_dissect_winspool_AsyncCreatePrinterIC_request, iremotewinspool_dissect_winspool_AsyncCreatePrinterIC_response},
+       { 36, "winspool_AsyncPlayGdiScriptOnPrinterIC",
+          iremotewinspool_dissect_winspool_AsyncPlayGdiScriptOnPrinterIC_request, iremotewinspool_dissect_winspool_AsyncPlayGdiScriptOnPrinterIC_response},
+       { 37, "winspool_AsyncDeletePrinterIC",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterIC_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterIC_response},
+       { 38, "winspool_AsyncEnumPrinters",
+          iremotewinspool_dissect_winspool_AsyncEnumPrinters_request, iremotewinspool_dissect_winspool_AsyncEnumPrinters_response},
+       { 39, "winspool_AsyncAddPrinterDriver",
+          iremotewinspool_dissect_winspool_AsyncAddPrinterDriver_request, iremotewinspool_dissect_winspool_AsyncAddPrinterDriver_response},
+       { 40, "winspool_AsyncEnumPrinterDrivers",
+          iremotewinspool_dissect_winspool_AsyncEnumPrinterDrivers_request, iremotewinspool_dissect_winspool_AsyncEnumPrinterDrivers_response},
+       { 41, "winspool_AsyncGetPrinterDriverDirectory",
+          iremotewinspool_dissect_winspool_AsyncGetPrinterDriverDirectory_request, iremotewinspool_dissect_winspool_AsyncGetPrinterDriverDirectory_response},
+       { 42, "winspool_AsyncDeletePrinterDriver",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterDriver_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterDriver_response},
+       { 43, "winspool_AsyncDeletePrinterDriverEx",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverEx_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverEx_response},
+       { 44, "winspool_AsyncAddPrintProcessor",
+          iremotewinspool_dissect_winspool_AsyncAddPrintProcessor_request, iremotewinspool_dissect_winspool_AsyncAddPrintProcessor_response},
+       { 45, "winspool_AsyncEnumPrintProcessors",
+          iremotewinspool_dissect_winspool_AsyncEnumPrintProcessors_request, iremotewinspool_dissect_winspool_AsyncEnumPrintProcessors_response},
+       { 46, "winspool_AsyncGetPrintProcessorDirectory",
+          iremotewinspool_dissect_winspool_AsyncGetPrintProcessorDirectory_request, iremotewinspool_dissect_winspool_AsyncGetPrintProcessorDirectory_response},
+       { 47, "winspool_AsyncEnumPorts",
+          iremotewinspool_dissect_winspool_AsyncEnumPorts_request, iremotewinspool_dissect_winspool_AsyncEnumPorts_response},
+       { 48, "winspool_AsyncEnumMonitors",
+          iremotewinspool_dissect_winspool_AsyncEnumMonitors_request, iremotewinspool_dissect_winspool_AsyncEnumMonitors_response},
+       { 49, "winspool_AsyncAddPort",
+          iremotewinspool_dissect_winspool_AsyncAddPort_request, iremotewinspool_dissect_winspool_AsyncAddPort_response},
+       { 50, "winspool_AsyncSetPort",
+          iremotewinspool_dissect_winspool_AsyncSetPort_request, iremotewinspool_dissect_winspool_AsyncSetPort_response},
+       { 51, "winspool_AsyncAddMonitor",
+          iremotewinspool_dissect_winspool_AsyncAddMonitor_request, iremotewinspool_dissect_winspool_AsyncAddMonitor_response},
+       { 52, "winspool_AsyncDeleteMonitor",
+          iremotewinspool_dissect_winspool_AsyncDeleteMonitor_request, iremotewinspool_dissect_winspool_AsyncDeleteMonitor_response},
+       { 53, "winspool_AsyncDeletePrintProcessor",
+          iremotewinspool_dissect_winspool_AsyncDeletePrintProcessor_request, iremotewinspool_dissect_winspool_AsyncDeletePrintProcessor_response},
+       { 54, "winspool_AsyncEnumPrintProcessorDatatypes",
+          iremotewinspool_dissect_winspool_AsyncEnumPrintProcessorDatatypes_request, iremotewinspool_dissect_winspool_AsyncEnumPrintProcessorDatatypes_response},
+       { 55, "winspool_AsyncAddPerMachineConnection",
+          iremotewinspool_dissect_winspool_AsyncAddPerMachineConnection_request, iremotewinspool_dissect_winspool_AsyncAddPerMachineConnection_response},
+       { 56, "winspool_AsyncDeletePerMachineConnection",
+          iremotewinspool_dissect_winspool_AsyncDeletePerMachineConnection_request, iremotewinspool_dissect_winspool_AsyncDeletePerMachineConnection_response},
+       { 57, "winspool_AsyncEnumPerMachineConnections",
+          iremotewinspool_dissect_winspool_AsyncEnumPerMachineConnections_request, iremotewinspool_dissect_winspool_AsyncEnumPerMachineConnections_response},
+       { 58, "winspool_SyncRegisterForRemoteNotifications",
+          iremotewinspool_dissect_winspool_SyncRegisterForRemoteNotifications_request, iremotewinspool_dissect_winspool_SyncRegisterForRemoteNotifications_response},
+       { 59, "winspool_SyncUnRegisterForRemoteNotifications",
+          iremotewinspool_dissect_winspool_SyncUnRegisterForRemoteNotifications_request, iremotewinspool_dissect_winspool_SyncUnRegisterForRemoteNotifications_response},
+       { 60, "winspool_SyncRefreshRemoteNotifications",
+          iremotewinspool_dissect_winspool_SyncRefreshRemoteNotifications_request, iremotewinspool_dissect_winspool_SyncRefreshRemoteNotifications_response},
+       { 61, "winspool_AsyncGetRemoteNotifications",
+          iremotewinspool_dissect_winspool_AsyncGetRemoteNotifications_request, iremotewinspool_dissect_winspool_AsyncGetRemoteNotifications_response},
+       { 62, "winspool_AsyncInstallPrinterDriverFromPackage",
+          iremotewinspool_dissect_winspool_AsyncInstallPrinterDriverFromPackage_request, iremotewinspool_dissect_winspool_AsyncInstallPrinterDriverFromPackage_response},
+       { 63, "winspool_AsyncUploadPrinterDriverPackage",
+          iremotewinspool_dissect_winspool_AsyncUploadPrinterDriverPackage_request, iremotewinspool_dissect_winspool_AsyncUploadPrinterDriverPackage_response},
+       { 64, "winspool_AsyncGetCorePrinterDrivers",
+          iremotewinspool_dissect_winspool_AsyncGetCorePrinterDrivers_request, iremotewinspool_dissect_winspool_AsyncGetCorePrinterDrivers_response},
+       { 65, "winspool_AsyncCorePrinterDriverInstalled",
+          iremotewinspool_dissect_winspool_AsyncCorePrinterDriverInstalled_request, iremotewinspool_dissect_winspool_AsyncCorePrinterDriverInstalled_response},
+       { 66, "winspool_AsyncGetPrinterDriverPackagePath",
+          iremotewinspool_dissect_winspool_AsyncGetPrinterDriverPackagePath_request, iremotewinspool_dissect_winspool_AsyncGetPrinterDriverPackagePath_response},
+       { 67, "winspool_AsyncDeletePrinterDriverPackage",
+          iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverPackage_request, iremotewinspool_dissect_winspool_AsyncDeletePrinterDriverPackage_response},
+       { 68, "winspool_AsyncReadPrinter",
+          iremotewinspool_dissect_winspool_AsyncReadPrinter_request, iremotewinspool_dissect_winspool_AsyncReadPrinter_response},
+       { 69, "winspool_AsyncResetPrinter",
+          iremotewinspool_dissect_winspool_AsyncResetPrinter_request, iremotewinspool_dissect_winspool_AsyncResetPrinter_response},
+       { 70, "winspool_AsyncGetJobNamedPropertyValue",
+          iremotewinspool_dissect_winspool_AsyncGetJobNamedPropertyValue_request, iremotewinspool_dissect_winspool_AsyncGetJobNamedPropertyValue_response},
+       { 71, "winspool_AsyncSetJobNamedProperty",
+          iremotewinspool_dissect_winspool_AsyncSetJobNamedProperty_request, iremotewinspool_dissect_winspool_AsyncSetJobNamedProperty_response},
+       { 72, "winspool_AsyncDeleteJobNamedProperty",
+          iremotewinspool_dissect_winspool_AsyncDeleteJobNamedProperty_request, iremotewinspool_dissect_winspool_AsyncDeleteJobNamedProperty_response},
+       { 73, "winspool_AsyncEnumJobNamedProperties",
+          iremotewinspool_dissect_winspool_AsyncEnumJobNamedProperties_request, iremotewinspool_dissect_winspool_AsyncEnumJobNamedProperties_response},
+       { 74, "winspool_AsyncLogJobInfoForBranchOffice",
+          iremotewinspool_dissect_winspool_AsyncLogJobInfoForBranchOffice_request, iremotewinspool_dissect_winspool_AsyncLogJobInfoForBranchOffice_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_iremotewinspool(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_iremotewinspool_hresult,
+         { "HRES Windows Error", "iremotewinspool.hresult", FT_UINT32, BASE_HEX, VALS(HRES_errors), 0, NULL, HFILL }},
+       { &hf_iremotewinspool_opnum,
+         { "Operation", "iremotewinspool.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_werror,
+         { "Windows Error", "iremotewinspool.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAbortPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncAbortPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddForm_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncAddForm.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddForm_pFormInfoContainer,
+         { "PFormInfoContainer", "iremotewinspool.winspool_AsyncAddForm.pFormInfoContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddJob_Level,
+         { "Level", "iremotewinspool.winspool_AsyncAddJob.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddJob_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncAddJob.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddJob_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncAddJob.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddJob_pAddJob,
+         { "PAddJob", "iremotewinspool.winspool_AsyncAddJob.pAddJob", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddJob_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncAddJob.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddMonitor_Name,
+         { "Name", "iremotewinspool.winspool_AsyncAddMonitor.Name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddMonitor_pMonitorContainer,
+         { "PMonitorContainer", "iremotewinspool.winspool_AsyncAddMonitor.pMonitorContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrintServer,
+         { "PPrintServer", "iremotewinspool.winspool_AsyncAddPerMachineConnection.pPrintServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pPrinterName,
+         { "PPrinterName", "iremotewinspool.winspool_AsyncAddPerMachineConnection.pPrinterName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pProvider,
+         { "PProvider", "iremotewinspool.winspool_AsyncAddPerMachineConnection.pProvider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPerMachineConnection_pServer,
+         { "PServer", "iremotewinspool.winspool_AsyncAddPerMachineConnection.pServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPort_pMonitorName,
+         { "PMonitorName", "iremotewinspool.winspool_AsyncAddPort.pMonitorName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPort_pName,
+         { "PName", "iremotewinspool.winspool_AsyncAddPort.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPort_pPortContainer,
+         { "PPortContainer", "iremotewinspool.winspool_AsyncAddPort.pPortContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPort_pPortVarContainer,
+         { "PPortVarContainer", "iremotewinspool.winspool_AsyncAddPort.pPortVarContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncAddPrintProcessor.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pName,
+         { "PName", "iremotewinspool.winspool_AsyncAddPrintProcessor.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPathName,
+         { "PPathName", "iremotewinspool.winspool_AsyncAddPrintProcessor.pPathName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrintProcessor_pPrintProcessorName,
+         { "PPrintProcessorName", "iremotewinspool.winspool_AsyncAddPrintProcessor.pPrintProcessorName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinterDriver_dwFileCopyFlags,
+         { "DwFileCopyFlags", "iremotewinspool.winspool_AsyncAddPrinterDriver.dwFileCopyFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pDriverContainer,
+         { "PDriverContainer", "iremotewinspool.winspool_AsyncAddPrinterDriver.pDriverContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinterDriver_pName,
+         { "PName", "iremotewinspool.winspool_AsyncAddPrinterDriver.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinter_pClientInfo,
+         { "PClientInfo", "iremotewinspool.winspool_AsyncAddPrinter.pClientInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinter_pDevModeContainer,
+         { "PDevModeContainer", "iremotewinspool.winspool_AsyncAddPrinter.pDevModeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinter_pHandle,
+         { "PHandle", "iremotewinspool.winspool_AsyncAddPrinter.pHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinter_pName,
+         { "PName", "iremotewinspool.winspool_AsyncAddPrinter.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinter_pPrinterContainer,
+         { "PPrinterContainer", "iremotewinspool.winspool_AsyncAddPrinter.pPrinterContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncAddPrinter_pSecurityContainer,
+         { "PSecurityContainer", "iremotewinspool.winspool_AsyncAddPrinter.pSecurityContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncClosePrinter_phPrinter,
+         { "PhPrinter", "iremotewinspool.winspool_AsyncClosePrinter.phPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_CoreDriverGUID,
+         { "CoreDriverGUID", "iremotewinspool.winspool_AsyncCorePrinterDriverInstalled.CoreDriverGUID", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_dwlDriverVersion,
+         { "DwlDriverVersion", "iremotewinspool.winspool_AsyncCorePrinterDriverInstalled.dwlDriverVersion", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_ftDriverDate,
+         { "FtDriverDate", "iremotewinspool.winspool_AsyncCorePrinterDriverInstalled.ftDriverDate", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pbDriverInstalled,
+         { "PbDriverInstalled", "iremotewinspool.winspool_AsyncCorePrinterDriverInstalled.pbDriverInstalled", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszEnvironment,
+         { "PszEnvironment", "iremotewinspool.winspool_AsyncCorePrinterDriverInstalled.pszEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCorePrinterDriverInstalled_pszServer,
+         { "PszServer", "iremotewinspool.winspool_AsyncCorePrinterDriverInstalled.pszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCreatePrinterIC_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncCreatePrinterIC.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pDevModeContainer,
+         { "PDevModeContainer", "iremotewinspool.winspool_AsyncCreatePrinterIC.pDevModeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncCreatePrinterIC_pHandle,
+         { "PHandle", "iremotewinspool.winspool_AsyncCreatePrinterIC.pHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteForm_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncDeleteForm.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteForm_pFormName,
+         { "PFormName", "iremotewinspool.winspool_AsyncDeleteForm.pFormName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncDeleteJobNamedProperty.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncDeleteJobNamedProperty.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteJobNamedProperty_pszName,
+         { "PszName", "iremotewinspool.winspool_AsyncDeleteJobNamedProperty.pszName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteMonitor_Name,
+         { "Name", "iremotewinspool.winspool_AsyncDeleteMonitor.Name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteMonitor_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncDeleteMonitor.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeleteMonitor_pMonitorName,
+         { "PMonitorName", "iremotewinspool.winspool_AsyncDeleteMonitor.pMonitorName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pPrinterName,
+         { "PPrinterName", "iremotewinspool.winspool_AsyncDeletePerMachineConnection.pPrinterName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePerMachineConnection_pServer,
+         { "PServer", "iremotewinspool.winspool_AsyncDeletePerMachineConnection.pServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_Name,
+         { "Name", "iremotewinspool.winspool_AsyncDeletePrintProcessor.Name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncDeletePrintProcessor.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrintProcessor_pPrintProcessorName,
+         { "PPrintProcessorName", "iremotewinspool.winspool_AsyncDeletePrintProcessor.pPrintProcessorName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncDeletePrinterDataEx.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pKeyName,
+         { "PKeyName", "iremotewinspool.winspool_AsyncDeletePrinterDataEx.pKeyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDataEx_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncDeletePrinterDataEx.pValueName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterData_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncDeletePrinterData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterData_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncDeletePrinterData.pValueName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwDeleteFlag,
+         { "DwDeleteFlag", "iremotewinspool.winspool_AsyncDeletePrinterDriverEx.dwDeleteFlag", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_dwVersionNum,
+         { "DwVersionNum", "iremotewinspool.winspool_AsyncDeletePrinterDriverEx.dwVersionNum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pDriverName,
+         { "PDriverName", "iremotewinspool.winspool_AsyncDeletePrinterDriverEx.pDriverName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncDeletePrinterDriverEx.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverEx_pName,
+         { "PName", "iremotewinspool.winspool_AsyncDeletePrinterDriverEx.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszEnvironment,
+         { "PszEnvironment", "iremotewinspool.winspool_AsyncDeletePrinterDriverPackage.pszEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszInfPath,
+         { "PszInfPath", "iremotewinspool.winspool_AsyncDeletePrinterDriverPackage.pszInfPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriverPackage_pszServer,
+         { "PszServer", "iremotewinspool.winspool_AsyncDeletePrinterDriverPackage.pszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pDriverName,
+         { "PDriverName", "iremotewinspool.winspool_AsyncDeletePrinterDriver.pDriverName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncDeletePrinterDriver.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterDriver_pName,
+         { "PName", "iremotewinspool.winspool_AsyncDeletePrinterDriver.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterIC_phPrinterIC,
+         { "PhPrinterIC", "iremotewinspool.winspool_AsyncDeletePrinterIC.phPrinterIC", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterKey_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncDeletePrinterKey.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinterKey_pKeyName,
+         { "PKeyName", "iremotewinspool.winspool_AsyncDeletePrinterKey.pKeyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncDeletePrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncDeletePrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEndDocPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEndDocPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEndPagePrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEndPagePrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumForms_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumForms.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumForms_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumForms.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumForms_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEnumForms.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumForms_pForm,
+         { "PForm", "iremotewinspool.winspool_AsyncEnumForms.pForm", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumForms_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumForms.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumForms_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumForms.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncEnumJobNamedProperties.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEnumJobNamedProperties.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_pcProperties,
+         { "PcProperties", "iremotewinspool.winspool_AsyncEnumJobNamedProperties.pcProperties", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobNamedProperties_ppProperties,
+         { "PpProperties", "iremotewinspool.winspool_AsyncEnumJobNamedProperties.ppProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_FirstJob,
+         { "FirstJob", "iremotewinspool.winspool_AsyncEnumJobs.FirstJob", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumJobs.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_NoJobs,
+         { "NoJobs", "iremotewinspool.winspool_AsyncEnumJobs.NoJobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumJobs.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEnumJobs.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_pJob,
+         { "PJob", "iremotewinspool.winspool_AsyncEnumJobs.pJob", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumJobs.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumJobs_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumJobs.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumMonitors_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumMonitors.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumMonitors_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumMonitors.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumMonitors_pMonitor,
+         { "PMonitor", "iremotewinspool.winspool_AsyncEnumMonitors.pMonitor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumMonitors_pName,
+         { "PName", "iremotewinspool.winspool_AsyncEnumMonitors.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumMonitors_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumMonitors.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumMonitors_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumMonitors.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumPerMachineConnections.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pPrinterEnum,
+         { "PPrinterEnum", "iremotewinspool.winspool_AsyncEnumPerMachineConnections.pPrinterEnum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pServer,
+         { "PServer", "iremotewinspool.winspool_AsyncEnumPerMachineConnections.pServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumPerMachineConnections.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPerMachineConnections_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumPerMachineConnections.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPorts_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumPorts.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPorts_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumPorts.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPorts_pName,
+         { "PName", "iremotewinspool.winspool_AsyncEnumPorts.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPorts_pPort,
+         { "PPort", "iremotewinspool.winspool_AsyncEnumPorts.pPort", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPorts_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumPorts.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPorts_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumPorts.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pDatatypes,
+         { "PDatatypes", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.pDatatypes", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pName,
+         { "PName", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pPrintProcessorName,
+         { "PPrintProcessorName", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.pPrintProcessorName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessorDatatypes_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumPrintProcessorDatatypes.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumPrintProcessors.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumPrintProcessors.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncEnumPrintProcessors.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pName,
+         { "PName", "iremotewinspool.winspool_AsyncEnumPrintProcessors.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pPrintProcessorInfo,
+         { "PPrintProcessorInfo", "iremotewinspool.winspool_AsyncEnumPrintProcessors.pPrintProcessorInfo", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumPrintProcessors.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrintProcessors_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumPrintProcessors.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_cbEnumValues,
+         { "CbEnumValues", "iremotewinspool.winspool_AsyncEnumPrinterDataEx.cbEnumValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEnumPrinterDataEx.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pEnumValues,
+         { "PEnumValues", "iremotewinspool.winspool_AsyncEnumPrinterDataEx.pEnumValues", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pKeyName,
+         { "PKeyName", "iremotewinspool.winspool_AsyncEnumPrinterDataEx.pKeyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pcbEnumValues,
+         { "PcbEnumValues", "iremotewinspool.winspool_AsyncEnumPrinterDataEx.pcbEnumValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDataEx_pnEnumValues,
+         { "PnEnumValues", "iremotewinspool.winspool_AsyncEnumPrinterDataEx.pnEnumValues", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbData,
+         { "CbData", "iremotewinspool.winspool_AsyncEnumPrinterData.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_cbValueName,
+         { "CbValueName", "iremotewinspool.winspool_AsyncEnumPrinterData.cbValueName", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_dwIndex,
+         { "DwIndex", "iremotewinspool.winspool_AsyncEnumPrinterData.dwIndex", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEnumPrinterData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_pData,
+         { "PData", "iremotewinspool.winspool_AsyncEnumPrinterData.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_pType,
+         { "PType", "iremotewinspool.winspool_AsyncEnumPrinterData.pType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncEnumPrinterData.pValueName", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbData,
+         { "PcbData", "iremotewinspool.winspool_AsyncEnumPrinterData.pcbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterData_pcbValueName,
+         { "PcbValueName", "iremotewinspool.winspool_AsyncEnumPrinterData.pcbValueName", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pDrivers,
+         { "PDrivers", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.pDrivers", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pName,
+         { "PName", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterDrivers_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumPrinterDrivers.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterKey_cbSubkey,
+         { "CbSubkey", "iremotewinspool.winspool_AsyncEnumPrinterKey.cbSubkey", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterKey_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncEnumPrinterKey.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pKeyName,
+         { "PKeyName", "iremotewinspool.winspool_AsyncEnumPrinterKey.pKeyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pSubkey,
+         { "PSubkey", "iremotewinspool.winspool_AsyncEnumPrinterKey.pSubkey", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinterKey_pcbSubkey,
+         { "PcbSubkey", "iremotewinspool.winspool_AsyncEnumPrinterKey.pcbSubkey", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_Flags,
+         { "Flags", "iremotewinspool.winspool_AsyncEnumPrinters.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_Level,
+         { "Level", "iremotewinspool.winspool_AsyncEnumPrinters.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncEnumPrinters.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_pName,
+         { "PName", "iremotewinspool.winspool_AsyncEnumPrinters.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_pPrinterEnum,
+         { "PPrinterEnum", "iremotewinspool.winspool_AsyncEnumPrinters.pPrinterEnum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_pcReturned,
+         { "PcReturned", "iremotewinspool.winspool_AsyncEnumPrinters.pcReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncEnumPrinters_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncEnumPrinters.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cCorePrinterDrivers,
+         { "CCorePrinterDrivers", "iremotewinspool.winspool_AsyncGetCorePrinterDrivers.cCorePrinterDrivers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_cchCoreDrivers,
+         { "CchCoreDrivers", "iremotewinspool.winspool_AsyncGetCorePrinterDrivers.cchCoreDrivers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pCorePrinterDrivers,
+         { "PCorePrinterDrivers", "iremotewinspool.winspool_AsyncGetCorePrinterDrivers.pCorePrinterDrivers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszEnvironment,
+         { "PszEnvironment", "iremotewinspool.winspool_AsyncGetCorePrinterDrivers.pszEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszServer,
+         { "PszServer", "iremotewinspool.winspool_AsyncGetCorePrinterDrivers.pszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetCorePrinterDrivers_pszzCoreDriverDependencies,
+         { "PszzCoreDriverDependencies", "iremotewinspool.winspool_AsyncGetCorePrinterDrivers.pszzCoreDriverDependencies", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetForm_Level,
+         { "Level", "iremotewinspool.winspool_AsyncGetForm.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetForm_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncGetForm.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetForm_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetForm.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetForm_pForm,
+         { "PForm", "iremotewinspool.winspool_AsyncGetForm.pForm", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetForm_pFormName,
+         { "PFormName", "iremotewinspool.winspool_AsyncGetForm.pFormName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetForm_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetForm.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncGetJobNamedPropertyValue.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetJobNamedPropertyValue.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pValue,
+         { "PValue", "iremotewinspool.winspool_AsyncGetJobNamedPropertyValue.pValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJobNamedPropertyValue_pszName,
+         { "PszName", "iremotewinspool.winspool_AsyncGetJobNamedPropertyValue.pszName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJob_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncGetJob.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJob_Level,
+         { "Level", "iremotewinspool.winspool_AsyncGetJob.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJob_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncGetJob.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJob_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetJob.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJob_pJob,
+         { "PJob", "iremotewinspool.winspool_AsyncGetJob.pJob", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetJob_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetJob.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_Level,
+         { "Level", "iremotewinspool.winspool_AsyncGetPrintProcessorDirectory.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncGetPrintProcessorDirectory.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncGetPrintProcessorDirectory.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pName,
+         { "PName", "iremotewinspool.winspool_AsyncGetPrintProcessorDirectory.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pPrintProcessorDirectory,
+         { "PPrintProcessorDirectory", "iremotewinspool.winspool_AsyncGetPrintProcessorDirectory.pPrintProcessorDirectory", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrintProcessorDirectory_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetPrintProcessorDirectory.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetPrinterDataEx.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_nSize,
+         { "NSize", "iremotewinspool.winspool_AsyncGetPrinterDataEx.nSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pData,
+         { "PData", "iremotewinspool.winspool_AsyncGetPrinterDataEx.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pKeyName,
+         { "PKeyName", "iremotewinspool.winspool_AsyncGetPrinterDataEx.pKeyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pType,
+         { "PType", "iremotewinspool.winspool_AsyncGetPrinterDataEx.pType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncGetPrinterDataEx.pValueName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDataEx_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetPrinterDataEx.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterData_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetPrinterData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterData_nSize,
+         { "NSize", "iremotewinspool.winspool_AsyncGetPrinterData.nSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterData_pData,
+         { "PData", "iremotewinspool.winspool_AsyncGetPrinterData.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterData_pType,
+         { "PType", "iremotewinspool.winspool_AsyncGetPrinterData.pType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterData_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncGetPrinterData.pValueName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterData_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetPrinterData.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_Level,
+         { "Level", "iremotewinspool.winspool_AsyncGetPrinterDriverDirectory.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncGetPrinterDriverDirectory.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pDriverDirectory,
+         { "PDriverDirectory", "iremotewinspool.winspool_AsyncGetPrinterDriverDirectory.pDriverDirectory", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncGetPrinterDriverDirectory.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pName,
+         { "PName", "iremotewinspool.winspool_AsyncGetPrinterDriverDirectory.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverDirectory_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetPrinterDriverDirectory.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_cchDriverPackageCab,
+         { "CchDriverPackageCab", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.cchDriverPackageCab", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pcchRequiredSize,
+         { "PcchRequiredSize", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.pcchRequiredSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszDriverPackageCab,
+         { "PszDriverPackageCab", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.pszDriverPackageCab", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszEnvironment,
+         { "PszEnvironment", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.pszEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszLanguage,
+         { "PszLanguage", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.pszLanguage", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszPackageID,
+         { "PszPackageID", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.pszPackageID", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriverPackagePath_pszServer,
+         { "PszServer", "iremotewinspool.winspool_AsyncGetPrinterDriverPackagePath.pszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_Level,
+         { "Level", "iremotewinspool.winspool_AsyncGetPrinterDriver.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncGetPrinterDriver.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMajorVersion,
+         { "DwClientMajorVersion", "iremotewinspool.winspool_AsyncGetPrinterDriver.dwClientMajorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_dwClientMinorVersion,
+         { "DwClientMinorVersion", "iremotewinspool.winspool_AsyncGetPrinterDriver.dwClientMinorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetPrinterDriver.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pDriver,
+         { "PDriver", "iremotewinspool.winspool_AsyncGetPrinterDriver.pDriver", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pEnvironment,
+         { "PEnvironment", "iremotewinspool.winspool_AsyncGetPrinterDriver.pEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetPrinterDriver.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMaxVersion,
+         { "PdwServerMaxVersion", "iremotewinspool.winspool_AsyncGetPrinterDriver.pdwServerMaxVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinterDriver_pdwServerMinVersion,
+         { "PdwServerMinVersion", "iremotewinspool.winspool_AsyncGetPrinterDriver.pdwServerMinVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinter_Level,
+         { "Level", "iremotewinspool.winspool_AsyncGetPrinter.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinter_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncGetPrinter.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncGetPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinter_pPrinter,
+         { "PPrinter", "iremotewinspool.winspool_AsyncGetPrinter.pPrinter", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetPrinter_pcbNeeded,
+         { "PcbNeeded", "iremotewinspool.winspool_AsyncGetPrinter.pcbNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_hRpcHandle,
+         { "HRpcHandle", "iremotewinspool.winspool_AsyncGetRemoteNotifications.hRpcHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncGetRemoteNotifications_ppNotifyData,
+         { "PpNotifyData", "iremotewinspool.winspool_AsyncGetRemoteNotifications.ppNotifyData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_dwFlags,
+         { "DwFlags", "iremotewinspool.winspool_AsyncInstallPrinterDriverFromPackage.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszDriverName,
+         { "PszDriverName", "iremotewinspool.winspool_AsyncInstallPrinterDriverFromPackage.pszDriverName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszEnvironment,
+         { "PszEnvironment", "iremotewinspool.winspool_AsyncInstallPrinterDriverFromPackage.pszEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszInfPath,
+         { "PszInfPath", "iremotewinspool.winspool_AsyncInstallPrinterDriverFromPackage.pszInfPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncInstallPrinterDriverFromPackage_pszServer,
+         { "PszServer", "iremotewinspool.winspool_AsyncInstallPrinterDriverFromPackage.pszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncLogJobInfoForBranchOffice.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncLogJobInfoForBranchOffice_pBranchOfficeJobDataContainer,
+         { "PBranchOfficeJobDataContainer", "iremotewinspool.winspool_AsyncLogJobInfoForBranchOffice.pBranchOfficeJobDataContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncOpenPrinter_AccessRequired,
+         { "AccessRequired", "iremotewinspool.winspool_AsyncOpenPrinter.AccessRequired", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncOpenPrinter_pClientInfo,
+         { "PClientInfo", "iremotewinspool.winspool_AsyncOpenPrinter.pClientInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncOpenPrinter_pDatatype,
+         { "PDatatype", "iremotewinspool.winspool_AsyncOpenPrinter.pDatatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncOpenPrinter_pDevModeContainer,
+         { "PDevModeContainer", "iremotewinspool.winspool_AsyncOpenPrinter.pDevModeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncOpenPrinter_pHandle,
+         { "PHandle", "iremotewinspool.winspool_AsyncOpenPrinter.pHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncOpenPrinter_pPrinterName,
+         { "PPrinterName", "iremotewinspool.winspool_AsyncOpenPrinter.pPrinterName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cIn,
+         { "CIn", "iremotewinspool.winspool_AsyncPlayGdiScriptOnPrinterIC.cIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_cOut,
+         { "COut", "iremotewinspool.winspool_AsyncPlayGdiScriptOnPrinterIC.cOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_hPrinterIC,
+         { "HPrinterIC", "iremotewinspool.winspool_AsyncPlayGdiScriptOnPrinterIC.hPrinterIC", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pIn,
+         { "PIn", "iremotewinspool.winspool_AsyncPlayGdiScriptOnPrinterIC.pIn", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_pOut,
+         { "POut", "iremotewinspool.winspool_AsyncPlayGdiScriptOnPrinterIC.pOut", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncPlayGdiScriptOnPrinterIC_ul,
+         { "Ul", "iremotewinspool.winspool_AsyncPlayGdiScriptOnPrinterIC.ul", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncReadPrinter_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncReadPrinter.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncReadPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncReadPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncReadPrinter_pBuf,
+         { "PBuf", "iremotewinspool.winspool_AsyncReadPrinter.pBuf", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncReadPrinter_pcNoBytesRead,
+         { "PcNoBytesRead", "iremotewinspool.winspool_AsyncReadPrinter.pcNoBytesRead", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncResetPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncResetPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncResetPrinter_pDatatype,
+         { "PDatatype", "iremotewinspool.winspool_AsyncResetPrinter.pDatatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncResetPrinter_pDevModeContainer,
+         { "PDevModeContainer", "iremotewinspool.winspool_AsyncResetPrinter.pDevModeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncScheduleJob_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncScheduleJob.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncScheduleJob_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncScheduleJob.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSendRecvBidiData_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSendRecvBidiData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pAction,
+         { "PAction", "iremotewinspool.winspool_AsyncSendRecvBidiData.pAction", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSendRecvBidiData_pReqData,
+         { "PReqData", "iremotewinspool.winspool_AsyncSendRecvBidiData.pReqData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSendRecvBidiData_ppRespData,
+         { "PpRespData", "iremotewinspool.winspool_AsyncSendRecvBidiData.ppRespData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetForm_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSetForm.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetForm_pFormInfoContainer,
+         { "PFormInfoContainer", "iremotewinspool.winspool_AsyncSetForm.pFormInfoContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetForm_pFormName,
+         { "PFormName", "iremotewinspool.winspool_AsyncSetForm.pFormName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncSetJobNamedProperty.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSetJobNamedProperty.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJobNamedProperty_pProperty,
+         { "PProperty", "iremotewinspool.winspool_AsyncSetJobNamedProperty.pProperty", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJob_Command,
+         { "Command", "iremotewinspool.winspool_AsyncSetJob.Command", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJob_JobId,
+         { "JobId", "iremotewinspool.winspool_AsyncSetJob.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJob_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSetJob.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetJob_pJobContainer,
+         { "PJobContainer", "iremotewinspool.winspool_AsyncSetJob.pJobContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPort_pName,
+         { "PName", "iremotewinspool.winspool_AsyncSetPort.pName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPort_pPortContainer,
+         { "PPortContainer", "iremotewinspool.winspool_AsyncSetPort.pPortContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPort_pPortName,
+         { "PPortName", "iremotewinspool.winspool_AsyncSetPort.pPortName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_Type,
+         { "Type", "iremotewinspool.winspool_AsyncSetPrinterDataEx.Type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_cbData,
+         { "CbData", "iremotewinspool.winspool_AsyncSetPrinterDataEx.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSetPrinterDataEx.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pData,
+         { "PData", "iremotewinspool.winspool_AsyncSetPrinterDataEx.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pKeyName,
+         { "PKeyName", "iremotewinspool.winspool_AsyncSetPrinterDataEx.pKeyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterDataEx_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncSetPrinterDataEx.pValueName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterData_Type,
+         { "Type", "iremotewinspool.winspool_AsyncSetPrinterData.Type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterData_cbData,
+         { "CbData", "iremotewinspool.winspool_AsyncSetPrinterData.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterData_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSetPrinterData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterData_pData,
+         { "PData", "iremotewinspool.winspool_AsyncSetPrinterData.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinterData_pValueName,
+         { "PValueName", "iremotewinspool.winspool_AsyncSetPrinterData.pValueName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinter_Command,
+         { "Command", "iremotewinspool.winspool_AsyncSetPrinter.Command", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncSetPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinter_pDevModeContainer,
+         { "PDevModeContainer", "iremotewinspool.winspool_AsyncSetPrinter.pDevModeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinter_pPrinterContainer,
+         { "PPrinterContainer", "iremotewinspool.winspool_AsyncSetPrinter.pPrinterContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncSetPrinter_pSecurityContainer,
+         { "PSecurityContainer", "iremotewinspool.winspool_AsyncSetPrinter.pSecurityContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncStartDocPrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncStartDocPrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncStartDocPrinter_pDocInfoContainer,
+         { "PDocInfoContainer", "iremotewinspool.winspool_AsyncStartDocPrinter.pDocInfoContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncStartDocPrinter_pJobId,
+         { "PJobId", "iremotewinspool.winspool_AsyncStartDocPrinter.pJobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncStartPagePrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncStartPagePrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_dwFlags,
+         { "DwFlags", "iremotewinspool.winspool_AsyncUploadPrinterDriverPackage.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pcchDestInfPath,
+         { "PcchDestInfPath", "iremotewinspool.winspool_AsyncUploadPrinterDriverPackage.pcchDestInfPath", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszDestInfPath,
+         { "PszDestInfPath", "iremotewinspool.winspool_AsyncUploadPrinterDriverPackage.pszDestInfPath", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszEnvironment,
+         { "PszEnvironment", "iremotewinspool.winspool_AsyncUploadPrinterDriverPackage.pszEnvironment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszInfPath,
+         { "PszInfPath", "iremotewinspool.winspool_AsyncUploadPrinterDriverPackage.pszInfPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncUploadPrinterDriverPackage_pszServer,
+         { "PszServer", "iremotewinspool.winspool_AsyncUploadPrinterDriverPackage.pszServer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncWritePrinter_cbBuf,
+         { "CbBuf", "iremotewinspool.winspool_AsyncWritePrinter.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncWritePrinter_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_AsyncWritePrinter.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncWritePrinter_pBuf,
+         { "PBuf", "iremotewinspool.winspool_AsyncWritePrinter.pBuf", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncWritePrinter_pcWritten,
+         { "PcWritten", "iremotewinspool.winspool_AsyncWritePrinter.pcWritten", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_cbInputData,
+         { "CbInputData", "iremotewinspool.winspool_AsyncXcvData.cbInputData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_cbOutputData,
+         { "CbOutputData", "iremotewinspool.winspool_AsyncXcvData.cbOutputData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_hXcv,
+         { "HXcv", "iremotewinspool.winspool_AsyncXcvData.hXcv", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_pInputData,
+         { "PInputData", "iremotewinspool.winspool_AsyncXcvData.pInputData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_pOutputData,
+         { "POutputData", "iremotewinspool.winspool_AsyncXcvData.pOutputData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_pcbOutputNeeded,
+         { "PcbOutputNeeded", "iremotewinspool.winspool_AsyncXcvData.pcbOutputNeeded", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_pdwStatus,
+         { "PdwStatus", "iremotewinspool.winspool_AsyncXcvData.pdwStatus", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_AsyncXcvData_pszDataName,
+         { "PszDataName", "iremotewinspool.winspool_AsyncXcvData.pszDataName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES,
+         { "IPDFP COPY ALL FILES", "iremotewinspool.winspool_InstallPrinterDriverFromPackageFlags.IPDFP_COPY_ALL_FILES", FT_BOOLEAN, 32, TFS(&winspool_InstallPrinterDriverFromPackageFlags_IPDFP_COPY_ALL_FILES_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER_pOptions,
+         { "POptions", "iremotewinspool.winspool_NOTIFY_OPTIONS_CONTAINER.pOptions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER_pInfo,
+         { "PInfo", "iremotewinspool.winspool_NOTIFY_REPLY_CONTAINER.pInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintNamedProperty_propertyName,
+         { "PropertyName", "iremotewinspool.winspool_PrintNamedProperty.propertyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintNamedProperty_propertyValue,
+         { "PropertyValue", "iremotewinspool.winspool_PrintNamedProperty.propertyValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertiesCollection_numberOfProperties,
+         { "NumberOfProperties", "iremotewinspool.winspool_PrintPropertiesCollection.numberOfProperties", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertiesCollection_propertiesCollection,
+         { "PropertiesCollection", "iremotewinspool.winspool_PrintPropertiesCollection.propertiesCollection", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyByte,
+         { "PropertyByte", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyByte", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyDevModeContainer,
+         { "PropertyDevModeContainer", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyDevModeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt32,
+         { "PropertyInt32", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyInt32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyInt64,
+         { "PropertyInt64", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyInt64", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyOptionsContainer,
+         { "PropertyOptionsContainer", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyOptionsContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyReplyContainer,
+         { "PropertyReplyContainer", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyReplyContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertySDContainer,
+         { "PropertySDContainer", "iremotewinspool.winspool_PrintPropertyValueUnion.propertySDContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyString,
+         { "PropertyString", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValueUnion_propertyTimeContainer,
+         { "PropertyTimeContainer", "iremotewinspool.winspool_PrintPropertyValueUnion.propertyTimeContainer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValue_PropertyType,
+         { "PropertyType", "iremotewinspool.winspool_PrintPropertyValue.PropertyType", FT_UINT1632, BASE_DEC, VALS(iremotewinspool_winspool_PrintPropertyType_vals), 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_PrintPropertyValue_value,
+         { "Value", "iremotewinspool.winspool_PrintPropertyValue.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_hRpcHandle,
+         { "HRpcHandle", "iremotewinspool.winspool_SyncRefreshRemoteNotifications.hRpcHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_pNotifyFilter,
+         { "PNotifyFilter", "iremotewinspool.winspool_SyncRefreshRemoteNotifications.pNotifyFilter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncRefreshRemoteNotifications_ppNotifyData,
+         { "PpNotifyData", "iremotewinspool.winspool_SyncRefreshRemoteNotifications.ppNotifyData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_hPrinter,
+         { "HPrinter", "iremotewinspool.winspool_SyncRegisterForRemoteNotifications.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_pNotifyFilter,
+         { "PNotifyFilter", "iremotewinspool.winspool_SyncRegisterForRemoteNotifications.pNotifyFilter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncRegisterForRemoteNotifications_phRpcHandle,
+         { "PhRpcHandle", "iremotewinspool.winspool_SyncRegisterForRemoteNotifications.phRpcHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_SyncUnRegisterForRemoteNotifications_phRpcHandle,
+         { "PhRpcHandle", "iremotewinspool.winspool_SyncUnRegisterForRemoteNotifications.phRpcHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE,
+         { "UPDP CHECK DRIVERSTORE", "iremotewinspool.winspool_UploadPrinterDriverPackageFlags.UPDP_CHECK_DRIVERSTORE", FT_BOOLEAN, 32, TFS(&winspool_UploadPrinterDriverPackageFlags_UPDP_CHECK_DRIVERSTORE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_iremotewinspool_winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS,
+         { "UPDP UPLOAD ALWAYS", "iremotewinspool.winspool_UploadPrinterDriverPackageFlags.UPDP_UPLOAD_ALWAYS", FT_BOOLEAN, 32, TFS(&winspool_UploadPrinterDriverPackageFlags_UPDP_UPLOAD_ALWAYS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_iremotewinspool,
+               &ett_iremotewinspool_winspool_NOTIFY_REPLY_CONTAINER,
+               &ett_iremotewinspool_winspool_NOTIFY_OPTIONS_CONTAINER,
+               &ett_iremotewinspool_winspool_PrintPropertyValueUnion,
+               &ett_iremotewinspool_winspool_PrintPropertyValue,
+               &ett_iremotewinspool_winspool_PrintNamedProperty,
+               &ett_iremotewinspool_winspool_PrintPropertiesCollection,
+               &ett_iremotewinspool_winspool_InstallPrinterDriverFromPackageFlags,
+               &ett_iremotewinspool_winspool_UploadPrinterDriverPackageFlags,
+       };
+
+       proto_dcerpc_iremotewinspool = proto_register_protocol("IRemoteWinspool SubSystem", "IREMOTEWINSPOOL", "iremotewinspool");
+       proto_register_field_array(proto_dcerpc_iremotewinspool, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_iremotewinspool(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_iremotewinspool, ett_dcerpc_iremotewinspool,
+               &uuid_dcerpc_iremotewinspool, ver_dcerpc_iremotewinspool,
+               iremotewinspool_dissectors, hf_iremotewinspool_opnum);
+}
diff --git a/epan/dissectors/packet-dcerpc-winspool.h b/epan/dissectors/packet-dcerpc-winspool.h
new file mode 100644 (file)
index 0000000..0d8a8a0
--- /dev/null
@@ -0,0 +1,38 @@
+/* DO NOT EDIT
+       This file was automatically generated by Pidl
+       from winspool.idl and winspool.cnf.
+
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at https://wiki.wireshark.org/Pidl
+*/
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-winreg.h"
+#include "packet-dcerpc-spoolss.h"
+
+#ifndef __PACKET_DCERPC_IREMOTEWINSPOOL_H
+#define __PACKET_DCERPC_IREMOTEWINSPOOL_H
+
+#define IREMOTEWINSPOOL_OBJECT_GUID    ( "9940CA8E-512F-4C58-88A9-61098D6896BD" )
+
+int iremotewinspool_dissect_struct_winspool_NOTIFY_REPLY_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int iremotewinspool_dissect_struct_winspool_NOTIFY_OPTIONS_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define winspool_PropertyTypeString (1)
+#define winspool_PropertyTypeInt32 (2)
+#define winspool_PropertyTypeInt64 (3)
+#define winspool_PropertyTypeByte (4)
+#define winspool_PropertyTypeTime (5)
+#define winspool_PropertyTypeDevMode (6)
+#define winspool_PropertyTypeSD (7)
+#define winspool_PropertyTypeNotificationReply (8)
+#define winspool_PropertyTypeNotificationOptions (9)
+extern const value_string iremotewinspool_winspool_PrintPropertyType_vals[];
+int iremotewinspool_dissect_enum_winspool_PrintPropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint1632 *param _U_);
+int iremotewinspool_dissect_struct_winspool_PrintPropertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int iremotewinspool_dissect_struct_winspool_PrintNamedProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int iremotewinspool_dissect_struct_winspool_PrintPropertiesCollection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int iremotewinspool_dissect_bitmap_winspool_InstallPrinterDriverFromPackageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int iremotewinspool_dissect_bitmap_winspool_UploadPrinterDriverPackageFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_IREMOTEWINSPOOL_H */
index 1006dd6c570c022f2c8862aeb0bf5ed331c5d4ab..b629464927fe5040079112ad8d31cf3cd6327caa 100644 (file)
@@ -29,6 +29,7 @@ set(PIDL_DISSECTOR_NAMES
        samr
        #srvsvc
        winreg
+       winspool
        witness
        #wkssvc
        wzcsvc
@@ -93,6 +94,10 @@ set(PIDL_DISSECTOR_srvsvc_EXTRA_DEPS
 set(PIDL_DISSECTOR_winreg_EXTRA_DEPS
        misc/misc.idl
 )
+set(PIDL_DISSECTOR_winspool_EXTRA_DEPS
+       idl_types.h
+       misc/misc.idl
+)
 set(PIDL_DISSECTOR_witness_EXTRA_DEPS
        misc/misc.idl
        idl_types.h
index 798611070bc7d4147ad4a446492c22c9c9bfdce6..2004da170e2d6e015a96f1326fde39ec29c867ad 100644 (file)
@@ -43,6 +43,7 @@ SUBDIRS = \
        rfr             \
        samr            \
        winreg          \
+       winspool        \
        witness         \
        wzcsvc
 
@@ -149,6 +150,11 @@ $(SUBDIRS) $(DONT_BUILD_SUBDIRS): %: ../packet-dcerpc-%.c ../packet-dcerpc-%.h
                                misc/misc.idl
        cd $(<D) && $(PIDL) $(pidl_out) $(pidl_inc) -- $(<F)
 
+../packet-dcerpc-winspool.c \
+../packet-dcerpc-winspool.h: winspool/winspool.idl winspool/winspool.cnf \
+                               misc/misc.idl
+       cd $(<D) && $(PIDL) $(pidl_out) $(pidl_inc) -- $(<F)
+
 ../packet-dcerpc-witness.c \
 ../packet-dcerpc-witness.h: witness/witness.idl witness/witness.cnf \
                                misc/misc.idl  idl_types.h
diff --git a/epan/dissectors/pidl/winspool/winspool.cnf b/epan/dissectors/pidl/winspool/winspool.cnf
new file mode 100644 (file)
index 0000000..1134727
--- /dev/null
@@ -0,0 +1,25 @@
+# Conformance file for winspool
+
+# these are all TODO!
+
+#TYPE winreg_AccessMask "offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, di, drep, @HF@, @PARAM@);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE sec_desc_buf "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_UserLevelCtr "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_NotifyInfo "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_NotifyOption "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_DevmodeContainer "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_SetPrinterInfoCtr "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_DocumentInfoCtr "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_AddFormInfoCtr "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_TimeCtr "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_JobInfoContainer "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE RPC_BIDI_REQUEST_CONTAINER "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE RPC_BIDI_RESPONSE_CONTAINER "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_AddDriverInfoCtr "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_SetPortInfoContainer "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_PortVarContainer "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_MonitorContainer "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_CorePrinterDriver "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_PrintPropertyValue "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_PrintNamedProperty "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
+TYPE spoolss_BranchOfficeJobDataContainer "offset = dissect_ndr_byte_array(tvb, offset, pinfo, tree, di, drep);" FT_NONE BASE_NONE 0 NULL NULL
diff --git a/epan/dissectors/pidl/winspool/winspool.idl b/epan/dissectors/pidl/winspool/winspool.idl
new file mode 100644 (file)
index 0000000..09d6506
--- /dev/null
@@ -0,0 +1,878 @@
+#include "idl_types.h"
+
+/*
+ * IRemoteWinspool interface definitions
+ *
+ * This IDL defines the "Print System Asynchronous Remote Protocol" MS-PAR
+ * interface.
+ *
+ * Currently only eight functions in this interface have no matching functions
+ * in the "spoolss" interface. All other functions have a 1-to-1 match but
+ * different opcodes than the spoolss interface.
+ *
+ * Every request on this interface requires a object uuid of
+ * "9940CA8E-512F-4C58-88A9-61098D6896BD" to be sent along with the DCE/RPC
+ * header.
+ *
+ * On Windows, this interface uses [ncacn_ip_tcp] transport and requires
+ * DCERPC_AUTH_TYPE_SPNEGO and at least DCERPC_AUTH_LEVEL_PACKET authentication.
+ *
+ *
+ */
+
+import "misc.idl", "winreg.idl", "spoolss.idl";
+
+[
+       uuid("76f03f96-cdfd-44fc-a22c-64950A001209"),
+       version(1.0),
+       endpoint("ncacn_ip_tcp:"),
+       pointer_default(unique),
+       helpstring("IRemoteWinspool SubSystem")
+]
+       interface iremotewinspool
+{
+#if 0
+       /*
+        * pidl does not yet have a real [context_handle] implementation, so we
+        * just use some defines here.
+        */
+
+       typedef [context_handle] void *GDI_HANDLE;
+       typedef [context_handle] void *PRINTER_HANDLE;
+       typedef [context_handle] void *RMTNTFY_HANDLE;
+#else
+#define GDI_HANDLE policy_handle
+#define PRINTER_HANDLE policy_handle
+#define RMTNTFY_HANDLE policy_handle
+#endif
+
+       const string IREMOTEWINSPOOL_OBJECT_GUID = "9940CA8E-512F-4C58-88A9-61098D6896BD";
+
+       /******************/
+       /* Function: 0x00 */
+
+       typedef struct {
+               spoolss_NotifyInfo *pInfo;
+       } winspool_NOTIFY_REPLY_CONTAINER;
+
+       typedef struct {
+               spoolss_NotifyOption *pOptions;
+       } winspool_NOTIFY_OPTIONS_CONTAINER;
+
+       [public] WERROR winspool_AsyncOpenPrinter(
+               [in,unique] [string,charset(UTF16)] uint16 *pPrinterName,
+               [out] PRINTER_HANDLE *pHandle,
+               [in,unique] [string,charset(UTF16)] uint16 *pDatatype,
+               [in] spoolss_DevmodeContainer *pDevModeContainer,
+               [in] uint32 AccessRequired,
+               [in] spoolss_UserLevelCtr *pClientInfo
+       );
+
+       /******************/
+       /* Function: 0x01 */
+
+       WERROR winspool_AsyncAddPrinter(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] spoolss_SetPrinterInfoCtr *pPrinterContainer,
+               [in] spoolss_DevmodeContainer *pDevModeContainer,
+               [in] sec_desc_buf *pSecurityContainer,
+               [in] spoolss_UserLevelCtr *pClientInfo,
+               [out] PRINTER_HANDLE *pHandle
+       );
+
+       /******************/
+       /* Function: 0x02 */
+
+       WERROR winspool_AsyncSetJob(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId,
+               [in, unique] spoolss_JobInfoContainer *pJobContainer,
+               [in] uint32 Command
+       );
+
+       /******************/
+       /* Function: 0x03 */
+
+       WERROR winspool_AsyncGetJob(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pJob,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x04 */
+
+       WERROR winspool_AsyncEnumJobs(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 FirstJob,
+               [in] uint32 NoJobs,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pJob,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x05 */
+
+       WERROR winspool_AsyncAddJob(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pAddJob,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x06 */
+
+       WERROR winspool_AsyncScheduleJob(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId
+       );
+
+       /******************/
+       /* Function: 0x07 */
+
+       WERROR winspool_AsyncDeletePrinter(
+               [in] PRINTER_HANDLE hPrinter
+       );
+
+       /******************/
+       /* Function: 0x08 */
+
+       [public] WERROR winspool_AsyncSetPrinter(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] spoolss_SetPrinterInfoCtr *pPrinterContainer,
+               [in] spoolss_DevmodeContainer *pDevModeContainer,
+               [in] sec_desc_buf *pSecurityContainer,
+               [in] uint32 Command
+       );
+
+       /******************/
+       /* Function: 0x09 */
+
+       [public] WERROR winspool_AsyncGetPrinter(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pPrinter,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x0a */
+
+       WERROR winspool_AsyncStartDocPrinter(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] spoolss_DocumentInfoCtr *pDocInfoContainer,
+               [out] uint32 *pJobId
+       );
+
+       /******************/
+       /* Function: 0x0b */
+
+       WERROR winspool_AsyncStartPagePrinter(
+               [in] PRINTER_HANDLE hPrinter
+       );
+
+       /******************/
+       /* Function: 0x0c */
+
+       WERROR winspool_AsyncWritePrinter(
+               [in] PRINTER_HANDLE hPrinter,
+               [in, size_is(cbBuf)] uint8 *pBuf,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcWritten
+       );
+
+       /******************/
+       /* Function: 0x0d */
+
+       WERROR winspool_AsyncEndPagePrinter(
+               [in] PRINTER_HANDLE hPrinter
+       );
+
+       /******************/
+       /* Function: 0x0e */
+
+       WERROR winspool_AsyncEndDocPrinter(
+               [in] PRINTER_HANDLE hPrinter
+       );
+
+       /******************/
+       /* Function: 0x0f */
+
+       WERROR winspool_AsyncAbortPrinter(
+               [in] PRINTER_HANDLE hPrinter
+       );
+
+       /******************/
+       /* Function: 0x10 */
+
+       [public] WERROR winspool_AsyncGetPrinterData(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pValueName,
+               [out] uint32 *pType,
+               [out, size_is(nSize)] uint8 *pData,
+               [in] uint32 nSize,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x11 */
+
+       WERROR winspool_AsyncGetPrinterDataEx(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pKeyName,
+               [in] [string,charset(UTF16)] uint16 *pValueName,
+               [out] uint32 *pType,
+               [out, size_is(nSize)] uint8 *pData,
+               [in] uint32 nSize,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x12 */
+
+       WERROR winspool_AsyncSetPrinterData(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pValueName,
+               [in] uint32 Type,
+               [in, size_is(cbData)] uint8 *pData,
+               [in] uint32 cbData
+       );
+
+       /******************/
+       /* Function: 0x13 */
+
+       WERROR winspool_AsyncSetPrinterDataEx(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pKeyName,
+               [in] [string,charset(UTF16)] uint16 *pValueName,
+               [in] uint32 Type,
+               [in, size_is(cbData)] uint8 *pData,
+               [in] uint32 cbData
+       );
+
+       /******************/
+       /* Function: 0x14 */
+
+       [public] WERROR winspool_AsyncClosePrinter(
+               [in, out] PRINTER_HANDLE *phPrinter
+       );
+
+       /******************/
+       /* Function: 0x15 */
+
+       WERROR winspool_AsyncAddForm(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] spoolss_AddFormInfoCtr *pFormInfoContainer
+       );
+
+       /******************/
+       /* Function: 0x16 */
+
+       WERROR winspool_AsyncDeleteForm(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pFormName
+       );
+
+       /******************/
+       /* Function: 0x17 */
+
+       WERROR winspool_AsyncGetForm(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pFormName,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pForm,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x18 */
+
+       WERROR winspool_AsyncSetForm(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pFormName,
+               [in] spoolss_AddFormInfoCtr *pFormInfoContainer
+       );
+
+       /******************/
+       /* Function: 0x19 */
+
+       [public] WERROR winspool_AsyncEnumForms(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pForm,
+               [in]  uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x1a */
+
+       [public] WERROR winspool_AsyncGetPrinterDriver(
+               [in] PRINTER_HANDLE hPrinter,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pDriver,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [in] uint32 dwClientMajorVersion,
+               [in] uint32 dwClientMinorVersion,
+               [out] uint32 *pdwServerMaxVersion,
+               [out] uint32 *pdwServerMinVersion
+       );
+
+       /******************/
+       /* Function: 0x1b */
+
+       WERROR winspool_AsyncEnumPrinterData(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 dwIndex,
+               [out, size_is(cbValueName/2)] uint16 *pValueName,
+               [in]  uint32 cbValueName,
+               [out] uint32 *pcbValueName,
+               [out] uint32 *pType,
+               [out, size_is(cbData)] uint8 *pData,
+               [in]  uint32 cbData,
+               [out] uint32 *pcbData
+       );
+
+       /******************/
+       /* Function: 0x1c */
+
+       [public] WERROR winspool_AsyncEnumPrinterDataEx(
+               [in]  PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pKeyName,
+               [out, size_is(cbEnumValues)] uint8 *pEnumValues,
+               [in]  uint32 cbEnumValues,
+               [out] uint32 *pcbEnumValues,
+               [out] uint32 *pnEnumValues
+       );
+
+       /******************/
+       /* Function: 0x1d */
+
+       [public] WERROR winspool_AsyncEnumPrinterKey(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pKeyName,
+               [out, size_is(cbSubkey/2)] uint16 *pSubkey,
+               [in]  uint32 cbSubkey,
+               [out] uint32 *pcbSubkey
+       );
+
+       /******************/
+       /* Function: 0x1e */
+
+       WERROR winspool_AsyncDeletePrinterData(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pValueName
+       );
+
+       /******************/
+       /* Function: 0x1f */
+
+       WERROR winspool_AsyncDeletePrinterDataEx(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pKeyName,
+               [in] [string,charset(UTF16)] uint16 *pValueName
+       );
+
+       /******************/
+       /* Function: 0x20 */
+
+       WERROR winspool_AsyncDeletePrinterKey(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] [string,charset(UTF16)] uint16 *pKeyName
+       );
+
+       /******************/
+       /* Function: 0x21 */
+
+       WERROR winspool_AsyncXcvData(
+               [in] PRINTER_HANDLE hXcv,
+               [in] [string,charset(UTF16)] uint16 *pszDataName,
+               [in, size_is(cbInputData)] uint8 *pInputData,
+               [in] uint32 cbInputData,
+               [out, size_is(cbOutputData)] uint8 *pOutputData,
+               [in] uint32 cbOutputData,
+               [out] uint32 *pcbOutputNeeded,
+               [in, out] uint32 *pdwStatus
+       );
+
+       /******************/
+       /* Function: 0x22 */
+
+       WERROR winspool_AsyncSendRecvBidiData (
+               [in] PRINTER_HANDLE hPrinter,
+               [in,unique] [string,charset(UTF16)] uint16 *pAction,
+               [in] RPC_BIDI_REQUEST_CONTAINER* pReqData,
+               [out] RPC_BIDI_RESPONSE_CONTAINER** ppRespData
+       );
+
+       /******************/
+       /* Function: 0x23 */
+
+       WERROR winspool_AsyncCreatePrinterIC(
+               [in] PRINTER_HANDLE hPrinter,
+               [out] GDI_HANDLE *pHandle,
+               [in] spoolss_DevmodeContainer *pDevModeContainer
+       );
+
+       /******************/
+       /* Function: 0x24 */
+
+       WERROR winspool_AsyncPlayGdiScriptOnPrinterIC(
+               [in] GDI_HANDLE hPrinterIC,
+               [in, size_is(cIn)] uint8 *pIn,
+               [in] uint32 cIn,
+               [out, size_is(cOut)] uint8 *pOut,
+               [in] uint32 cOut,
+               [in] uint32 ul
+       );
+
+       /******************/
+       /* Function: 0x25 */
+
+       WERROR winspool_AsyncDeletePrinterIC(
+               [in, out] GDI_HANDLE *phPrinterIC
+       );
+
+       /******************/
+       /* Function: 0x26 */
+
+       WERROR winspool_AsyncEnumPrinters(
+               [in] uint32 Flags,
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pPrinterEnum,
+               [in]  uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x27 */
+
+       [public] WERROR winspool_AsyncAddPrinterDriver(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] spoolss_AddDriverInfoCtr *pDriverContainer,
+               [in] uint32 dwFileCopyFlags
+       );
+
+       /******************/
+       /* Function: 0x28 */
+
+       WERROR winspool_AsyncEnumPrinterDrivers(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pDrivers,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x29 */
+
+       [public] WERROR winspool_AsyncGetPrinterDriverDirectory(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pDriverDirectory,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x2a */
+
+       WERROR winspool_AsyncDeletePrinterDriver(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] [string,charset(UTF16)] uint16 *pDriverName
+       );
+
+       /******************/
+       /* Function: 0x2b */
+
+       WERROR winspool_AsyncDeletePrinterDriverEx(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] [string,charset(UTF16)] uint16 *pDriverName,
+               [in] uint32 dwDeleteFlag,
+               [in] uint32 dwVersionNum
+       );
+
+       /******************/
+       /* Function: 0x2c */
+
+       WERROR winspool_AsyncAddPrintProcessor(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] [string,charset(UTF16)] uint16 *pPathName,
+               [in] [string,charset(UTF16)] uint16 *pPrintProcessorName
+       );
+
+       /******************/
+       /* Function: 0x2d */
+
+       WERROR winspool_AsyncEnumPrintProcessors(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pPrintProcessorInfo,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x2e */
+
+       WERROR winspool_AsyncGetPrintProcessorDirectory(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pPrintProcessorDirectory,
+               [in] uint32 cbBuf,
+               [out] uint32 *pcbNeeded
+       );
+
+       /******************/
+       /* Function: 0x2f */
+
+       WERROR winspool_AsyncEnumPorts(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pPort,
+               [in]  uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x30 */
+
+       WERROR winspool_AsyncEnumMonitors(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pMonitor,
+               [in]  uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x31 */
+
+       WERROR winspool_AsyncAddPort(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in] spoolss_SetPortInfoContainer *pPortContainer,
+               [in] spoolss_PortVarContainer *pPortVarContainer,
+               [in] [string,charset(UTF16)] uint16 *pMonitorName
+       );
+
+       /******************/
+       /* Function: 0x32 */
+
+       WERROR winspool_AsyncSetPort(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in,unique] [string,charset(UTF16)] uint16 *pPortName,
+               [in] spoolss_SetPortInfoContainer *pPortContainer
+       );
+
+       /******************/
+       /* Function: 0x33 */
+
+       WERROR winspool_AsyncAddMonitor(
+               [in,unique] [string,charset(UTF16)] uint16 *Name,
+               [in] spoolss_MonitorContainer *pMonitorContainer
+       );
+
+       /******************/
+       /* Function: 0x34 */
+
+       WERROR winspool_AsyncDeleteMonitor(
+               [in,unique] [string,charset(UTF16)] uint16 *Name,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] [string,charset(UTF16)] uint16 *pMonitorName
+       );
+
+       /******************/
+       /* Function: 0x35 */
+
+       WERROR winspool_AsyncDeletePrintProcessor(
+               [in,unique] [string,charset(UTF16)] uint16 *Name,
+               [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+               [in] [string,charset(UTF16)] uint16 *pPrintProcessorName
+       );
+
+       /******************/
+       /* Function: 0x36 */
+
+       WERROR winspool_AsyncEnumPrintProcessorDatatypes(
+               [in,unique] [string,charset(UTF16)] uint16 *pName,
+               [in,unique] [string,charset(UTF16)] uint16 *pPrintProcessorName,
+               [in] uint32 Level,
+               [in, out, unique, size_is(cbBuf)] uint8 *pDatatypes,
+               [in]  uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x37 */
+
+       WERROR winspool_AsyncAddPerMachineConnection(
+               [in,unique] [string,charset(UTF16)] uint16 *pServer,
+               [in] [string,charset(UTF16)] uint16 *pPrinterName,
+               [in] [string,charset(UTF16)] uint16 *pPrintServer,
+               [in] [string,charset(UTF16)] uint16 *pProvider
+       );
+
+       /******************/
+       /* Function: 0x38 */
+
+       WERROR winspool_AsyncDeletePerMachineConnection(
+               [in,unique] [string,charset(UTF16)] uint16 *pServer,
+               [in] [string,charset(UTF16)] uint16 *pPrinterName
+       );
+
+       /******************/
+       /* Function: 0x39 */
+
+       WERROR winspool_AsyncEnumPerMachineConnections(
+               [in,unique] [string,charset(UTF16)] uint16 *pServer,
+               [in, out, unique, size_is(cbBuf)] uint8 *pPrinterEnum,
+               [in]  uint32 cbBuf,
+               [out] uint32 *pcbNeeded,
+               [out] uint32 *pcReturned
+       );
+
+       /******************/
+       /* Function: 0x3a */
+
+       typedef enum {
+               winspool_PropertyTypeString = 1,
+               winspool_PropertyTypeInt32 = 2,
+               winspool_PropertyTypeInt64 = 3,
+               winspool_PropertyTypeByte = 4,
+               winspool_PropertyTypeTime = 5,
+               winspool_PropertyTypeDevMode = 6,
+               winspool_PropertyTypeSD = 7,
+               winspool_PropertyTypeNotificationReply = 8,
+               winspool_PropertyTypeNotificationOptions = 9
+       } winspool_PrintPropertyType;
+
+       typedef [ms_union,switch_type(winspool_PrintPropertyType)] union {
+               [case(winspool_PropertyTypeString)]     [string,charset(UTF16)] uint16 *propertyString;
+               [case(winspool_PropertyTypeInt32)]      uint32 propertyInt32;
+               [case(winspool_PropertyTypeInt64)]      hyper propertyInt64;
+               [case(winspool_PropertyTypeByte)]       uint8 propertyByte;
+               [case(winspool_PropertyTypeTime)]       spoolss_TimeCtr propertyTimeContainer;
+               [case(winspool_PropertyTypeDevMode)]    spoolss_DevmodeContainer propertyDevModeContainer;
+               [case(winspool_PropertyTypeSD)]         sec_desc_buf propertySDContainer;
+               [case(winspool_PropertyTypeNotificationReply)]  winspool_NOTIFY_REPLY_CONTAINER propertyReplyContainer;
+               [case(winspool_PropertyTypeNotificationOptions)] winspool_NOTIFY_OPTIONS_CONTAINER propertyOptionsContainer;
+       } winspool_PrintPropertyValueUnion;
+
+       typedef struct {
+               winspool_PrintPropertyType PropertyType;
+               [switch_is(PropertyType)] winspool_PrintPropertyValueUnion value;
+       } winspool_PrintPropertyValue;
+
+       typedef struct {
+               [string,charset(UTF16)] uint16 *propertyName;
+               winspool_PrintPropertyValue propertyValue;
+       } winspool_PrintNamedProperty;
+
+       typedef struct {
+               [range(0,50)] uint32 numberOfProperties;
+               [size_is(numberOfProperties), unique] winspool_PrintNamedProperty *propertiesCollection;
+       } winspool_PrintPropertiesCollection;
+
+       [public] HRESULT winspool_SyncRegisterForRemoteNotifications(
+               [in]    PRINTER_HANDLE                  hPrinter,
+               [in]    winspool_PrintPropertiesCollection *pNotifyFilter,
+               [out]   RMTNTFY_HANDLE                 *phRpcHandle
+       );
+
+       /******************/
+       /* Function: 0x3b */
+
+       HRESULT winspool_SyncUnRegisterForRemoteNotifications(
+               [in, out]   RMTNTFY_HANDLE             *phRpcHandle
+       );
+
+       /******************/
+       /* Function: 0x3c */
+
+       HRESULT winspool_SyncRefreshRemoteNotifications(
+               [in]    RMTNTFY_HANDLE                  hRpcHandle,
+               [in]    winspool_PrintPropertiesCollection *pNotifyFilter,
+               [out]   winspool_PrintPropertiesCollection **ppNotifyData
+       );
+
+       /******************/
+       /* Function: 0x3d */
+
+       HRESULT winspool_AsyncGetRemoteNotifications(
+               [in]    RMTNTFY_HANDLE                  hRpcHandle,
+               [out]   winspool_PrintPropertiesCollection **ppNotifyData
+       );
+
+       /******************/
+       /* Function: 0x3e */
+
+       typedef [bitmap32bit] bitmap {
+               IPDFP_FLAG_NONE                 = 0x00000000,
+               IPDFP_COPY_ALL_FILES            = 0x00000001
+       } winspool_InstallPrinterDriverFromPackageFlags;
+
+       HRESULT winspool_AsyncInstallPrinterDriverFromPackage(
+               [in,unique] [string,charset(UTF16)] uint16 *pszServer,
+               [in,unique] [string,charset(UTF16)] uint16 *pszInfPath,
+               [in] [string,charset(UTF16)] uint16 *pszDriverName,
+               [in] [string,charset(UTF16)] uint16 *pszEnvironment,
+               [in] winspool_InstallPrinterDriverFromPackageFlags dwFlags
+       );
+
+       /******************/
+       /* Function: 0x3f */
+
+       typedef [bitmap32bit] bitmap {
+               UPDP_FLAG_NONE          = 0x00000000,
+               UPDP_UPLOAD_ALWAYS      = 0x00000002,
+               UPDP_CHECK_DRIVERSTORE  = 0x00000004
+       } winspool_UploadPrinterDriverPackageFlags;
+
+       HRESULT winspool_AsyncUploadPrinterDriverPackage(
+               [in,unique] [string,charset(UTF16)] uint16 *pszServer,
+               [in] [string,charset(UTF16)] uint16 *pszInfPath,
+               [in] [string,charset(UTF16)] uint16 *pszEnvironment,
+               [in] winspool_UploadPrinterDriverPackageFlags dwFlags,
+               [in, out, unique, size_is(*pcchDestInfPath)] [charset(UTF16)] uint16 *pszDestInfPath,
+               [in, out]                  uint32 *pcchDestInfPath
+       );
+
+       /******************/
+       /* Function: 0x40 */
+
+       [public] HRESULT winspool_AsyncGetCorePrinterDrivers(
+               [in,unique] [string,charset(UTF16)] uint16 *pszServer,
+               [in] [string,charset(UTF16)] uint16 *pszEnvironment,
+               [in]                       uint32     cchCoreDrivers,
+               [in, size_is(cchCoreDrivers)]  uint16 *pszzCoreDriverDependencies,
+               [in]                       uint32     cCorePrinterDrivers,
+               [out, size_is(cCorePrinterDrivers)]  spoolss_CorePrinterDriver *pCorePrinterDrivers
+       );
+
+       /******************/
+       /* Function: 0x41 */
+
+       HRESULT winspool_AsyncCorePrinterDriverInstalled(
+               [in,unique] [string,charset(UTF16)] uint16 *pszServer,
+               [in] [string,charset(UTF16)] uint16 *pszEnvironment,
+               [in]                       GUID      CoreDriverGUID,
+               [in]                       NTTIME  ftDriverDate,
+               [in]                       hyper dwlDriverVersion,
+               [out]       int *pbDriverInstalled
+       );
+
+       /******************/
+       /* Function: 0x42 */
+
+       HRESULT winspool_AsyncGetPrinterDriverPackagePath(
+               [in,unique] [string,charset(UTF16)] uint16 *pszServer,
+               [in] [string,charset(UTF16)] uint16 *pszEnvironment,
+               [in,unique] [string,charset(UTF16)] uint16 *pszLanguage,
+               [in] [string,charset(UTF16)] uint16 *pszPackageID,
+               [in, out, unique, size_is(cchDriverPackageCab)]  uint16 *pszDriverPackageCab,
+               [in]                       uint32  cchDriverPackageCab,
+               [out]                      uint32 *pcchRequiredSize
+       );
+
+       /******************/
+       /* Function: 0x43 */
+
+       HRESULT winspool_AsyncDeletePrinterDriverPackage(
+               [in,unique] [string,charset(UTF16)] uint16 *pszServer,
+               [in] [string,charset(UTF16)] uint16 *pszInfPath,
+               [in] [string,charset(UTF16)] uint16 *pszEnvironment
+       );
+
+       /******************/
+       /* Function: 0x44 */
+
+       WERROR winspool_AsyncReadPrinter(
+               [in]                    PRINTER_HANDLE  hPrinter,
+               [out, size_is(cbBuf)]   uint8 *pBuf,
+               [in]                    uint32           cbBuf,
+               [out]                   uint32 *pcNoBytesRead
+       );
+
+       /******************/
+       /* Function: 0x45 */
+
+       WERROR winspool_AsyncResetPrinter(
+               [in]                    PRINTER_HANDLE     hPrinter,
+               [in,unique] [string,charset(UTF16)] uint16 *pDatatype,
+               [in]                    spoolss_DevmodeContainer *pDevModeContainer
+       );
+
+       /******************/
+       /* Function: 0x46 */
+
+       WERROR winspool_AsyncGetJobNamedPropertyValue(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId,
+               [in] [string,charset(UTF16)] uint16 *pszName,
+               [out] spoolss_PrintPropertyValue *pValue
+       );
+
+       /******************/
+       /* Function: 0x47 */
+
+       [public] WERROR winspool_AsyncSetJobNamedProperty(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId,
+               [in] spoolss_PrintNamedProperty *pProperty
+       );
+
+       /******************/
+       /* Function: 0x48 */
+
+       WERROR winspool_AsyncDeleteJobNamedProperty(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId,
+               [in] [string,charset(UTF16)] uint16 *pszName
+       );
+
+       /******************/
+       /* Function: 0x49 */
+
+       WERROR winspool_AsyncEnumJobNamedProperties(
+               [in] PRINTER_HANDLE hPrinter,
+               [in] uint32 JobId,
+               [out] uint32 *pcProperties,
+               [out, size_is(,*pcProperties)] spoolss_PrintNamedProperty **ppProperties
+       );
+
+       /******************/
+       /* Function: 0x4a */
+
+       WERROR winspool_AsyncLogJobInfoForBranchOffice(
+               [in] PRINTER_HANDLE hPrinter,
+               [in,ref] spoolss_BranchOfficeJobDataContainer *pBranchOfficeJobDataContainer
+       );
+}