1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

GetPrinterDataEx, SetPrinterDataEx, DeletePrinterDataEx.

(This used to be commit e8367f5735)
This commit is contained in:
Tim Potter 2003-11-28 11:50:33 +00:00
parent d55fc1c9f2
commit 2bb7ff5915
2 changed files with 61 additions and 4 deletions

View File

@ -671,17 +671,30 @@
/******************/
/* Function: 0x4d */
WERROR spoolss_4d(
WERROR spoolss_SetPrinterDataEx(
[in,ref] policy_handle *handle,
[in] unistr key_name,
[in] unistr value_name,
[in] uint32 type,
[in] DATA_BLOB buffer,
[in,out,ref] uint32 *buf_size
);
/******************/
/* Function: 0x4e */
WERROR spoolss_4e(
WERROR spoolss_GetPrinterDataEx(
[in,ref] policy_handle *handle,
[in] unistr key_name,
[in] unistr value_name,
[out] uint32 type,
[out] DATA_BLOB buffer,
[in,out,ref] uint32 *buf_size
);
/******************/
/* Function: 0x4f */
WERROR spoolss_4f(
WERROR spoolss_EnumPrinterDataEx(
[in,ref] policy_handle *handle
);
/******************/
@ -691,7 +704,10 @@
/******************/
/* Function: 0x51 */
WERROR spoolss_51(
WERROR spoolss_DeletePrinterDataEx(
[in,ref] policy_handle *handle,
[in] unistr key_name,
[in] unistr value_name
);
/******************/

View File

@ -438,6 +438,43 @@ BOOL test_GetPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
return True;
}
BOOL test_GetPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle, char *key_name,
char *value_name)
{
NTSTATUS status;
struct spoolss_GetPrinterDataEx r;
uint32 buf_size;
r.in.handle = handle;
r.in.key_name = key_name;
r.in.value_name = value_name;
buf_size = 0;
r.in.buf_size = r.out.buf_size = &buf_size;
printf("Testing GetPrinterDataEx\n");
status = dcerpc_spoolss_GetPrinterDataEx(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("GetPrinterDataEx failed - %s\n", nt_errstr(status));
return False;
}
if (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA)) {
status = dcerpc_spoolss_GetPrinterDataEx(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
printf("GetPrinterDataEx failed - %s/%s\n",
nt_errstr(status), win_errstr(r.out.result));
return False;
}
}
return True;
}
BOOL test_EnumPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
struct policy_handle *handle)
{
@ -475,6 +512,10 @@ BOOL test_EnumPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
test_GetPrinterData(p, mem_ctx, handle, r.out.value_name);
test_GetPrinterDataEx(
p, mem_ctx, handle, "PrinterDriverData",
r.out.value_name);
r.in.enum_index++;
} while (W_ERROR_IS_OK(r.out.result));