RE: I Killed My Printer, or Cannot Tame UniDrv on W2K!


Some time ago, Ashwin Needamangala wrote…

You need to include unires.dll as a resource dll since it contains the
rcid’s for many of the standard names that you use within a GPD.

I in fact do not. Not a single time do I use =MACROS defined in stdnames.gpd,
and I do not even include that file (stdnames.gpd refers to unires.dll
automatically). I use only *Name literal strings and never *rcAnything that
refers to a resource ID.

Also, it sounds like your INF is incorrectly specifying MYFILE.DLL as a
required file.

I am sorry - I was writing from memory and did not reproduce the error
message correctly. The INF wizard actually says that the GPD file does
not refer to a resource DLL. This was a complete fiction on my part.

You should modify this to make sure that only the files that your driver
needs are being installed. The reason for the error
when you go to printer properties is probably because the spooler cannot
locate the resource strings that you are mentioning within the GPD. You
should include unires.dll.

Thanks. I think that either I am royally misunderstanding or that I am
hitting a bug in unidrv.dll. The spec says that both *ResourceDLL and
*Feature RESDLL are optional, however, all samples in the DDK use it.
It is not techinally impossible that such a bug would slip through. I’ll
make a resource DLL and see if it brings any improvement.

I solved my Q3 by stopping spooler and carefully cleaning its registry
settings under CCS/Control/Printers. However, I am still getting *different*
errors when repeating nstallation of the same driver a few times - “Printer
driver not availalbe”, “Operation failed due to lack of resources” and
something re inavailability of print subsystem(?). Once I get an UAE
message box when tried to open printer properties. This makes me think
that random memory gets corrupted when interpreting my GPD script.