This does appear to have been a known issue on W2K atleast. It looks
like it was fixed on XP, but never backported to W2K. This probably
explains why you are seeing this behavior on W2K. But on XP, you should
not encounter any failures even when your GPD does not require a
resource DLL. The fix was to modify the parser code to not fail when the
root resource DLL name is NULL. We only fail when the root resource DLL
name is not NULL but we can’t load the DLL.
- Ashwin
This posting is provided “AS IS” with no warranties, and confers no
rights.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Kirill ‘Big K’
Katsnelson
Sent: Thursday, September 04, 2003 5:20 PM
To: Windows System Software Developers Interest List
Subject: [ntdev] RE: I Killed My Printer, or Cannot Tame UniDrv on W2K!
Ashwin,
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.
-kkm
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com