printer-spooler issues

dear all
in my virtual printer driver, when i generate output as images,

if i am printing say 600 pages, the print to dialog box (ie save to image)
comes after DrvSplEndPage() is executed in the user mode driver, now if the
output disk has no space left for saving output file, i return FALSE from
DrvSplEndPage()
now consider the following scenarios:

CASE 1. if the spooler is still spooling the print job (spooler displays the
status as “Spooling”), and if FALSE is returned, the print job is
immediately deleted.

CASE 2. in case i wait for spooling to finish, (now the spooler displays the
status as “Printing”), and FALSE is returned, the print job still remains in
the spooler queue, and all the pages are getting processed!

why is this behaviour? the job should be deleted immediately as it is in the
case 1.

any suggestions…
also any links for information on working of spoolers will be highly
appreciated.

best regards
vaibhav

I am not sure if I understand your problem correctly. What is the reason
for using the DrvSplxxx functions? Are you writing a UMPD for NT4? In
any case, from your description it sounds like you will encounter only
case 1 since you return FALSE in DrvSplEndPage which occurs before the
print to dialog.

  • Ashwin

This posting is provided “AS IS” with no warranties, and confers no
rights.

-----Original Message-----
From: Vaibhav Kalia [mailto:xxxxx@newgen.co.in]
Sent: Wednesday, May 01, 2002 5:40 AM
To: NT Developers Interest List
Subject: [ntdev] printer-spooler issues

dear all
in my virtual printer driver, when i generate output as images,

if i am printing say 600 pages, the print to dialog box (ie save to
image) comes after DrvSplEndPage() is executed in the user mode driver,
now if the output disk has no space left for saving output file, i
return FALSE from
DrvSplEndPage()
now consider the following scenarios:

CASE 1. if the spooler is still spooling the print job (spooler displays
the status as “Spooling”), and if FALSE is returned, the print job is
immediately deleted.

CASE 2. in case i wait for spooling to finish, (now the spooler displays
the status as “Printing”), and FALSE is returned, the print job still
remains in the spooler queue, and all the pages are getting processed!

why is this behaviour? the job should be deleted immediately as it is in
the case 1.

any suggestions…
also any links for information on working of spoolers will be highly
appreciated.

best regards
vaibhav


You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to %%email.unsub%%

ashwin,
ya the OS is win nt 4.0
i have a seperate kernel mode and user mode driver (which is not the
implemntation of unidrv)

here is Algo of endpage:

  1. if page is first
    display file save dialog box.

  2. else
    append the page number to name entered when the first page was
    completed.

  3. convert the DIB into the output file say tif etc.

  4. if step 3 fails then return FALSE.

  • *-

the error comes from step 3 that prompts me to return FALSE.

the problem i face is if the print job is spooled fully it keeps on
processing the rest of pages (say error occured on page 5 and total number
is 100, then spooler will be processing the pages 6 to 100 that takes time
and still no output comes as error had occured )
now for the same situation if the spooling is there (the status at spooler
is “Spooling”) and if my step 3 fails for a page, the spooling immediately
stops and the print job is deleted right away.

i hope i able to express myself more clearly now…
are you aware of some links for spooler related information…
thanx & regards
vaibhav

----- Original Message -----
From: “Ashwin Needamangala”
To: “NT Developers Interest List”
Sent: Wednesday, May 01, 2002 10:08 PM
Subject: [ntdev] RE: printer-spooler issues

> I am not sure if I understand your problem correctly. What is the reason
> for using the DrvSplxxx functions? Are you writing a UMPD for NT4? In
> any case, from your description it sounds like you will encounter only
> case 1 since you return FALSE in DrvSplEndPage which occurs before the
> print to dialog.
>
> - Ashwin
>
> This posting is provided “AS IS” with no warranties, and confers no
> rights.
>
>
> -----Original Message-----
> From: Vaibhav Kalia [mailto:xxxxx@newgen.co.in]
> Sent: Wednesday, May 01, 2002 5:40 AM
> To: NT Developers Interest List
> Subject: [ntdev] printer-spooler issues
>
>
> dear all
> in my virtual printer driver, when i generate output as images,
>
> if i am printing say 600 pages, the print to dialog box (ie save to
> image) comes after DrvSplEndPage() is executed in the user mode driver,
> now if the output disk has no space left for saving output file, i
> return FALSE from
> DrvSplEndPage()
> now consider the following scenarios:
>
> CASE 1. if the spooler is still spooling the print job (spooler displays
> the status as “Spooling”), and if FALSE is returned, the print job is
> immediately deleted.
>
> CASE 2. in case i wait for spooling to finish, (now the spooler displays
> the status as “Printing”), and FALSE is returned, the print job still
> remains in the spooler queue, and all the pages are getting processed!
>
> why is this behaviour? the job should be deleted immediately as it is in
> the case 1.
>
> any suggestions…
> also any links for information on working of spoolers will be highly
> appreciated.
>
> best regards
> vaibhav
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> unsubscribe send a blank email to %%email.unsub%%
>
> —
> You are currently subscribed to ntdev as: xxxxx@newgen.co.in
> To unsubscribe send a blank email to %%email.unsub%%

