Print Driver version recognition
Vopni, Jim
JimV at metrics.com
Mon Jul 16 19:13:16 GMT 2001
John:
I was testing with a bunch of different Canon PCL drivers. Found some
English drivers that didn't work but then had lots of difficulties
with other Languages. The one package of drivers includes the
Canon GP200-225 PCL. You can pick up the drivers in question from
Canon's web site
http://www.canon-europa.com/cgi-bin/CEDD/download.cgi/o135_enx.exe
I was getting the 0.2.0.0 directly from the file version of the DriverFile
which is installed.(looking at the version through Properties->Version)
I just found an Aficio driver with 0.2.512.105. I realize this is a string
but figured it should be the same as the Major/Minor values.
When installing the Canon driver to a Win2K server the NT4 drivers install
properly. I tried replacing the CnP5eE.DLL file versioned 0.2.0.0 with the
2000 driver versioned 0.3.0.0 and MS installed it as a 2000 driver. This
makes me believe that this is what MS is doing to determine the version.
Using the code in the routine get_file_version (nt_printing.c) returns
the major version as "2" and the minor version as "0" I was expecting
to see this the major as "0" given that windows says it is "0.2.0.0"
I haven't chased control blocks since my MVS days so I am not sure what
the correct location/values that should be interrogated.
...Jim
-----Original Message-----
From: REILLY,JOHN R (HP-Roseville,ex1) [mailto:jreilly at hp.com]
Sent: Monday, July 16, 2001 11:54 AM
To: 'samba-technical at lists.samba.org'
Subject: RE: Print Driver version recognition
Jim -
> From: "Vopni, Jim" <JimV at metrics.com>
> To: samba-technical at samba.org
> Subject: Print Driver version recognition
> Date: Fri, 13 Jul 2001 08:33:58 -0400
>
> I have a question regarding how samba determines the OS version of a
driver
> being installed. It is using a function called get_correct_cversion() in
> nt_printing.c
I put this code in last year, and it seemed to be working fine...
> We have run across a number of drivers that are installed incorrectly.
> Samba is recognizing the driver as 2000 when if fact it is a NT4 driver.
> In all cases the version of the Driver file is 0.2.0.0 but the code in
> get_correct_cversion() does not look for this version string.
Recently (about two weeks ago) I have revived a message with the same
complaint, but I didn't have a reproducible case... or the time for that
matter. Could you send me the names of the drivers that have the problem.
> It seems, at least with the drivers we have been using, that the NT4
drivers
> are versioned 0.2.0.0 , 2000 drivers are 0.3.0.0 and the 9x drivers are
> 0.0.0.0 (or not versioned)
Where are you getting the version from? I know of two different bits of
version
information:
* the uint32 MajorOperatingSystemVersion and MinorSubsystemVersion in the
_IMAGE_OPTIONAL_HEADER of the PE file format, which indicates the
version
of the Windows NT operating system. This information is also available
in
the NE file format (although it harder to get at :)
* the 'text' version info. This is what the Rt Click/Properties/VersionTab
displays.
Note: there is no forced sync between these two sets of version information.
I found many driver files with inconsistent values... not surprising since
they are generated by different compiler section/commands.
> What is/was the reason for the current version determination? Is the
> version number of the driver file not sufficient to determine what type it
> is?
Good question. I assumed (whoa big gap in reasoning there!) that because the
Major/MinorOperatingSystemVersion info is necessary (don't let the
'optional'
in _IMAGE_OPTIONAL_HEADER fool you, it is required) for the OS to figure out
if a particular file is useable. Perhaps this is not the case.
> We are putting together a patch to install based on this version number
> but there may be issues that we are not aware of.
There may well be. I admit I used all the info I could find on the web, and
in
MSDN, but it was perhaps not enough.
> ...Jim
> ----------------
> Jim Vopni Software Metrics
> jimv at metrics.com 450 Philips St
> (519) 885-2458 x222 Waterloo Ont. N2L 5J2
Cheers
JohnR
jreilly at hp.com | jreilly at samba.org 916-785-4532
iIPS - internet Imaging & Printing Systems, Hewlett-Packard Co.
8000 Foothills Blvd. Roseville, CA 95747-5659 M/S: 5659
More information about the samba-technical
mailing list