[SCM] Samba Shared Repository - branch master updated
Günther Deschner
gd at samba.org
Thu Sep 22 14:17:05 UTC 2016
The branch, master has been updated
via 872a18b s4-torture: parse spoolss ndr packets using iremotewinspool calls
via 5b1cc2c s4-torture: add IRemoteWinspool ndr testsuite.
via ac5e69b idl: compile iremotewinspool.idl.
via a13c585 librpc: add IRemoteWinspool idl
via fac9471 s4-torture: add new test to compare "ServerSecurityDescriptor" and GetPrinter level 3.
via 4ca831d s3-spoolss: in _spoolss_OpenPrinterEx map max_allowed for the print server
via 52b8b59 s3-spoolss: allow SetPrinter level 3 for server handles as well.
via b9475e8 s3-spoolss: use server sd stored in the backend in _spoolss_GetPrinter level 3
via b78c96d s4-torture: test spoolss_SetPrinter level 3 on server handle.
via 23a3abf s3-rpc_client: add winreg_set_printserver_secdesc.
via 302cb08 s3-rpc_client: add winreg_get_printserver_secdesc.
via e207feb s3-spoolss: Fix _spoolss_GetPrinter behaviour for server handles.
via 7ef26d3 s4-torture: test GetPrinter level 3 on server handle (security descriptor query)
via c6d700e spoolss: rename RPC_PrintNamedProperty to spoolss_PrintNamedProperty
via 1e4ea50 spoolss: rename spoolss_RpcSendRecvBidiData to spoolss_SendRecvBidiData
via 6476153 spoolss: rename spoolss_RpcEnumJobNamedProperties to spoolss_EnumJobNamedProperties
via cdf9588 spoolss: rename spoolss_RpcDeleteJobNamedProperty to spoolss_DeleteJobNamedProperty
via 17d94d0 spoolss: rename spoolss_RpcSetJobNamedProperty to spoolss_SetJobNamedProperty
via d64b316 spoolss: rename spoolss_RpcGetJobNamedPropertyValue to spoolss_GetJobNamedPropertyValue
via 23f404b spoolss: rename spoolss_EnumPrintProcDataTypes to spoolss_EnumPrintProcessorDataTypes
from 0ec0182 ctdb-daemon: Log when removing stale Unix domain socket
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 872a18bbb46db9cff6eb0776415ab6044842b1b0
Author: Günther Deschner <gd at samba.org>
Date: Tue Aug 30 18:55:39 2016 +0200
s4-torture: parse spoolss ndr packets using iremotewinspool calls
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Autobuild-User(master): Günther Deschner <gd at samba.org>
Autobuild-Date(master): Thu Sep 22 16:16:30 CEST 2016 on sn-devel-144
commit 5b1cc2c9c726b43b7c77476a338676e12852d8a5
Author: Günther Deschner <gd at samba.org>
Date: Thu May 16 18:20:20 2013 +0200
s4-torture: add IRemoteWinspool ndr testsuite.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit ac5e69b86859e00e164acc41e2c5dbce6a2cb2fc
Author: Günther Deschner <gd at samba.org>
Date: Tue Jan 15 15:20:32 2013 +0100
idl: compile iremotewinspool.idl.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit a13c58574b9fd0f7bfa929642953221ea4b4b3d3
Author: Günther Deschner <gd at samba.org>
Date: Tue Aug 4 18:52:52 2009 +0200
librpc: add IRemoteWinspool idl
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit fac947194bda3ab42a25bff40bd3a33c42828fb5
Author: Günther Deschner <gd at samba.org>
Date: Tue Sep 13 09:28:03 2016 +0200
s4-torture: add new test to compare "ServerSecurityDescriptor" and GetPrinter level 3.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 4ca831d09cecc1e157eb18b44f4e3c8edec84a13
Author: Günther Deschner <gd at samba.org>
Date: Sat Sep 10 11:11:12 2016 +0200
s3-spoolss: in _spoolss_OpenPrinterEx map max_allowed for the print server
TODO: do real access checks against the security descriptor.
Pair-Programmed-With: Stefan Metzmacher <metze at samba.org>
Signed-off-by: Guenther Deschner <gd at samba.org>
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit 52b8b592c28e772986f808d4d463348692baf702
Author: Günther Deschner <gd at samba.org>
Date: Sat Sep 10 11:10:12 2016 +0200
s3-spoolss: allow SetPrinter level 3 for server handles as well.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit b9475e88deaa0626e9d302c7559308b707a96229
Author: Günther Deschner <gd at samba.org>
Date: Sat Sep 10 11:09:44 2016 +0200
s3-spoolss: use server sd stored in the backend in _spoolss_GetPrinter level 3
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit b78c96d878e959d0f91b13b0ce040c233ac8c6cc
Author: Günther Deschner <gd at samba.org>
Date: Sat Sep 10 11:07:06 2016 +0200
s4-torture: test spoolss_SetPrinter level 3 on server handle.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 23a3abfe0097f782b2cba134db2ead2c5b47237e
Author: Günther Deschner <gd at samba.org>
Date: Sat Sep 10 00:07:23 2016 +0200
s3-rpc_client: add winreg_set_printserver_secdesc.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 302cb086a671dfe97d749c4672aecfe61238f350
Author: Günther Deschner <gd at samba.org>
Date: Sat Sep 10 00:06:27 2016 +0200
s3-rpc_client: add winreg_get_printserver_secdesc.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit e207febf1526d4ac852426cf95ddb72912074c35
Author: Günther Deschner <gd at samba.org>
Date: Fri Sep 9 16:34:57 2016 +0200
s3-spoolss: Fix _spoolss_GetPrinter behaviour for server handles.
Without this the security tab of the print server properties will be obviously
empty and only display a warning.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 7ef26d32170efb479722b16e99011e4a75b57752
Author: Günther Deschner <gd at samba.org>
Date: Fri Sep 9 16:00:38 2016 +0200
s4-torture: test GetPrinter level 3 on server handle (security descriptor query)
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit c6d700ee1fa9e498563318cda8708ec2ef3fd99f
Author: Günther Deschner <gd at samba.org>
Date: Wed Sep 7 07:50:14 2016 +0200
spoolss: rename RPC_PrintNamedProperty to spoolss_PrintNamedProperty
We should try to avoid the RPC_ prefix in structs, enums for spoolss.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 1e4ea50a4c4494ffd43fa7b05a85be26670b69ef
Author: Günther Deschner <gd at samba.org>
Date: Mon Aug 29 14:05:34 2016 +0200
spoolss: rename spoolss_RpcSendRecvBidiData to spoolss_SendRecvBidiData
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 647615306936db62975965e819223b3c64bde5a0
Author: Günther Deschner <gd at samba.org>
Date: Mon Aug 29 12:55:23 2016 +0200
spoolss: rename spoolss_RpcEnumJobNamedProperties to spoolss_EnumJobNamedProperties
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit cdf958824ef5e9dac0b5c2d62e9c842437038dd3
Author: Günther Deschner <gd at samba.org>
Date: Mon Aug 29 12:54:47 2016 +0200
spoolss: rename spoolss_RpcDeleteJobNamedProperty to spoolss_DeleteJobNamedProperty
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 17d94d05317adb219efea8af1b5be4d0b0cf6ee2
Author: Günther Deschner <gd at samba.org>
Date: Mon Aug 29 12:53:45 2016 +0200
spoolss: rename spoolss_RpcSetJobNamedProperty to spoolss_SetJobNamedProperty
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit d64b316fede2ed527fbc3c8a21e4778328990ca6
Author: Günther Deschner <gd at samba.org>
Date: Mon Aug 29 12:52:38 2016 +0200
spoolss: rename spoolss_RpcGetJobNamedPropertyValue to spoolss_GetJobNamedPropertyValue
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 23f404b7f549e4829378d5c65d13cadab6791ae6
Author: Günther Deschner <gd at samba.org>
Date: Fri Aug 26 01:05:20 2016 +0200
spoolss: rename spoolss_EnumPrintProcDataTypes to spoolss_EnumPrintProcessorDataTypes
This change makes automatic mapping for PAR->RPRN opcodes easier.
Guenther
Signed-off-by: Guenther Deschner <gd at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
librpc/idl/spoolss.idl | 40 +-
librpc/idl/winspool.idl | 878 ++++++++++++++++++++++++++++
librpc/idl/wscript_build | 2 +-
librpc/ndr/ndr_spoolss_buf.c | 12 +-
librpc/ndr/ndr_spoolss_buf.h | 8 +-
librpc/wscript_build | 10 +
source3/rpc_client/cli_spoolss.c | 42 +-
source3/rpc_client/cli_winreg_spoolss.c | 106 +++-
source3/rpc_client/cli_winreg_spoolss.h | 34 ++
source3/rpc_server/spoolss/srv_spoolss_nt.c | 137 +++--
source4/librpc/wscript_build | 2 +-
source4/torture/ndr/ndr.c | 1 +
source4/torture/ndr/spoolss.c | 36 +-
source4/torture/ndr/winspool.c | 173 ++++++
source4/torture/rpc/spoolss.c | 357 ++++++++---
source4/torture/wscript_build | 1 +
16 files changed, 1652 insertions(+), 187 deletions(-)
create mode 100644 librpc/idl/winspool.idl
create mode 100644 source4/torture/ndr/winspool.c
Changeset truncated at 500 lines:
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index c9d9b36..9010a95 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -2425,7 +2425,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[default];
} spoolss_PrintProcDataTypesInfo;
- [public,noopnum,noprint] WERROR _spoolss_EnumPrintProcDataTypes(
+ [public,noopnum,noprint] WERROR _spoolss_EnumPrintProcessorDataTypes(
[in,unique] [string,charset(UTF16)] uint16 *servername,
[in,unique] [string,charset(UTF16)] uint16 *print_processor_name,
[in] uint32 level,
@@ -2435,12 +2435,12 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[out,ref] uint32 *needed,
[out,ref] uint32 *count
);
- [public,noopnum,noprint] void __spoolss_EnumPrintProcDataTypes(
+ [public,noopnum,noprint] void __spoolss_EnumPrintProcessorDataTypes(
[in] uint32 level,
[in] uint32 count,
[out,switch_is(level)] spoolss_PrintProcDataTypesInfo info[count]
);
- [nopull,nopush] WERROR spoolss_EnumPrintProcDataTypes(
+ [nopull,nopush] WERROR spoolss_EnumPrintProcessorDataTypes(
[in,unique] [string,charset(UTF16)] uint16 *servername,
[in,unique] [string,charset(UTF16)] uint16 *print_processor_name,
[in] uint32 level,
@@ -3248,7 +3248,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[size_is(Count), unique] RPC_BIDI_RESPONSE_DATA *aData[];
} RPC_BIDI_RESPONSE_CONTAINER;
- WERROR spoolss_RpcSendRecvBidiData(
+ WERROR spoolss_SendRecvBidiData(
[in] policy_handle hPrinter,
[in,unique] [string,charset(UTF16)] uint16 *pAction,
[in] RPC_BIDI_REQUEST_CONTAINER *pReqData,
@@ -3357,49 +3357,49 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
kRpcPropertyTypeInt64 = 3,
kRpcPropertyTypeByte = 4,
kRpcPropertyTypeBuffer = 5
- } RPC_EPrintPropertyType;
+ } spoolss_EPrintPropertyType;
typedef struct {
uint32 cbBuf;
[size_is(cbBuf)] uint8 *pBuf;
} propertyBlob;
- typedef [ms_union,switch_type(RPC_EPrintPropertyType)] union {
+ typedef [ms_union,switch_type(spoolss_EPrintPropertyType)] union {
[case(kRpcPropertyTypeString)] [string,charset(UTF16)] uint16 *propertyString;
[case(kRpcPropertyTypeInt32)] uint32 propertyInt32;
[case(kRpcPropertyTypeInt64)] hyper propertyInt64;
[case(kRpcPropertyTypeByte)] uint8 propertyByte;
[case(kRpcPropertyTypeBuffer)] propertyBlob propertyBlob;
- } RPC_PrintPropertyValueUnion;
+ } spoolss_PrintPropertyValueUnion;
typedef [public] struct {
- RPC_EPrintPropertyType ePropertyType;
- [switch_is(ePropertyType)] RPC_PrintPropertyValueUnion value;
- } RPC_PrintPropertyValue;
+ spoolss_EPrintPropertyType ePropertyType;
+ [switch_is(ePropertyType)] spoolss_PrintPropertyValueUnion value;
+ } spoolss_PrintPropertyValue;
typedef [public] struct {
[string,charset(UTF16)] uint16 *propertyName;
- RPC_PrintPropertyValue propertyValue;
- } RPC_PrintNamedProperty;
+ spoolss_PrintPropertyValue propertyValue;
+ } spoolss_PrintNamedProperty;
- WERROR spoolss_RpcGetJobNamedPropertyValue(
+ WERROR spoolss_GetJobNamedPropertyValue(
[in,ref] policy_handle *hPrinter,
[in] uint32 JobId,
[in] [string,charset(UTF16)] uint16 *pszName,
- [out,ref] RPC_PrintPropertyValue *pValue
+ [out,ref] spoolss_PrintPropertyValue *pValue
);
/******************/
/* Function: 0x6f */
- [public] WERROR spoolss_RpcSetJobNamedProperty(
+ [public] WERROR spoolss_SetJobNamedProperty(
[in,ref] policy_handle *hPrinter,
[in] uint32 JobId,
- [in,ref] RPC_PrintNamedProperty *pProperty
+ [in,ref] spoolss_PrintNamedProperty *pProperty
);
/******************/
/* Function: 0x70 */
- WERROR spoolss_RpcDeleteJobNamedProperty(
+ WERROR spoolss_DeleteJobNamedProperty(
[in,ref] policy_handle *hPrinter,
[in] uint32 JobId,
[in] [string,charset(UTF16)] uint16 *pszName
@@ -3407,11 +3407,11 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
/******************/
/* Function: 0x71 */
- WERROR spoolss_RpcEnumJobNamedProperties(
+ WERROR spoolss_EnumJobNamedProperties(
[in,ref] policy_handle *hPrinter,
[in] uint32 JobId,
[out,ref] uint32 *pcProperties,
- [out,ref,size_is(,*pcProperties)] RPC_PrintNamedProperty **ppProperties
+ [out,ref,size_is(,*pcProperties)] spoolss_PrintNamedProperty **ppProperties
);
/******************/
@@ -3500,7 +3500,7 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor")
[switch_is(eEventType)] spoolss_BranchOfficeJobInfo JobInfo;
} spoolss_BranchOfficeJobData;
- typedef struct {
+ typedef [public] struct {
DWORD cJobDataEntries;
[size_is(cJobDataEntries)] spoolss_BranchOfficeJobData JobData[];
} spoolss_BranchOfficeJobDataContainer;
diff --git a/librpc/idl/winspool.idl b/librpc/idl/winspool.idl
new file mode 100644
index 0000000..0ae9288
--- /dev/null
+++ b/librpc/idl/winspool.idl
@@ -0,0 +1,878 @@
+#include "idl_types.h"
+
+/*
+ * IRemoteWinspool interface definitions
+ *
+ * This IDL defines the "Print System Asynchronous Remote Protocol" MS-PAR
+ * interface.
+ *
+ * Currently only eight functions in this interface have no matching functions
+ * in the "spoolss" interface. All other functions have a 1-to-1 match but
+ * different opcodes than the spoolss interface.
+ *
+ * Every request on this interface requires a object uuid of
+ * "9940CA8E-512F-4C58-88A9-61098D6896BD" to be sent along with the DCE/RPC
+ * header.
+ *
+ * On Windows, this interface uses [ncacn_ip_tcp] transport and requires
+ * DCERPC_AUTH_TYPE_SPNEGO and at least DCERPC_AUTH_LEVEL_PACKET authentication.
+ *
+ *
+ */
+
+import "misc.idl", "security.idl", "winreg.idl", "spoolss.idl";
+
+[
+ uuid("76f03f96-cdfd-44fc-a22c-64950A001209"),
+ version(1.0),
+ endpoint("ncacn_ip_tcp:"),
+ pointer_default(unique),
+ helpstring("IRemoteWinspool SubSystem")
+]
+ interface iremotewinspool
+{
+#if 0
+ /*
+ * pidl does not yet have a real [context_handle] implementation, so we
+ * just use some defines here.
+ */
+
+ typedef [context_handle] void *GDI_HANDLE;
+ typedef [context_handle] void *PRINTER_HANDLE;
+ typedef [context_handle] void *RMTNTFY_HANDLE;
+#else
+#define GDI_HANDLE policy_handle
+#define PRINTER_HANDLE policy_handle
+#define RMTNTFY_HANDLE policy_handle
+#endif
+
+ const string IREMOTEWINSPOOL_OBJECT_GUID = "9940CA8E-512F-4C58-88A9-61098D6896BD";
+
+ /******************/
+ /* Function: 0x00 */
+
+ typedef struct {
+ spoolss_NotifyInfo *pInfo;
+ } winspool_NOTIFY_REPLY_CONTAINER;
+
+ typedef struct {
+ spoolss_NotifyOption *pOptions;
+ } winspool_NOTIFY_OPTIONS_CONTAINER;
+
+ [public] WERROR winspool_AsyncOpenPrinter(
+ [in,unique] [string,charset(UTF16)] uint16 *pPrinterName,
+ [out] PRINTER_HANDLE *pHandle,
+ [in,unique] [string,charset(UTF16)] uint16 *pDatatype,
+ [in] spoolss_DevmodeContainer *pDevModeContainer,
+ [in] uint32 AccessRequired,
+ [in] spoolss_UserLevelCtr *pClientInfo
+ );
+
+ /******************/
+ /* Function: 0x01 */
+
+ WERROR winspool_AsyncAddPrinter(
+ [in,unique] [string,charset(UTF16)] uint16 *pName,
+ [in] spoolss_SetPrinterInfoCtr *pPrinterContainer,
+ [in] spoolss_DevmodeContainer *pDevModeContainer,
+ [in] sec_desc_buf *pSecurityContainer,
+ [in] spoolss_UserLevelCtr *pClientInfo,
+ [out] PRINTER_HANDLE *pHandle
+ );
+
+ /******************/
+ /* Function: 0x02 */
+
+ WERROR winspool_AsyncSetJob(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 JobId,
+ [in, unique] spoolss_JobInfoContainer *pJobContainer,
+ [in] uint32 Command
+ );
+
+ /******************/
+ /* Function: 0x03 */
+
+ WERROR winspool_AsyncGetJob(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 JobId,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pJob,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded
+ );
+
+ /******************/
+ /* Function: 0x04 */
+
+ WERROR winspool_AsyncEnumJobs(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 FirstJob,
+ [in] uint32 NoJobs,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pJob,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded,
+ [out] uint32 *pcReturned
+ );
+
+ /******************/
+ /* Function: 0x05 */
+
+ WERROR winspool_AsyncAddJob(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pAddJob,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded
+ );
+
+ /******************/
+ /* Function: 0x06 */
+
+ WERROR winspool_AsyncScheduleJob(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 JobId
+ );
+
+ /******************/
+ /* Function: 0x07 */
+
+ WERROR winspool_AsyncDeletePrinter(
+ [in] PRINTER_HANDLE hPrinter
+ );
+
+ /******************/
+ /* Function: 0x08 */
+
+ [public] WERROR winspool_AsyncSetPrinter(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] spoolss_SetPrinterInfoCtr *pPrinterContainer,
+ [in] spoolss_DevmodeContainer *pDevModeContainer,
+ [in] sec_desc_buf *pSecurityContainer,
+ [in] uint32 Command
+ );
+
+ /******************/
+ /* Function: 0x09 */
+
+ [public] WERROR winspool_AsyncGetPrinter(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pPrinter,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded
+ );
+
+ /******************/
+ /* Function: 0x0a */
+
+ WERROR winspool_AsyncStartDocPrinter(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] spoolss_DocumentInfoCtr *pDocInfoContainer,
+ [out] uint32 *pJobId
+ );
+
+ /******************/
+ /* Function: 0x0b */
+
+ WERROR winspool_AsyncStartPagePrinter(
+ [in] PRINTER_HANDLE hPrinter
+ );
+
+ /******************/
+ /* Function: 0x0c */
+
+ WERROR winspool_AsyncWritePrinter(
+ [in] PRINTER_HANDLE hPrinter,
+ [in, size_is(cbBuf)] uint8 *pBuf,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcWritten
+ );
+
+ /******************/
+ /* Function: 0x0d */
+
+ WERROR winspool_AsyncEndPagePrinter(
+ [in] PRINTER_HANDLE hPrinter
+ );
+
+ /******************/
+ /* Function: 0x0e */
+
+ WERROR winspool_AsyncEndDocPrinter(
+ [in] PRINTER_HANDLE hPrinter
+ );
+
+ /******************/
+ /* Function: 0x0f */
+
+ WERROR winspool_AsyncAbortPrinter(
+ [in] PRINTER_HANDLE hPrinter
+ );
+
+ /******************/
+ /* Function: 0x10 */
+
+ [public] WERROR winspool_AsyncGetPrinterData(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pValueName,
+ [out] uint32 *pType,
+ [out, size_is(nSize)] uint8 *pData,
+ [in] uint32 nSize,
+ [out] uint32 *pcbNeeded
+ );
+
+ /******************/
+ /* Function: 0x11 */
+
+ WERROR winspool_AsyncGetPrinterDataEx(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pKeyName,
+ [in] [string,charset(UTF16)] uint16 *pValueName,
+ [out] uint32 *pType,
+ [out, size_is(nSize)] uint8 *pData,
+ [in] uint32 nSize,
+ [out] uint32 *pcbNeeded
+ );
+
+ /******************/
+ /* Function: 0x12 */
+
+ WERROR winspool_AsyncSetPrinterData(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pValueName,
+ [in] uint32 Type,
+ [in, size_is(cbData)] uint8 *pData,
+ [in] uint32 cbData
+ );
+
+ /******************/
+ /* Function: 0x13 */
+
+ WERROR winspool_AsyncSetPrinterDataEx(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pKeyName,
+ [in] [string,charset(UTF16)] uint16 *pValueName,
+ [in] uint32 Type,
+ [in, size_is(cbData)] uint8 *pData,
+ [in] uint32 cbData
+ );
+
+ /******************/
+ /* Function: 0x14 */
+
+ [public] WERROR winspool_AsyncClosePrinter(
+ [in, out] PRINTER_HANDLE *phPrinter
+ );
+
+ /******************/
+ /* Function: 0x15 */
+
+ WERROR winspool_AsyncAddForm(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] spoolss_AddFormInfoCtr *pFormInfoContainer
+ );
+
+ /******************/
+ /* Function: 0x16 */
+
+ WERROR winspool_AsyncDeleteForm(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pFormName
+ );
+
+ /******************/
+ /* Function: 0x17 */
+
+ WERROR winspool_AsyncGetForm(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pFormName,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pForm,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded
+ );
+
+ /******************/
+ /* Function: 0x18 */
+
+ WERROR winspool_AsyncSetForm(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pFormName,
+ [in] spoolss_AddFormInfoCtr *pFormInfoContainer
+ );
+
+ /******************/
+ /* Function: 0x19 */
+
+ [public] WERROR winspool_AsyncEnumForms(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pForm,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded,
+ [out] uint32 *pcReturned
+ );
+
+ /******************/
+ /* Function: 0x1a */
+
+ [public] WERROR winspool_AsyncGetPrinterDriver(
+ [in] PRINTER_HANDLE hPrinter,
+ [in,unique] [string,charset(UTF16)] uint16 *pEnvironment,
+ [in] uint32 Level,
+ [in, out, unique, size_is(cbBuf)] uint8 *pDriver,
+ [in] uint32 cbBuf,
+ [out] uint32 *pcbNeeded,
+ [in] uint32 dwClientMajorVersion,
+ [in] uint32 dwClientMinorVersion,
+ [out] uint32 *pdwServerMaxVersion,
+ [out] uint32 *pdwServerMinVersion
+ );
+
+ /******************/
+ /* Function: 0x1b */
+
+ WERROR winspool_AsyncEnumPrinterData(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] uint32 dwIndex,
+ [out, size_is(cbValueName/2)] uint16 *pValueName,
+ [in] uint32 cbValueName,
+ [out] uint32 *pcbValueName,
+ [out] uint32 *pType,
+ [out, size_is(cbData)] uint8 *pData,
+ [in] uint32 cbData,
+ [out] uint32 *pcbData
+ );
+
+ /******************/
+ /* Function: 0x1c */
+
+ [public] WERROR winspool_AsyncEnumPrinterDataEx(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pKeyName,
+ [out, size_is(cbEnumValues)] uint8 *pEnumValues,
+ [in] uint32 cbEnumValues,
+ [out] uint32 *pcbEnumValues,
+ [out] uint32 *pnEnumValues
+ );
+
+ /******************/
+ /* Function: 0x1d */
+
+ [public] WERROR winspool_AsyncEnumPrinterKey(
+ [in] PRINTER_HANDLE hPrinter,
+ [in] [string,charset(UTF16)] uint16 *pKeyName,
+ [out, size_is(cbSubkey/2)] uint16 *pSubkey,
+ [in] uint32 cbSubkey,
+ [out] uint32 *pcbSubkey
+ );
+
--
Samba Shared Repository
More information about the samba-cvs
mailing list