From 566418f1a1c6514333965069cda435598fb0a2d4 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 12 May 2010 00:26:24 +0200 Subject: ntprinting: add ntprinting.idl. This generates convenient unmarshalling routines for pulling out spoolss related information out of ntprinters.tdb, ntforms.tdb and ntdrivers.tdb. Guenther --- librpc/idl/ntprinting.idl | 152 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 librpc/idl/ntprinting.idl (limited to 'librpc/idl/ntprinting.idl') diff --git a/librpc/idl/ntprinting.idl b/librpc/idl/ntprinting.idl new file mode 100644 index 0000000000..909829170d --- /dev/null +++ b/librpc/idl/ntprinting.idl @@ -0,0 +1,152 @@ +#include "idl_types.h" + +/* + old s3 spoolss tdb on-disc interface definitions +*/ + +[ + pointer_default(unique), + helpstring("s3 printing tdb formats"), + uuid("a025d3cb-c605-40d6-86e1-4cff18e7dd94"), + helper("../librpc/ndr/ndr_ntprinting.h") +] +interface ntprinting +{ + /* Samba 3 tdb storage format: forms + * "dddddddd" */ + + typedef [flag(NDR_NOALIGN),public] struct { + uint32 position; + uint32 flag; + uint32 width; + uint32 length; + uint32 left; + uint32 top; + uint32 right; + uint32 bottom; + } ntprinting_form; + + void decode_ntprinting_form( + [in] ntprinting_form form + ); + + /* Samba 3 tdb storage format: drivers + * "dffffffff" followed by a remaining buffer of "f" array */ + + typedef [flag(NDR_NOALIGN),public] struct { + uint32 version; + utf8string name; + utf8string environment; + utf8string driverpath; + utf8string datafile; + utf8string configfile; + utf8string helpfile; + utf8string monitorname; + utf8string defaultdatatype; + [flag(STR_UTF8|STR_NOTERM|NDR_REMAINING)] string_array dependent_files; + } ntprinting_driver; + + void decode_ntprinting_driver( + [in] ntprinting_driver driver + ); + + /* Samba 3 tdb storage format: devicemode + * "p" ptr to devicemode + * "ffwwwwwwwwwwwwwwwwwwdddddddddddddd" + * "p" ptr to devicemode private data + * "B" private data blob */ + + typedef [flag(NDR_NOALIGN),public] struct { + /* uint32 devicemode_ptr; */ + utf8string devicename; + utf8string formname; + uint16 specversion; + uint16 driverversion; + uint16 size; + uint16 driverextra; + uint16 orientation; + uint16 papersize; + uint16 paperlength; + uint16 paperwidth; + uint16 scale; + uint16 copies; + uint16 defaultsource; + uint16 printquality; + uint16 color; + uint16 duplex; + uint16 yresolution; + uint16 ttoption; + uint16 collate; + uint16 logpixels; + uint32 fields; + uint32 bitsperpel; + uint32 pelswidth; + uint32 pelsheight; + uint32 displayflags; + uint32 displayfrequency; + uint32 icmmethod; + uint32 icmintent; + uint32 mediatype; + uint32 dithertype; + uint32 reserved1; + uint32 reserved2; + uint32 panningwidth; + uint32 panningheight; + DATA_BLOB *nt_dev_private; + } ntprinting_devicemode; + + /* Samba 3 tdb storage format: printer_data + * "p" ptr to printer_data + * "fdB" */ + + typedef [flag(NDR_NOALIGN),public] struct { + uint32 ptr; + utf8string name; + uint32 type; + DATA_BLOB data; + } ntprinting_printer_data; + + /* Samba 3 tdb storage format: printer_info + * "dddddddddddfffffPfffff" */ + + typedef [flag(NDR_NOALIGN),public] struct { + uint32 attributes; + uint32 priority; + uint32 default_priority; + uint32 starttime; + uint32 untiltime; + uint32 status; + uint32 cjobs; + uint32 averageppm; + uint32 changeid; + uint32 c_setprinter; + uint32 setuptime; + utf8string servername; + utf8string printername; + utf8string sharename; + utf8string portname; + utf8string drivername; + utf8string comment; + utf8string location; + utf8string sepfile; + utf8string printprocessor; + utf8string datatype; + utf8string parameters; + } ntprinting_printer_info; + + /* Abstract Samba 3 printer + * printer_info + * followed by ntprinting_devicemode + * followed by remaining buffer of ntprinting_printer_data array */ + + typedef [flag(NDR_NOALIGN),public,nopull] struct { + ntprinting_printer_info info; + ntprinting_devicemode *devmode; + uint32 count; + ntprinting_printer_data printer_data[count]; + } ntprinting_printer; + + void decode_ntprinting_printer( + [in] ntprinting_printer printer + ); +} -- cgit