Judging from the NT4 spooler source, it doesn’t look like returning
FALSE from DrvSplEndPage will actually terminate the job while it is
being spooled. I am not sure what the reason for this is. Maybe you can
try to do an abort on the job instead of just returning FALSE.

I am not aware of any spooler-specific documentation that is
available…other than what is present in the DDK docs.

  • Ashwin

This posting is provided “AS IS” with no warranties, and confers no
rights.

-----Original Message-----
From: Vaibhav Kalia [mailto:xxxxx@newgen.co.in]
Sent: Wednesday, May 01, 2002 10:14 AM
To: NT Developers Interest List
Subject: [ntdev] RE: printer-spooler issues

ashwin,
ya the OS is win nt 4.0
i have a seperate kernel mode and user mode driver (which is not the
implemntation of unidrv)

here is Algo of endpage:

  1. if page is first
    display file save dialog box.

  2. else
    append the page number to name entered when the first page was
    completed. 3. convert the DIB into the output file say tif etc.

  3. if step 3 fails then return FALSE.

  • *-

the error comes from step 3 that prompts me to return FALSE.

the problem i face is if the print job is spooled fully it keeps on
processing the rest of pages (say error occured on page 5 and total
number is 100, then spooler will be processing the pages 6 to 100 that
takes time and still no output comes as error had occured ) now for the
same situation if the spooling is there (the status at spooler is
“Spooling”) and if my step 3 fails for a page, the spooling immediately
stops and the print job is deleted right away.

i hope i able to express myself more clearly now…
are you aware of some links for spooler related information… thanx &
regards vaibhav

----- Original Message -----
From: “Ashwin Needamangala”
To: “NT Developers Interest List”
Sent: Wednesday, May 01, 2002 10:08 PM
Subject: [ntdev] RE: printer-spooler issues

> I am not sure if I understand your problem correctly. What is the
> reason for using the DrvSplxxx functions? Are you writing a UMPD for
> NT4? In any case, from your description it sounds like you will
> encounter only case 1 since you return FALSE in DrvSplEndPage which
> occurs before the print to dialog.
>
> - Ashwin
>
> This posting is provided “AS IS” with no warranties, and confers no
> rights.
>
>
> -----Original Message-----
> From: Vaibhav Kalia [mailto:xxxxx@newgen.co.in]
> Sent: Wednesday, May 01, 2002 5:40 AM
> To: NT Developers Interest List
> Subject: [ntdev] printer-spooler issues
>
>
> dear all
> in my virtual printer driver, when i generate output as images,
>
> if i am printing say 600 pages, the print to dialog box (ie save to
> image) comes after DrvSplEndPage() is executed in the user mode
> driver, now if the output disk has no space left for saving output
> file, i return FALSE from
> DrvSplEndPage()
> now consider the following scenarios:
>
> CASE 1. if the spooler is still spooling the print job (spooler
> displays the status as “Spooling”), and if FALSE is returned, the
> print job is immediately deleted.
>
> CASE 2. in case i wait for spooling to finish, (now the spooler
> displays the status as “Printing”), and FALSE is returned, the print
> job still remains in the spooler queue, and all the pages are getting
> processed!
>
> why is this behaviour? the job should be deleted immediately as it is
> in the case 1.
>
> any suggestions…
> also any links for information on working of spoolers will be highly
> appreciated.
>
> best regards
> vaibhav
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> unsubscribe send a blank email to %%email.unsub%%
>
> —
> You are currently subscribed to ntdev as: xxxxx@newgen.co.in To
> unsubscribe send a blank email to %%email.unsub%%


