[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