[WinPrnDev] Re: Language Monitor2 problems

On Tue, Oct 07, 2008 at 04:51:44PM -0600, Rocky Harting wrote:
> Thanks Steve.
> 
> Unfortunately, MS has not updated the language monitor sample in the DDK/WDK
> for years.  The sample is from the NT days, when they used
> InitializePrintMonitor instead of IntializePrintMonitor2.  This is
> frustrating because they have been saying since Windows 2000 that language
> monitors MUST use InitializePrintMonitor2.  Now, the Windows Logo
> Requirements states you have to use Monitor2 or you can't get your driver
> signed.  Stabbing in the dark here, but I can't be alone because of the WHQL
> requirement.

Well I'm looking in my DDK in %DDKHOME%\src\print\monitors\localmon\localmon.c
and it shows what it does, but this appears to be a port monitor, not a language
monitor.

Have you tried the Microsoft managed newsgroups for support?

Steve

--- 
Stephen J Friedl | Security Consultant |  UNIX Wizard  |   +1 714 544-6561
www.unixwiz.net  | Tustin, Calif. USA  | Microsoft MVP | steve@xxxxxxxxxxx


> -----Original Message-----
> From: winprndev-bounce@xxxxxxxxxxxxx
> [mailto:winprndev-bounce@xxxxxxxxxxxxx]On Behalf Of Steve Friedl
> Sent: Tuesday, October 07, 2008 4:44 PM
> To: winprndev@xxxxxxxxxxxxx
> Subject: [WinPrnDev] Re: Language Monitor2 problems
> 
> 
> On Tue, Oct 07, 2008 at 04:33:22PM -0600, Rocky Harting wrote:
> > 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.
> 
> Well I just added Community Content for this - hopefully the next guy
> won't trip across it like you did.
> 
> Which OS have you observed this behavior on?
> 
> > 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?)
> 
> It says that it's required for Cluster support, so I wonder if that's any
> real clue. Are there any language monitor samples in the DDK ?
> 
> Steve
> 
> > -----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
> > > http://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
> > > http://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
> > > http://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
> > http://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
> > http://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
> http://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
> http://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 
> http://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 
http://www.freelists.org/list/winprndev

Other related posts: