uint32 _spoolss_rfnpcnex( pipes_struct *p, SPOOL_Q_RFNPCNEX *q_u, SPOOL_R_RFNPCNEX *r_u);
uint32 _spoolss_enumprinters( pipes_struct *p, SPOOL_Q_ENUMPRINTERS *q_u, SPOOL_R_ENUMPRINTERS *r_u);
uint32 _spoolss_getprinter(pipes_struct *p, SPOOL_Q_GETPRINTER *q_u, SPOOL_R_GETPRINTER *r_u);
-uint32 _spoolss_getprinterdriver2(POLICY_HND *handle, const UNISTR2 *uni_arch, uint32 level,
- uint32 clientmajorversion, uint32 clientminorversion,
- NEW_BUFFER *buffer, uint32 offered,
- uint32 *needed, uint32 *servermajorversion, uint32 *serverminorversion);
-uint32 _spoolss_startpageprinter(POLICY_HND *handle);
-uint32 _spoolss_endpageprinter(POLICY_HND *handle);
-uint32 _spoolss_startdocprinter(POLICY_HND *handle, uint32 level,
- pipes_struct *p, DOC_INFO *docinfo,
- uint32 *jobid);
+uint32 _spoolss_getprinterdriver2(pipes_struct *p, SPOOL_Q_GETPRINTERDRIVER2 *q_u, SPOOL_R_GETPRINTERDRIVER2 *r_u);
+uint32 _spoolss_startpageprinter(pipes_struct *p, SPOOL_Q_STARTPAGEPRINTER *q_u, SPOOL_R_STARTPAGEPRINTER *r_u);
+uint32 _spoolss_endpageprinter(pipes_struct *p, SPOOL_Q_ENDPAGEPRINTER *q_u, SPOOL_R_ENDPAGEPRINTER *r_u);
+uint32 _spoolss_startdocprinter(pipes_struct *p, SPOOL_Q_STARTDOCPRINTER *q_u, SPOOL_R_STARTDOCPRINTER *r_u);
uint32 _spoolss_enddocprinter(POLICY_HND *handle);
uint32 _spoolss_writeprinter( POLICY_HND *handle,
uint32 buffer_size,
return True;
}
-
/********************************************************************
* api_spoolss_getprinter
* called from the spoolss dispatcher
*
********************************************************************/
+
static BOOL api_spoolss_getprinterdriver2(pipes_struct *p)
{
SPOOL_Q_GETPRINTERDRIVER2 q_u;
return False;
}
- /* that's an [in out] buffer */
- new_spoolss_move_buffer(q_u.buffer, &r_u.buffer);
-
- r_u.status = _spoolss_getprinterdriver2(&q_u.handle, &q_u.architecture, q_u.level,
- q_u.clientmajorversion, q_u.clientminorversion,
- r_u.buffer, q_u.offered,
- &r_u.needed, &r_u.servermajorversion, &r_u.serverminorversion);
+ r_u.status = _spoolss_getprinterdriver2(p, &q_u, &r_u);
if(!spoolss_io_r_getprinterdriver2("",&r_u,rdata,0)) {
DEBUG(0,("spoolss_io_r_getprinterdriver2: unable to marshall SPOOL_R_GETPRINTERDRIVER2.\n"));
* called from the spoolss dispatcher
*
********************************************************************/
+
static BOOL api_spoolss_startpageprinter(pipes_struct *p)
{
SPOOL_Q_STARTPAGEPRINTER q_u;
return False;
}
- r_u.status = _spoolss_startpageprinter(&q_u.handle);
+ r_u.status = _spoolss_startpageprinter(p, &q_u, &r_u);
if(!spoolss_io_r_startpageprinter("",&r_u,rdata,0)) {
DEBUG(0,("spoolss_io_r_startpageprinter: unable to marshall SPOOL_R_STARTPAGEPRINTER.\n"));
return True;
}
-
/********************************************************************
* api_spoolss_getprinter
* called from the spoolss dispatcher
*
********************************************************************/
+
static BOOL api_spoolss_endpageprinter(pipes_struct *p)
{
SPOOL_Q_ENDPAGEPRINTER q_u;
return False;
}
- r_u.status = _spoolss_endpageprinter(&q_u.handle);
+ r_u.status = _spoolss_endpageprinter(p, &q_u, &r_u);
if(!spoolss_io_r_endpageprinter("",&r_u,rdata,0)) {
DEBUG(0,("spoolss_io_r_endpageprinter: unable to marshall SPOOL_R_ENDPAGEPRINTER.\n"));
/********************************************************************
********************************************************************/
+
static BOOL api_spoolss_startdocprinter(pipes_struct *p)
{
SPOOL_Q_STARTDOCPRINTER q_u;
return False;
}
- r_u.status = _spoolss_startdocprinter(&q_u.handle,
- q_u.doc_info_container.level, p,
- &q_u.doc_info_container.docinfo,
- &r_u.jobid);
+ r_u.status = _spoolss_startdocprinter(p, &q_u, &r_u);
if(!spoolss_io_r_startdocprinter("",&r_u,rdata,0)) {
DEBUG(0,("spoolss_io_r_startdocprinter: unable to marshall SPOOL_R_STARTDOCPRINTER.\n"));
return True;
}
-
/********************************************************************
********************************************************************/
static BOOL api_spoolss_enddocprinter(pipes_struct *p)
/****************************************************************************
****************************************************************************/
-uint32 _spoolss_getprinterdriver2(POLICY_HND *handle, const UNISTR2 *uni_arch, uint32 level,
- uint32 clientmajorversion, uint32 clientminorversion,
- NEW_BUFFER *buffer, uint32 offered,
- uint32 *needed, uint32 *servermajorversion, uint32 *serverminorversion)
+
+uint32 _spoolss_getprinterdriver2(pipes_struct *p, SPOOL_Q_GETPRINTERDRIVER2 *q_u, SPOOL_R_GETPRINTERDRIVER2 *r_u)
{
+ POLICY_HND *handle = &q_u->handle;
+ UNISTR2 *uni_arch = &q_u->architecture;
+ uint32 level = q_u->level;
+ uint32 clientmajorversion = q_u->clientmajorversion;
+/* uint32 clientminorversion = q_u->clientminorversion; - notused. */
+ NEW_BUFFER *buffer = NULL;
+ uint32 offered = q_u->offered;
+ uint32 *needed = &r_u->needed;
+ uint32 *servermajorversion = &r_u->servermajorversion;
+ uint32 *serverminorversion = &r_u->serverminorversion;
+
fstring servername;
fstring architecture;
int snum;
+ /* that's an [in out] buffer */
+ new_spoolss_move_buffer(q_u->buffer, &r_u->buffer);
+ buffer = r_u->buffer;
+
DEBUG(4,("_spoolss_getprinterdriver2\n"));
*needed=0;
/****************************************************************************
****************************************************************************/
-uint32 _spoolss_startpageprinter(POLICY_HND *handle)
+
+uint32 _spoolss_startpageprinter(pipes_struct *p, SPOOL_Q_STARTPAGEPRINTER *q_u, SPOOL_R_STARTPAGEPRINTER *r_u)
{
+ POLICY_HND *handle = &q_u->handle;
+
Printer_entry *Printer = find_printer_index_by_hnd(handle);
if (OPEN_HANDLE(Printer)) {
/****************************************************************************
****************************************************************************/
-uint32 _spoolss_endpageprinter(POLICY_HND *handle)
+
+uint32 _spoolss_endpageprinter(pipes_struct *p, SPOOL_Q_ENDPAGEPRINTER *q_u, SPOOL_R_ENDPAGEPRINTER *r_u)
{
+ POLICY_HND *handle = &q_u->handle;
+
Printer_entry *Printer = find_printer_index_by_hnd(handle);
if (!OPEN_HANDLE(Printer)) {
return NT_STATUS_NO_PROBLEMO;
}
-
/********************************************************************
* api_spoolss_getprinter
* called from the spoolss dispatcher
*
********************************************************************/
-uint32 _spoolss_startdocprinter(POLICY_HND *handle, uint32 level,
- pipes_struct *p, DOC_INFO *docinfo,
- uint32 *jobid)
+
+uint32 _spoolss_startdocprinter(pipes_struct *p, SPOOL_Q_STARTDOCPRINTER *q_u, SPOOL_R_STARTDOCPRINTER *r_u)
{
+ POLICY_HND *handle = &q_u->handle;
+/* uint32 level = q_u->doc_info_container.level; - notused. */
+ DOC_INFO *docinfo = &q_u->doc_info_container.docinfo;
+ uint32 *jobid = &r_u->jobid;
+
DOC_INFO_1 *info_1 = &docinfo->doc_info_1;
int snum;
pstring jobname;