[in,unique] [string,charset(UTF16)] uint16 *servername,
[in,ref] [string,charset(UTF16)] uint16 *architecture,
[in] uint32 core_driver_size,
- [in,size_is(core_driver_size)] [charset(UTF16)] uint16 *core_driver_dependencies,
+ [in,size_is(core_driver_size)] uint16 *core_driver_dependencies,
[in] uint32 core_printer_driver_count,
[out,size_is(core_printer_driver_count)] spoolss_CorePrinterDriver *core_printer_drivers
);
{
struct spoolss_GetCorePrinterDrivers r;
struct spoolss_CorePrinterDriver core_printer_drivers;
- DATA_BLOB blob;
+ DATA_BLOB blob = data_blob_talloc_zero(tctx, 2);
const char **s;
struct dcerpc_binding_handle *b = p->binding_handle;
struct GUID guid;
r.in.servername = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
r.in.architecture = "foobar";
r.in.core_driver_size = 0;
- r.in.core_driver_dependencies = "";
+ r.in.core_driver_dependencies = (uint16_t *)blob.data;
r.in.core_printer_driver_count = 0;
r.out.core_printer_drivers = &core_printer_drivers;
push_reg_multi_sz(tctx, &blob, s),
"push_reg_multi_sz failed");
- r.in.core_driver_size = blob.length;
- r.in.core_driver_dependencies = s[0];
+ r.in.core_driver_size = blob.length/2;
+ r.in.core_driver_dependencies = (uint16_t *)blob.data;
r.in.core_printer_driver_count = 1;
r.out.core_printer_drivers = talloc_zero_array(tctx, struct spoolss_CorePrinterDriver, r.in.core_printer_driver_count);
push_reg_multi_sz(tctx, &blob, s),
"push_reg_multi_sz failed");
- r.in.core_driver_size = blob.length;
- r.in.core_driver_dependencies = s[0];
+ r.in.core_driver_size = blob.length/2;
+ r.in.core_driver_dependencies = (uint16_t *)blob.data;
r.in.core_printer_driver_count = 1;
r.out.core_printer_drivers = talloc_zero_array(tctx, struct spoolss_CorePrinterDriver, r.in.core_printer_driver_count);