[WinPrnDev] Re: Language Monitor2 problems

  • From: "Rocky Harting" <rocky.harting@xxxxxxxxxxxxxxxxxxxx>
  • To: <winprndev@xxxxxxxxxxxxx>
  • Date: Tue, 7 Oct 2008 16:33:22 -0600

Here is where it says it is both required and optional.

http://msdn.microsoft.com/en-us/library/ms802175.aspx

It does state in the headline "The following table lists the
functions that a language monitor must define", and it lists "ShutDown" in
the table below it, but then says it is optional in italic print in the
description column.



The documentation on ShutDown is sparse, all I can find is the function
description.  I'm not really sure what to do in my ShutDown function.   When
does the spooler call ShutDown (i.e. what conditions)?  Will the spooler
call ClosePort first?  Can the spooler detach the language monitor DLL
without calling ShutDown? (i.e. can I guarantee that ShutDown will always be
called?)




-----Original Message-----
From: winprndev-bounce@xxxxxxxxxxxxx
[mailto:winprndev-bounce@xxxxxxxxxxxxx]On Behalf Of Steve Friedl
Sent: Tuesday, October 07, 2008 4:22 PM
To: winprndev@xxxxxxxxxxxxx
Subject: [WinPrnDev] Re: Language Monitor2 problems


On Tue, Oct 07, 2008 at 01:57:29PM -0600, Rocky Harting wrote:
> DOH, now I feel stupid! I guess it all depends on where in the DDK a
person
> reads from.  I just found an area that says its required.

Which part shows it as optional (link?) - this is worth trying to get
it fixed.

Steve


>
> -----Original Message-----
> From: winprndev-bounce@xxxxxxxxxxxxx
> [mailto:winprndev-bounce@xxxxxxxxxxxxx]On Behalf Of Rocky Harting
> Sent: Monday, October 06, 2008 12:55 PM
> To: winprndev@xxxxxxxxxxxxx
> Subject: [WinPrnDev] Re: Language Monitor2 problems
>
>
> Thank you for your help.  That's just what I was attempting this morning.
> It appears that Language Monitors require the "ShutDown" function, even
> though the DDK falsely claims that function is optional.
>
>
> -----Original Message-----
> From: winprndev-bounce@xxxxxxxxxxxxx
> [mailto:winprndev-bounce@xxxxxxxxxxxxx]On Behalf Of Steve Friedl
> Sent: Monday, October 06, 2008 10:53 AM
> To: winprndev@xxxxxxxxxxxxx
> Subject: [WinPrnDev] Re: Language Monitor2 problems
>
>
> On Mon, Oct 06, 2008 at 09:09:00AM -0600, Rocky Harting wrote:
> > I've been trying to convert our printer language monitor to use
> > InitializePrintMonitor2 from using the old InitializePrintMonitor
> function.
> > The WHQL document states that in order to get our driver signed, we need
> to
> > be using MONITOR2.
> > I'm not doing a port monitor, just language monitor only.  The language
> > monitor should use standard localmon or usbmon.
> > I'm sure that I have everything correct, but when I install the updated
> > driver using the "add printer wizard", I receive the error message: "The
> > specified print monitor does not have the required functions". I've
> checked
> > over and over again and I don't see what is missing. According to the
WDK,
> I
> > am supplying all required functions.
> > I know that my DLLEntry is being called, and I know that my new
> > InitializePrintMonitor2 is being called.
> > Here is my Monitor2 structure:
> > MONITOR2 Monitor2 = {
> >     sizeof(MONITOR2),
> >     NULL,                           // EnumPorts not supported
> >     NULL,                           // OpenPort  not supported
> >     lmOpenPortEx,
> >     lmStartDocPort,
> >     lmWritePort,
> >     lmReadPort,
> >     lmEndDocPort,
> >     lmClosePort,
> >     NULL,                           // AddPort not supported
> >     NULL,                           // AddPortEx not supported
> >     NULL,                           // ConfigurePort not supported
> >     NULL,                           // DeletePort not supported
> >     lmGetPrinterDataFromPort,       // GetPrinterDataFromPort,
> >     NULL,                           // SetPortTimeOuts not supported
> >     NULL,                           // XcvOpenPort not supported
> >     NULL,                           // XcvDataPort not supported
> >     NULL,                           // XcvClosePort not supported
> >     NULL,                           // ShutDown not supported
> >     NULL                            // SendRecvBidi not supported (not
in
> > Win 2000?)
> > };
> >
> > I just added "lmGetPrinterDataFromPort", even though I don't use it.  I
> > added it because I thought maybe there was a mistake in the WDK
> > documentation that said it was optional.
>
> I don't know which functions it's not happy with, but why not make
> up some dummy functions and populate them all: see which one makes the
error
> go away?
>
>
> >
> > I've stripped down InitializePrintMonitor2 to do basically nothing but
> > return the address of the above structure.
> >
> > Thanks if you can help.  I've been stuck for several days on this.
> >
> >
> > ---
> > Questions? First check the UndocPrint pages at
> http://www.undocprint.org/winspool
> >
> > To unsubscribe, visit the List Server page at
> //www.freelists.org/list/winprndev
>
> --
> Stephen J Friedl | Security Consultant |  UNIX Wizard  |   +1 714 544-6561
> www.unixwiz.net  | Tustin, Calif. USA  | Microsoft MVP | steve@xxxxxxxxxxx
> ---
> Questions? First check the UndocPrint pages at
> http://www.undocprint.org/winspool
>
> To unsubscribe, visit the List Server page at
> //www.freelists.org/list/winprndev
>
>
> ---
> Questions? First check the UndocPrint pages at
> http://www.undocprint.org/winspool
>
> To unsubscribe, visit the List Server page at
> //www.freelists.org/list/winprndev
>
>
> ---
> Questions? First check the UndocPrint pages at
http://www.undocprint.org/winspool
>
> To unsubscribe, visit the List Server page at
//www.freelists.org/list/winprndev

--
Stephen J Friedl | Security Consultant |  UNIX Wizard  |   +1 714 544-6561
www.unixwiz.net  | Tustin, Calif. USA  | Microsoft MVP | steve@xxxxxxxxxxx
---
Questions? First check the UndocPrint pages at
http://www.undocprint.org/winspool

To unsubscribe, visit the List Server page at
//www.freelists.org/list/winprndev


---
Questions? First check the UndocPrint pages at 
http://www.undocprint.org/winspool

To unsubscribe, visit the List Server page at 
//www.freelists.org/list/winprndev

Other related posts: