diff options
Diffstat (limited to 'librpc/gen_ndr/cli_spoolss.c')
-rw-r--r-- | librpc/gen_ndr/cli_spoolss.c | 172 |
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) { |