summaryrefslogtreecommitdiff
path: root/librpc/gen_ndr/cli_spoolss.c
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/gen_ndr/cli_spoolss.c')
-rw-r--r--librpc/gen_ndr/cli_spoolss.c172
1 files changed, 99 insertions, 73 deletions
diff --git a/librpc/gen_ndr/cli_spoolss.c b/librpc/gen_ndr/cli_spoolss.c
index 1071f2a3a8..18086843ca 100644
--- a/librpc/gen_ndr/cli_spoolss.c
+++ b/librpc/gen_ndr/cli_spoolss.c
@@ -14,7 +14,7 @@ NTSTATUS rpccli_spoolss_EnumPrinters(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_PrinterInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -54,7 +54,7 @@ NTSTATUS rpccli_spoolss_EnumPrinters(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -173,7 +173,7 @@ NTSTATUS rpccli_spoolss_GetJob(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_JobInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetJob r;
@@ -212,7 +212,7 @@ NTSTATUS rpccli_spoolss_GetJob(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -231,7 +231,7 @@ NTSTATUS rpccli_spoolss_EnumJobs(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_JobInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -272,7 +272,7 @@ NTSTATUS rpccli_spoolss_EnumJobs(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -427,7 +427,7 @@ NTSTATUS rpccli_spoolss_GetPrinter(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_PrinterInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinter r;
@@ -465,7 +465,7 @@ NTSTATUS rpccli_spoolss_GetPrinter(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -524,7 +524,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterDrivers(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_DriverInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -564,7 +564,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterDrivers(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -624,7 +624,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_DriverDirectoryInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterDriverDirectory r;
@@ -663,7 +663,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -675,7 +675,6 @@ NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_DeletePrinterDriver(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
- struct policy_handle *handle /* [in] [ref] */,
const char *server /* [in] [unique,charset(UTF16)] */,
const char *architecture /* [in] [charset(UTF16)] */,
const char *driver /* [in] [charset(UTF16)] */,
@@ -685,7 +684,6 @@ NTSTATUS rpccli_spoolss_DeletePrinterDriver(struct rpc_pipe_client *cli,
NTSTATUS status;
/* In parameters */
- r.in.handle = handle;
r.in.server = server;
r.in.architecture = architecture;
r.in.driver = driver;
@@ -724,12 +722,20 @@ NTSTATUS rpccli_spoolss_DeletePrinterDriver(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_AddPrintProcessor(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ const char *server /* [in] [unique,charset(UTF16)] */,
+ const char *architecture /* [in] [charset(UTF16)] */,
+ const char *path_name /* [in] [charset(UTF16)] */,
+ const char *print_processor_name /* [in] [charset(UTF16)] */,
WERROR *werror)
{
struct spoolss_AddPrintProcessor r;
NTSTATUS status;
/* In parameters */
+ r.in.server = server;
+ r.in.architecture = architecture;
+ r.in.path_name = path_name;
+ r.in.print_processor_name = print_processor_name;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_AddPrintProcessor, &r);
@@ -771,7 +777,7 @@ NTSTATUS rpccli_spoolss_EnumPrintProcessors(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_PrintProcessorInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -811,7 +817,7 @@ NTSTATUS rpccli_spoolss_EnumPrintProcessors(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -868,7 +874,7 @@ NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t level /* [in] */,
union spoolss_DocumentInfo info /* [in] [switch_is(level)] */,
- uint32_t job_id /* [out] */,
+ uint32_t *job_id /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_StartDocPrinter r;
@@ -902,7 +908,7 @@ NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
+ *job_id = *r.out.job_id;
/* Return result */
if (werror) {
@@ -960,7 +966,7 @@ NTSTATUS rpccli_spoolss_WritePrinter(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
DATA_BLOB data /* [in] */,
uint32_t _data_size /* [in] [value(r->in.data.length)] */,
- uint32_t num_written /* [out] */,
+ uint32_t *num_written /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_WritePrinter r;
@@ -994,7 +1000,7 @@ NTSTATUS rpccli_spoolss_WritePrinter(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
+ *num_written = *r.out.num_written;
/* Return result */
if (werror) {
@@ -1093,9 +1099,9 @@ NTSTATUS rpccli_spoolss_AbortPrinter(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_ReadPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
+ uint8_t *data /* [out] [ref,size_is(data_size)] */,
uint32_t data_size /* [in] */,
- DATA_BLOB data /* [out] */,
- uint32_t _data_size /* [out] [value(r->out.data.length)] */,
+ uint32_t *_data_size /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_ReadPrinter r;
@@ -1128,8 +1134,8 @@ NTSTATUS rpccli_spoolss_ReadPrinter(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(data, r.out.data, r.in.data_size * sizeof(*data));
+ *_data_size = *r.out._data_size;
/* Return result */
if (werror) {
@@ -1269,9 +1275,9 @@ NTSTATUS rpccli_spoolss_GetPrinterData(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
const char *value_name /* [in] [charset(UTF16)] */,
uint32_t offered /* [in] */,
- enum spoolss_PrinterDataType type /* [out] */,
- union spoolss_PrinterData data /* [out] [subcontext_size(offered),subcontext(4),switch_is(type)] */,
- uint32_t needed /* [out] */,
+ enum spoolss_PrinterDataType *type /* [out] [ref] */,
+ union spoolss_PrinterData data /* [out] [subcontext_size(offered),subcontext(4),switch_is(*type)] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterData r;
@@ -1305,9 +1311,9 @@ NTSTATUS rpccli_spoolss_GetPrinterData(struct rpc_pipe_client *cli,
}
/* Return variables */
+ *type = *r.out.type;
return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -1553,7 +1559,7 @@ NTSTATUS rpccli_spoolss_GetForm(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_FormInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetForm r;
@@ -1592,7 +1598,7 @@ NTSTATUS rpccli_spoolss_GetForm(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -1658,7 +1664,7 @@ NTSTATUS rpccli_spoolss_EnumForms(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_FormInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -1697,7 +1703,7 @@ NTSTATUS rpccli_spoolss_EnumForms(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -1715,7 +1721,7 @@ NTSTATUS rpccli_spoolss_EnumPorts(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_PortInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -1754,7 +1760,7 @@ NTSTATUS rpccli_spoolss_EnumPorts(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -1772,7 +1778,7 @@ NTSTATUS rpccli_spoolss_EnumMonitors(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_MonitorInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
uint32_t count /* [out] */,
WERROR *werror)
{
@@ -1811,7 +1817,7 @@ NTSTATUS rpccli_spoolss_EnumMonitors(struct rpc_pipe_client *cli,
if (info && r.out.info) {
memcpy(info, r.out.info, count * sizeof(*info));
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
return NT_STATUS_NOT_SUPPORTED;
/* Return result */
@@ -2494,9 +2500,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDriver2(struct rpc_pipe_client *cli,
uint32_t client_major_version /* [in] */,
uint32_t client_minor_version /* [in] */,
DATA_BLOB *info /* [out] [unique] */,
- uint32_t needed /* [out] */,
- uint32_t server_major_version /* [out] */,
- uint32_t server_minor_version /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *server_major_version /* [out] [ref] */,
+ uint32_t *server_minor_version /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterDriver2 r;
@@ -2537,9 +2543,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDriver2(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
+ *server_major_version = *r.out.server_major_version;
+ *server_minor_version = *r.out.server_minor_version;
/* Return result */
if (werror) {
@@ -2770,12 +2776,20 @@ NTSTATUS rpccli_spoolss_ReplyOpenPrinter(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_RouterReplyPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ uint32_t flags /* [in] */,
+ uint32_t bufsize /* [in] [range(0,512)] */,
+ uint8_t *buffer /* [in] [unique,size_is(bufsize)] */,
WERROR *werror)
{
struct spoolss_RouterReplyPrinter r;
NTSTATUS status;
/* In parameters */
+ r.in.handle = handle;
+ r.in.flags = flags;
+ r.in.bufsize = bufsize;
+ r.in.buffer = buffer;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_RouterReplyPrinter, &r);
@@ -3397,7 +3411,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterData(struct rpc_pipe_client *cli,
}
/* Return variables */
- memcpy(value_name, r.out.value_name, r.in.value_offered / 2 * sizeof(*value_name));
+ memcpy(CONST_DISCARD(char *, value_name), r.out.value_name, r.in.value_offered / 2 * sizeof(*value_name));
*value_needed = *r.out.value_needed;
*printerdata_type = *r.out.printerdata_type;
*buffer = *r.out.buffer;
@@ -3637,10 +3651,10 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
+ uint32_t *type /* [out] [ref] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
- uint32_t type /* [out] */,
- DATA_BLOB buffer /* [out] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterDataEx r;
@@ -3675,9 +3689,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ *type = *r.out.type;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -3691,10 +3705,10 @@ NTSTATUS rpccli_spoolss_EnumPrinterDataEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
- DATA_BLOB buffer /* [out] */,
- uint32_t needed /* [out] */,
- uint32_t count /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *count /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_EnumPrinterDataEx r;
@@ -3728,9 +3742,9 @@ NTSTATUS rpccli_spoolss_EnumPrinterDataEx(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
+ *count = *r.out.count;
/* Return result */
if (werror) {
@@ -3744,9 +3758,9 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
- uint32_t key_buffer_size /* [out] */,
- uint16_t *key_buffer /* [out] */,
- uint32_t needed /* [in,out] */,
+ uint16_t *key_buffer /* [out] [ref,size_is(key_buffer_size/2)] */,
+ uint32_t key_buffer_size /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_EnumPrinterKey r;
@@ -3755,7 +3769,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.key_name = key_name;
- r.in.needed = needed;
+ r.in.key_buffer_size = key_buffer_size;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_EnumPrinterKey, &r);
@@ -3780,9 +3794,8 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- memcpy(key_buffer, r.out.key_buffer, key_buffer_size * sizeof(*key_buffer));
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(key_buffer, r.out.key_buffer, r.in.key_buffer_size / 2 * sizeof(*key_buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -3841,12 +3854,16 @@ NTSTATUS rpccli_spoolss_DeletePrinterDataEx(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_DeletePrinterKey(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ const char *key_name /* [in] [charset(UTF16)] */,
WERROR *werror)
{
struct spoolss_DeletePrinterKey r;
NTSTATUS status;
/* In parameters */
+ r.in.handle = handle;
+ r.in.key_name = key_name;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterKey, &r);
@@ -3923,12 +3940,22 @@ NTSTATUS rpccli_spoolss_53(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_DeletePrinterDriverEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ const char *server /* [in] [unique,charset(UTF16)] */,
+ const char *architecture /* [in] [charset(UTF16)] */,
+ const char *driver /* [in] [charset(UTF16)] */,
+ uint32_t delete_flags /* [in] */,
+ uint32_t version /* [in] */,
WERROR *werror)
{
struct spoolss_DeletePrinterDriverEx r;
NTSTATUS status;
/* In parameters */
+ r.in.server = server;
+ r.in.architecture = architecture;
+ r.in.driver = driver;
+ r.in.delete_flags = delete_flags;
+ r.in.version = version;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_DeletePrinterDriverEx, &r);
@@ -4091,11 +4118,10 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
const char *function_name /* [in] [charset(UTF16)] */,
DATA_BLOB in_data /* [in] */,
uint32_t _in_data_length /* [in] [value(r->in.in_data.length)] */,
- uint32_t offered /* [in] */,
- uint32_t unknown1 /* [in] */,
- DATA_BLOB out_data /* [out] */,
- uint32_t needed /* [out] */,
- uint32_t unknown2 /* [out] */,
+ uint8_t *out_data /* [out] [ref,size_is(out_data_size)] */,
+ uint32_t out_data_size /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *status_code /* [in,out] [ref] */,
WERROR *werror)
{
struct spoolss_XcvData r;
@@ -4106,8 +4132,8 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
r.in.function_name = function_name;
r.in.in_data = in_data;
r.in._in_data_length = _in_data_length;
- r.in.offered = offered;
- r.in.unknown1 = unknown1;
+ r.in.out_data_size = out_data_size;
+ r.in.status_code = status_code;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_XcvData, &r);
@@ -4132,9 +4158,9 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(out_data, r.out.out_data, r.in.out_data_size * sizeof(*out_data));
+ *needed = *r.out.needed;
+ *status_code = *r.out.status_code;
/* Return result */
if (werror) {