uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_PrinterInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_PrinterInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumPrinters r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_JobInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_JobInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumJobs r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
NTSTATUS rpccli_spoolss_SetPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
- uint32_t level /* [in] */,
- union spoolss_SetPrinterInfo info /* [in] [switch_is(level)] */,
- struct spoolss_DevmodeContainer devmode_ctr /* [in] */,
- struct sec_desc_buf secdesc_ctr /* [in] */,
+ struct spoolss_SetPrinterInfoCtr *info_ctr /* [in] [ref] */,
+ struct spoolss_DevmodeContainer *devmode_ctr /* [in] [ref] */,
+ struct sec_desc_buf *secdesc_ctr /* [in] [ref] */,
enum spoolss_PrinterControl command /* [in] */,
WERROR *werror)
{
/* In parameters */
r.in.handle = handle;
- r.in.level = level;
- r.in.info = info;
+ r.in.info_ctr = info_ctr;
r.in.devmode_ctr = devmode_ctr;
r.in.secdesc_ctr = secdesc_ctr;
r.in.command = command;
NTSTATUS rpccli_spoolss_AddPrinterDriver(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ const char *servername /* [in] [unique,charset(UTF16)] */,
+ struct spoolss_AddDriverInfoCtr *info_ctr /* [in] [ref] */,
WERROR *werror)
{
struct spoolss_AddPrinterDriver r;
NTSTATUS status;
/* In parameters */
+ r.in.servername = servername;
+ r.in.info_ctr = info_ctr;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_AddPrinterDriver, &r);
uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_DriverInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_DriverInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumPrinterDrivers r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
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)] */,
NTSTATUS status;
/* In parameters */
- r.in.handle = handle;
r.in.server = server;
r.in.architecture = architecture;
r.in.driver = driver;
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);
uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_PrintProcessorInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_PrintProcessorInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumPrintProcessors r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
NTSTATUS rpccli_spoolss_GetPrintProcessorDirectory(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ const char *server /* [in] [unique,charset(UTF16)] */,
+ const char *environment /* [in] [unique,charset(UTF16)] */,
+ uint32_t level /* [in] */,
+ DATA_BLOB *buffer /* [in] [unique] */,
+ uint32_t offered /* [in] */,
+ union spoolss_PrintProcessorDirectoryInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrintProcessorDirectory r;
NTSTATUS status;
/* In parameters */
+ r.in.server = server;
+ r.in.environment = environment;
+ r.in.level = level;
+ r.in.buffer = buffer;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_GetPrintProcessorDirectory, &r);
}
/* Return variables */
+ if (info && r.out.info) {
+ *info = *r.out.info;
+ }
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
NTSTATUS rpccli_spoolss_AddJob(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ uint32_t level /* [in] */,
+ uint8_t *buffer /* [in,out] [unique,size_is(offered)] */,
+ uint32_t offered /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_AddJob r;
NTSTATUS status;
/* In parameters */
+ r.in.handle = handle;
+ r.in.level = level;
+ r.in.buffer = buffer;
+ r.in.offered = offered;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_AddJob, &r);
}
/* Return variables */
+ if (buffer && r.out.buffer) {
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ }
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
NTSTATUS rpccli_spoolss_ScheduleJob(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ uint32_t jobid /* [in] */,
WERROR *werror)
{
struct spoolss_ScheduleJob r;
NTSTATUS status;
/* In parameters */
+ r.in.handle = handle;
+ r.in.jobid = jobid;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_ScheduleJob, &r);
uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_FormInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_FormInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumForms r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_PortInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_PortInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumPorts r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
uint32_t level /* [in] */,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
- union spoolss_MonitorInfo *info /* [out] [unique,switch_is(level),size_is(count)] */,
+ uint32_t *count /* [out] [ref] */,
+ union spoolss_MonitorInfo *info /* [out] [unique,switch_is(level),size_is(*count)] */,
uint32_t *needed /* [out] [ref] */,
- uint32_t count /* [out] */,
WERROR *werror)
{
struct spoolss_EnumMonitors r;
}
/* Return variables */
+ *count = *r.out.count;
if (info && r.out.info) {
- memcpy(info, r.out.info, count * sizeof(*info));
+ memcpy(info, r.out.info, *count * sizeof(*info));
}
*needed = *r.out.needed;
- return NT_STATUS_NOT_SUPPORTED;
/* Return result */
if (werror) {
NTSTATUS rpccli_spoolss_ResetPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ const char *data_type /* [in] [unique,charset(UTF16)] */,
+ struct spoolss_DevmodeContainer *devmode_ctr /* [in] [ref] */,
WERROR *werror)
{
struct spoolss_ResetPrinter r;
NTSTATUS status;
/* In parameters */
+ r.in.handle = handle;
+ r.in.data_type = data_type;
+ r.in.devmode_ctr = devmode_ctr;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_ResetPrinter, &r);
const char *server_name /* [in] [charset(UTF16)] */,
uint32_t printer_local /* [in] */,
enum winreg_Type type /* [in] */,
- uint32_t unknown1 /* [in] */,
- uint32_t unknown2 /* [in] */,
+ uint32_t bufsize /* [in] [range(0,512)] */,
+ uint8_t *buffer /* [in] [unique,size_is(bufsize)] */,
struct policy_handle *handle /* [out] [ref] */,
WERROR *werror)
{
r.in.server_name = server_name;
r.in.printer_local = printer_local;
r.in.type = type;
- r.in.unknown1 = unknown1;
- r.in.unknown2 = unknown2;
+ r.in.bufsize = bufsize;
+ r.in.buffer = buffer;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_ReplyOpenPrinter, &r);
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);
struct policy_handle *handle /* [in] [ref] */,
uint32_t flags /* [in] */,
uint32_t options /* [in] */,
- const char *str /* [in] [unique,charset(UTF16)] */,
+ const char *local_machine /* [in] [unique,charset(UTF16)] */,
uint32_t printer_local /* [in] */,
- struct spoolss_NotifyOptionsContainer *t1 /* [in] [unique] */,
+ struct spoolss_NotifyOption *notify_options /* [in] [unique] */,
WERROR *werror)
{
struct spoolss_RemoteFindFirstPrinterChangeNotifyEx r;
r.in.handle = handle;
r.in.flags = flags;
r.in.options = options;
- r.in.str = str;
+ r.in.local_machine = local_machine;
r.in.printer_local = printer_local;
- r.in.t1 = t1;
+ r.in.notify_options = notify_options;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_RemoteFindFirstPrinterChangeNotifyEx, &r);
return werror_to_ntstatus(r.out.result);
}
-NTSTATUS rpccli_spoolss_RouterRefreshPrinterChangeNotification(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- WERROR *werror)
+NTSTATUS rpccli_spoolss_RouterReplyPrinterEx(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ uint32_t color /* [in] */,
+ uint32_t flags /* [in] */,
+ uint32_t *reply_result /* [out] [ref] */,
+ uint32_t reply_type /* [in] */,
+ union spoolss_ReplyPrinterInfo info /* [in] [switch_is(reply_type)] */,
+ WERROR *werror)
{
- struct spoolss_RouterRefreshPrinterChangeNotification r;
+ struct spoolss_RouterReplyPrinterEx r;
NTSTATUS status;
/* In parameters */
+ r.in.handle = handle;
+ r.in.color = color;
+ r.in.flags = flags;
+ r.in.reply_type = reply_type;
+ r.in.info = info;
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_IN_DEBUG(spoolss_RouterRefreshPrinterChangeNotification, &r);
+ NDR_PRINT_IN_DEBUG(spoolss_RouterReplyPrinterEx, &r);
}
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_spoolss,
- NDR_SPOOLSS_ROUTERREFRESHPRINTERCHANGENOTIFICATION,
+ NDR_SPOOLSS_ROUTERREPLYPRINTEREX,
&r);
if (!NT_STATUS_IS_OK(status)) {
}
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_OUT_DEBUG(spoolss_RouterRefreshPrinterChangeNotification, &r);
+ NDR_PRINT_OUT_DEBUG(spoolss_RouterReplyPrinterEx, &r);
}
if (NT_STATUS_IS_ERR(status)) {
}
/* Return variables */
+ *reply_result = *r.out.reply_result;
/* Return result */
if (werror) {
return werror_to_ntstatus(r.out.result);
}
-NTSTATUS rpccli_spoolss_RemoteFindNextPrinterChangeNotifyEx(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- struct policy_handle *handle /* [in] [ref] */,
- uint32_t change_low /* [in] */,
- struct spoolss_NotifyOptionsContainer *container /* [in] [unique] */,
- struct spoolss_NotifyInfo **info /* [out] [ref] */,
- WERROR *werror)
+NTSTATUS rpccli_spoolss_RouterRefreshPrinterChangeNotify(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct policy_handle *handle /* [in] [ref] */,
+ uint32_t change_low /* [in] */,
+ struct spoolss_NotifyOption *options /* [in] [unique] */,
+ struct spoolss_NotifyInfo **info /* [out] [ref] */,
+ WERROR *werror)
{
- struct spoolss_RemoteFindNextPrinterChangeNotifyEx r;
+ struct spoolss_RouterRefreshPrinterChangeNotify r;
NTSTATUS status;
/* In parameters */
r.in.handle = handle;
r.in.change_low = change_low;
- r.in.container = container;
+ r.in.options = options;
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_IN_DEBUG(spoolss_RemoteFindNextPrinterChangeNotifyEx, &r);
+ NDR_PRINT_IN_DEBUG(spoolss_RouterRefreshPrinterChangeNotify, &r);
}
status = cli->dispatch(cli,
mem_ctx,
&ndr_table_spoolss,
- NDR_SPOOLSS_REMOTEFINDNEXTPRINTERCHANGENOTIFYEX,
+ NDR_SPOOLSS_ROUTERREFRESHPRINTERCHANGENOTIFY,
&r);
if (!NT_STATUS_IS_OK(status)) {
}
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_OUT_DEBUG(spoolss_RemoteFindNextPrinterChangeNotifyEx, &r);
+ NDR_PRINT_OUT_DEBUG(spoolss_RouterRefreshPrinterChangeNotify, &r);
}
if (NT_STATUS_IS_ERR(status)) {
NTSTATUS rpccli_spoolss_AddPrinterEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
const char *server /* [in] [unique,charset(UTF16)] */,
- uint32_t level /* [in] */,
- union spoolss_PrinterInfo *info /* [in] [unique,switch_is(level)] */,
- struct spoolss_DevmodeContainer devmode_ctr /* [in] */,
- struct security_descriptor *secdesc /* [in] [unique] */,
- uint32_t ulevel /* [in] */,
- union spoolss_UserLevel userlevel /* [in] [switch_is(ulevel)] */,
+ struct spoolss_SetPrinterInfoCtr *info_ctr /* [in] [ref] */,
+ struct spoolss_DevmodeContainer *devmode_ctr /* [in] [ref] */,
+ struct sec_desc_buf *secdesc_ctr /* [in] [ref] */,
+ struct spoolss_UserLevelCtr *userlevel_ctr /* [in] [ref] */,
+ struct policy_handle *handle /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_AddPrinterEx r;
/* In parameters */
r.in.server = server;
- r.in.level = level;
- r.in.info = info;
+ r.in.info_ctr = info_ctr;
r.in.devmode_ctr = devmode_ctr;
- r.in.secdesc = secdesc;
- r.in.ulevel = ulevel;
- r.in.userlevel = userlevel;
+ r.in.secdesc_ctr = secdesc_ctr;
+ r.in.userlevel_ctr = userlevel_ctr;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_AddPrinterEx, &r);
}
/* Return variables */
+ *handle = *r.out.handle;
/* Return result */
if (werror) {
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
uint32_t enum_index /* [in] */,
- const char *value_name /* [out] [ref,charset(UTF16),size_is(value_offered/2)] */,
+ const char *value_name /* [out] [charset(UTF16),size_is(value_offered/2)] */,
uint32_t value_offered /* [in] */,
uint32_t *value_needed /* [out] [ref] */,
uint32_t *printerdata_type /* [out] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
uint32_t type /* [in] */,
- DATA_BLOB buffer /* [in] */,
+ uint8_t *buffer /* [in] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
WERROR *werror)
{
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);
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);
NTSTATUS rpccli_spoolss_AddPrinterDriverEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
+ const char *servername /* [in] [unique,charset(UTF16)] */,
+ struct spoolss_AddDriverInfoCtr *info_ctr /* [in] [ref] */,
+ uint32_t flags /* [in] */,
WERROR *werror)
{
struct spoolss_AddPrinterDriverEx r;
NTSTATUS status;
/* In parameters */
+ r.in.servername = servername;
+ r.in.info_ctr = info_ctr;
+ r.in.flags = flags;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_AddPrinterDriverEx, &r);