uint32 unknown29;
} spoolss_PrinterInfo0;
- typedef struct {
+ typedef [gensize] struct {
string32 devicename;
uint16 specversion;
uint16 driverversion;
/******************/
/* Function: 0x01 */
typedef struct {
- uint32 size;
- [subcontext(4),subcontext_size(size)] spoolss_DeviceMode *devmode;
+ [value(_ndr_size_spoolss_DeviceMode(devmode, ndr->flags))] uint32 _ndr_size;
+ [subcontext(4),subcontext_size(_ndr_size)] spoolss_DeviceMode *devmode;
} spoolss_DevmodeContainer;
WERROR spoolss_OpenPrinter(
[in] uint32 level,
[in] DATA_BLOB *buffer,
[in] uint32 offered,
- [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info,
+ [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_JobInfo *info,
[out] uint32 needed
);
[default];
} spoolss_SetPrinterInfo;
- typedef struct {
- uint32 size;
- [subcontext(4),subcontext_size(size)] security_descriptor *sd;
- } spoolss_SecDescContainer;
-
WERROR spoolss_SetPrinter(
[in,ref] policy_handle *handle,
[in] uint32 level,
[in,switch_is(level)] spoolss_SetPrinterInfo info,
[in] spoolss_DevmodeContainer devmode_ctr,
- [in] spoolss_SecDescContainer secdesc_ctr,
+ [in] sec_desc_buf secdesc_ctr,
[in] spoolss_PrinterControl command
);
[in] uint32 level,
[in] DATA_BLOB *buffer,
[in] uint32 offered,
- [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
+ [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_PrinterInfo *info,
[out] uint32 needed
);
[in] uint32 level,
[in] DATA_BLOB *buffer,
[in] uint32 offered,
- [out,subcontext(4),switch_is(level)] spoolss_DriverDirectoryInfo *info,
+ [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_DriverDirectoryInfo *info,
[out] uint32 needed
);
[in] unistr value_name,
[in] uint32 offered,
[out] spoolss_PrinterDataType type,
- [out,subcontext(4),switch_is(type)] spoolss_PrinterData data,
+ [out,subcontext(4),subcontext_size(offered),switch_is(type)] spoolss_PrinterData data,
[out] uint32 needed
);
[in] uint32 level,
[in] DATA_BLOB *buffer,
[in] uint32 offered,
- [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
+ [out,subcontext(4),subcontext_size(offered),switch_is(level)] spoolss_FormInfo *info,
[out] uint32 needed
);
op.in.printername = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(ctx->p));
op.in.datatype = NULL;
- op.in.devmode_ctr.size = 0;
op.in.devmode_ctr.devmode= NULL;
op.in.access_mask = 0;
op.out.handle = &ctx->server_handle;
r.in.handle = handle;
r.in.level = 0;
r.in.info.info1 = NULL;
- r.in.devmode_ctr.size = 0;
r.in.devmode_ctr.devmode= NULL;
- r.in.secdesc_ctr.size = 0;
r.in.secdesc_ctr.sd = NULL;
r.in.command = SPOOLSS_PRINTER_CONTROL_PAUSE;
r.in.handle = handle;
r.in.level = 0;
r.in.info.info1 = NULL;
- r.in.devmode_ctr.size = 0;
r.in.devmode_ctr.devmode= NULL;
- r.in.secdesc_ctr.size = 0;
r.in.secdesc_ctr.sd = NULL;
r.in.command = SPOOLSS_PRINTER_CONTROL_RESUME;
op.in.printername = name;
op.in.datatype = NULL;
- op.in.devmode_ctr.size = 0;
op.in.devmode_ctr.devmode= NULL;
op.in.access_mask = 0;
op.out.handle = &handle;
opEx.in.printername = name;
opEx.in.datatype = NULL;
- opEx.in.devmode_ctr.size = 0;
opEx.in.devmode_ctr.devmode = NULL;
opEx.in.access_mask = 0;
opEx.in.level = 1;
r.in.printername = talloc_asprintf(mem_ctx, "\\\\%s\\%s", dcerpc_server_name(p), name);
r.in.datatype = NULL;
- r.in.devmode_ctr.size = 0;
r.in.devmode_ctr.devmode= NULL;
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r.out.handle = &handle;
}
r.in.datatype = NULL;
- r.in.devmode_ctr.size = 0;
r.in.devmode_ctr.devmode= NULL;
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
r.in.level = 1;