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 <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>
    
    Autobuild-User(master): Günther Deschner <g...@samba.org>
    Autobuild-Date(master): Thu Sep 22 16:16:30 CEST 2016 on sn-devel-144

commit 5b1cc2c9c726b43b7c77476a338676e12852d8a5
Author: Günther Deschner <g...@samba.org>
Date:   Thu May 16 18:20:20 2013 +0200

    s4-torture: add IRemoteWinspool ndr testsuite.
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit ac5e69b86859e00e164acc41e2c5dbce6a2cb2fc
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 15 15:20:32 2013 +0100

    idl: compile iremotewinspool.idl.
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit a13c58574b9fd0f7bfa929642953221ea4b4b3d3
Author: Günther Deschner <g...@samba.org>
Date:   Tue Aug 4 18:52:52 2009 +0200

    librpc: add IRemoteWinspool idl
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit fac947194bda3ab42a25bff40bd3a33c42828fb5
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 4ca831d09cecc1e157eb18b44f4e3c8edec84a13
Author: Günther Deschner <g...@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 <me...@samba.org>
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Signed-off-by: Stefan Metzmacher <me...@samba.org>

commit 52b8b592c28e772986f808d4d463348692baf702
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit b9475e88deaa0626e9d302c7559308b707a96229
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit b78c96d878e959d0f91b13b0ce040c233ac8c6cc
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 23a3abfe0097f782b2cba134db2ead2c5b47237e
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 302cb086a671dfe97d749c4672aecfe61238f350
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit e207febf1526d4ac852426cf95ddb72912074c35
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 7ef26d32170efb479722b16e99011e4a75b57752
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit c6d700ee1fa9e498563318cda8708ec2ef3fd99f
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 1e4ea50a4c4494ffd43fa7b05a85be26670b69ef
Author: Günther Deschner <g...@samba.org>
Date:   Mon Aug 29 14:05:34 2016 +0200

    spoolss: rename spoolss_RpcSendRecvBidiData to spoolss_SendRecvBidiData
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 647615306936db62975965e819223b3c64bde5a0
Author: Günther Deschner <g...@samba.org>
Date:   Mon Aug 29 12:55:23 2016 +0200

    spoolss: rename spoolss_RpcEnumJobNamedProperties to 
spoolss_EnumJobNamedProperties
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit cdf958824ef5e9dac0b5c2d62e9c842437038dd3
Author: Günther Deschner <g...@samba.org>
Date:   Mon Aug 29 12:54:47 2016 +0200

    spoolss: rename spoolss_RpcDeleteJobNamedProperty to 
spoolss_DeleteJobNamedProperty
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 17d94d05317adb219efea8af1b5be4d0b0cf6ee2
Author: Günther Deschner <g...@samba.org>
Date:   Mon Aug 29 12:53:45 2016 +0200

    spoolss: rename spoolss_RpcSetJobNamedProperty to 
spoolss_SetJobNamedProperty
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit d64b316fede2ed527fbc3c8a21e4778328990ca6
Author: Günther Deschner <g...@samba.org>
Date:   Mon Aug 29 12:52:38 2016 +0200

    spoolss: rename spoolss_RpcGetJobNamedPropertyValue to 
spoolss_GetJobNamedPropertyValue
    
    Guenther
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@samba.org>

commit 23f404b7f549e4829378d5c65d13cadab6791ae6
Author: Günther Deschner <g...@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 <g...@samba.org>
    Reviewed-by: Stefan Metzmacher <me...@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

Reply via email to