You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to %%email.unsub%%

thanx Ashwin
i was able to solve the problem by calling the SetJob() with parameter
JOB_CONTROL_DELETE.

Now its deleting the job right away.

thanx! it was indeed a great help.
regards
vaibhav
----- Original Message -----
From: “Ashwin Needamangala”
To: “NT Developers Interest List”
Sent: Thursday, May 02, 2002 08:05 AM
Subject: [ntdev] RE: printer-spooler issues

> Judging from the NT4 spooler source, it doesn’t look like returning
> FALSE from DrvSplEndPage will actually terminate the job while it is
> being spooled. I am not sure what the reason for this is. Maybe you can
> try to do an abort on the job instead of just returning FALSE.
>
> I am not aware of any spooler-specific documentation that is
> available…other than what is present in the DDK docs.
>
> - Ashwin
>
> This posting is provided “AS IS” with no warranties, and confers no
> rights.
>
>
> -----Original Message-----
> From: Vaibhav Kalia [mailto:xxxxx@newgen.co.in]
> Sent: Wednesday, May 01, 2002 10:14 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: printer-spooler issues
>
>
> ashwin,
> ya the OS is win nt 4.0
> i have a seperate kernel mode and user mode driver (which is not the
> implemntation of unidrv)
>
> here is Algo of endpage:
> 1. if page is first
> display file save dialog box.
> 2. else
> append the page number to name entered when the first page was
> completed. 3. convert the DIB into the output file say tif etc.
>
> 4. if step 3 fails then return FALSE.
> - *-
>
> the error comes from step 3 that prompts me to return FALSE.
>
> the problem i face is if the print job is spooled fully it keeps on
> processing the rest of pages (say error occured on page 5 and total
> number is 100, then spooler will be processing the pages 6 to 100 that
> takes time and still no output comes as error had occured ) now for the
> same situation if the spooling is there (the status at spooler is
> “Spooling”) and if my step 3 fails for a page, the spooling immediately
> stops and the print job is deleted right away.
>
> i hope i able to express myself more clearly now…
> are you aware of some links for spooler related information… thanx &
> regards vaibhav
>
> ----- Original Message -----
> From: “Ashwin Needamangala”
> To: “NT Developers Interest List”
> Sent: Wednesday, May 01, 2002 10:08 PM
> Subject: [ntdev] RE: printer-spooler issues
>
>
> > I am not sure if I understand your problem correctly. What is the
> > reason for using the DrvSplxxx functions? Are you writing a UMPD for
> > NT4? In any case, from your description it sounds like you will
> > encounter only case 1 since you return FALSE in DrvSplEndPage which
> > occurs before the print to dialog.
> >
> > - Ashwin
> >
> > This posting is provided “AS IS” with no warranties, and confers no
> > rights.
> >
> >
> > -----Original Message-----
> > From: Vaibhav Kalia [mailto:xxxxx@newgen.co.in]
> > Sent: Wednesday, May 01, 2002 5:40 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] printer-spooler issues
> >
> >
> > dear all
> > in my virtual printer driver, when i generate output as images,
> >
> > if i am printing say 600 pages, the print to dialog box (ie save to
> > image) comes after DrvSplEndPage() is executed in the user mode
> > driver, now if the output disk has no space left for saving output
> > file, i return FALSE from
> > DrvSplEndPage()
> > now consider the following scenarios:
> >
> > CASE 1. if the spooler is still spooling the print job (spooler
> > displays the status as “Spooling”), and if FALSE is returned, the
> > print job is immediately deleted.
> >
> > CASE 2. in case i wait for spooling to finish, (now the spooler
> > displays the status as “Printing”), and FALSE is returned, the print
> > job still remains in the spooler queue, and all the pages are getting
> > processed!
> >
> > why is this behaviour? the job should be deleted immediately as it is
> > in the case 1.
> >
> > any suggestions…
> > also any links for information on working of spoolers will be highly
> > appreciated.
> >
> > best regards
> > vaibhav
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> > unsubscribe send a blank email to %%email.unsub%%
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@newgen.co.in To
> > unsubscribe send a blank email to %%email.unsub%%
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@microsoft.com To
> unsubscribe send a blank email to %%email.unsub%%
>
> —
> You are currently subscribed to ntdev as: xxxxx@newgen.co.in
> To unsubscribe send a blank email to %%email.unsub%%