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 > > //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 -- 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