Cannot Install Print Driver on XP Only

I am building a monolithic print driver with the current WDK, 7600.

Driver is user mode.
DDI version is DDI_DRIVER_VERSION_NT4.

Target platforms are
Windows 7 64 bit
Windows 7 32 bit
Vista 64 bit
Vista 32 bit
XP 32 bit

When I choose Build environment Windows 7 x64 Free Build,
the project compiles with no errors,
installs on a Win 7 64 bit box correctly,
and works flawlessly, creating good output.

When I choose Build environment Windows 7 x86 Free Build,
the project compiles with no errors,
installs on a Win 7 32 bit box correctly,
and works flawlessly, creating good output.

When I choose Build environment Vista x64 Free Build,
the project compiles with no errors,
installs on a Vista 64 bit box correctly,
and works flawlessly, creating good output.

When I choose Build environment Vista x86 Free Build,
the project compiles with no errors,
installs on a Vista 32 bit box correctly,
and works flawlessly, creating good output.

When I choose Build environment XP x86 Free Build,
the project compiles with no errors,
but it will NOT install on a XP 32 bit box at all.
The add printer wizard asks to be pointed to the INF file,
but the process bails and presents a message…

“Unable To Install Printer. Operation could not be completed.”

I have message commands throughout the code which allows one to see all of the funtions which
are called during the install process.

Win 7 64, Win 7 32, Vista 64, Vista 32 all process these messages.

XP 32 does not emit any messages whatsoever, as if the functions are never called, and the process bails.

The souce code contains no switch statements concerning operating system.

The Win 7 64, Win 7 32, Vista 64, Vista 32 and XP 32 build are all accomplished with the EXACT same source code.

The only thing that changes are the chosen build environments in which to run the build utility.

Again, the XP 32 compiles fine with no errors, just like the others.

Is there something very simple I am overlooking? Thanks for any help.

Cary Johnston

What is NTDDI_VERSION set to in your SOURCES file(s)? If you change it
to NTDDI_WINXP does your driver still build?

ScottR

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Thursday, August 05, 2010 4:29 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Cannot Install Print Driver on XP Only

I am building a monolithic print driver with the current WDK, 7600.

Driver is user mode.
DDI version is DDI_DRIVER_VERSION_NT4.

Target platforms are
Windows 7 64 bit
Windows 7 32 bit
Vista 64 bit
Vista 32 bit
XP 32 bit

When I choose Build environment Windows 7 x64 Free Build, the
project compiles with no errors, installs on a Win 7 64 bit
box correctly, and works flawlessly, creating good output.

When I choose Build environment Windows 7 x86 Free Build, the
project compiles with no errors, installs on a Win 7 32 bit
box correctly, and works flawlessly, creating good output.

When I choose Build environment Vista x64 Free Build, the
project compiles with no errors, installs on a Vista 64 bit
box correctly, and works flawlessly, creating good output.

When I choose Build environment Vista x86 Free Build, the
project compiles with no errors, installs on a Vista 32 bit
box correctly, and works flawlessly, creating good output.

When I choose Build environment XP x86 Free Build, the
project compiles with no errors, but it will NOT install on a
XP 32 bit box at all.
The add printer wizard asks to be pointed to the INF file,
but the process bails and presents a message…

“Unable To Install Printer. Operation could not be completed.”

I have message commands throughout the code which allows one
to see all of the funtions which are called during the
install process.

Win 7 64, Win 7 32, Vista 64, Vista 32 all process these messages.

XP 32 does not emit any messages whatsoever, as if the
functions are never called, and the process bails.

The souce code contains no switch statements concerning
operating system.

The Win 7 64, Win 7 32, Vista 64, Vista 32 and XP 32 build
are all accomplished with the EXACT same source code.

The only thing that changes are the chosen build environments
in which to run the build utility.

Again, the XP 32 compiles fine with no errors, just like the others.

Is there something very simple I am overlooking? Thanks for any help.

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

Scott,

Thanks for the reply. My source file contains these lines…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

PEr your suggestion I tried changing it to the following…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(NTDDI_WINXP)

…and now I get compile errors, started by the following…

NTDDI_VERSION setting conflicts _WIN32_WINNT setting.

Cary Johnston

Set all of them (WINVER, _WIN32_WINNT, NTDDI_VERSION,
_NT_TARGET_VERSION) to NTDDI_WINXP or NTDDI_WS03 and see what happens.

My suspicion is that you are using an API that only exists in Vista and
above. Have you tried installing on 2K3?

ScottR

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 11:15 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

Scott,

Thanks for the reply. My source file contains these lines…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

PEr your suggestion I tried changing it to the following…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(NTDDI_WINXP)

…and now I get compile errors, started by the following…

NTDDI_VERSION setting conflicts _WIN32_WINNT setting.

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

Scott,

I set as follows…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(_WIN32_WINNT_WINXP)
NTDDI_VERSION=$(NTDDI_WINXP)

Now I get the following compile errors…

_NT_TARGET_VERSION SET TO WS03
2>errors in directory d:\xpd\xpd_ui
2>c:\winddk\7600.16385.0\bin\makefile.new(6016) : error U1023: syntax error in e
xpression
2>nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 PASS1_NOLIB=1 MA
KEDIR_RELATIVE_TO_BASEDIR= failed - rc = 2

Cary Johnston

Scott,

Sorry, i forgot to answer your other question.

I do not have a a 2K3 box to try an install on.

Cary Johnston

I checked the path and line numebr in the error message, and this is what I found…

MIDL_TARGET_NT40 = NT40
MIDL_TARGET_WIN2K = NT50
MIDL_TARGET_WINXP = NT51
MIDL_TARGET_VISTA = NT60
MIDL_TARGET_WIN7 = NT61

!IFNDEF MIDL_TARGET

! IF $(WIN32_WINNT_VERSION) == 0x0601

Continue to default to Vista due to extra requirement to link to ole32.dll in Win7 stubs

MIDL_TARGET=$(MIDL_TARGET_VISTA)
! ELSEIF $(WIN32_WINNT_VERSION) == 0x0600
MIDL_TARGET=$(MIDL_TARGET_VISTA)
! ELSEIF $(WIN32_WINNT_VERSION) == 0x0502
MIDL_TARGET=$(MIDL_TARGET_WINXP)
! ELSEIF $(WIN32_WINNT_VERSION) == 0x0501
MIDL_TARGET=$(MIDL_TARGET_WIN2K)
! ELSEIF $(WIN32_WINNT_VERSION) == 0x0500
MIDL_TARGET=$(MIDL_TARGET_WIN2K)
! ELSE
! if !$(WIN64) // this is the line that it is choking on
MIDL_NO_ROBUST=1
! else
MIDL_TARGET=$(MIDL_TARGET_WIN2K)
! endif
! ENDIF

!ELSE

The line in question from above is…

! if !$(WIN64) // this is the line that it is choking on

Cary Johnston

xxxxx@hotmail.com wrote:

I checked the path and line numebr in the error message, and this is what I found…

! if !$(WIN64) // this is the line that it is choking on

Are you defining WIN64 in your environment, in your sources file, or in
your makefile.inc?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim,

I did a thorough search and WIN64 does not seem to be defiend anywhere, in any source code, nor sources file, nor makefile.inc

I was wondering if any of these libraries I am linked to are having a fit with a XP target…

TARGETLIBS=$(SDK_LIB_PATH)\advapi32.lib \
$(SDK_LIB_PATH)\user32.lib \
$(SDK_LIB_PATH)\kernel32.lib \
$(SDK_LIB_PATH)\winspool.lib \
$(SDK_LIB_PATH)\shell32.lib \
$(DDK_LIB_PATH)\umpdddi.lib \
$(DDK_LIB_PATH)\gdi32.lib \
$(DDK_LIB_PATH)\Comdlg32.lib

Cary Johnston

Do you really have the double '' in the last two (gdi32.lib &
comdlg32.lib)?

I don’t know if they would cause a problem or not, but if they are there,
I’d correct them and see what happens.

Good luck,

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 2:37 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

Tim,

I did a thorough search and WIN64 does not seem to be defiend anywhere, in
any source code, nor sources file, nor makefile.inc

I was wondering if any of these libraries I am linked to are having a fit
with a XP target…

TARGETLIBS=$(SDK_LIB_PATH)\advapi32.lib \
$(SDK_LIB_PATH)\user32.lib \
$(SDK_LIB_PATH)\kernel32.lib \
$(SDK_LIB_PATH)\winspool.lib \
$(SDK_LIB_PATH)\shell32.lib \
$(DDK_LIB_PATH)\umpdddi.lib \
$(DDK_LIB_PATH)\gdi32.lib \
$(DDK_LIB_PATH)\Comdlg32.lib

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

My monolithic printer driver links against all those as well. And
installs on XP just fine. Assuming that the “\” are typos.

It also seems that if you get to the line in makefile.new which checks
$(WIN64) then that means that WIN32_WINNT_VERSION isn’t defined
correctly (to a known value)?

ScottR

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 2:37 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

Tim,

I did a thorough search and WIN64 does not seem to be defiend
anywhere, in any source code, nor sources file, nor makefile.inc

I was wondering if any of these libraries I am linked to are
having a fit with a XP target…

TARGETLIBS=$(SDK_LIB_PATH)\advapi32.lib \
$(SDK_LIB_PATH)\user32.lib \
$(SDK_LIB_PATH)\kernel32.lib \
$(SDK_LIB_PATH)\winspool.lib \
$(SDK_LIB_PATH)\shell32.lib \
$(DDK_LIB_PATH)\umpdddi.lib \
$(DDK_LIB_PATH)\gdi32.lib \
$(DDK_LIB_PATH)\Comdlg32.lib

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

I’m still using 6001.18002 WDK but in it makefile.plt defines WIN64.

ScottR

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 2:37 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

Tim,

I did a thorough search and WIN64 does not seem to be defiend
anywhere, in any source code, nor sources file, nor makefile.inc

I was wondering if any of these libraries I am linked to are
having a fit with a XP target…

TARGETLIBS=$(SDK_LIB_PATH)\advapi32.lib \
$(SDK_LIB_PATH)\user32.lib \
$(SDK_LIB_PATH)\kernel32.lib \
$(SDK_LIB_PATH)\winspool.lib \
$(SDK_LIB_PATH)\shell32.lib \
$(DDK_LIB_PATH)\umpdddi.lib \
$(DDK_LIB_PATH)\gdi32.lib \
$(DDK_LIB_PATH)\Comdlg32.lib

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

Is it the space before the = in the define of WIN32_WINNT_VERSION?

ScottR

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 11:15 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

Scott,

Thanks for the reply. My source file contains these lines…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

PEr your suggestion I tried changing it to the following…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(NTDDI_WINXP)

…and now I get compile errors, started by the following…

NTDDI_VERSION setting conflicts _WIN32_WINNT setting.

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

mm,

Sharp eye on the double slashes! I changed them to single slashes and everything still compiles the same, i.e., when my “VERSION” info in sources is changed back to my original code, everything compiles, and when I change my “VERSION” info to all be WINXP I get the compile hangup in makefile.new concering WIN64.

Scott,

The only definitions I have used for WIN32_WINNT_VERSION are as follows…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

which is a direct lift from the MSPLOT sample code in WDK 7600.
With those definitions, everyting ALWAYS compiles fine under all build environments
(regardless of OS, platform of free vs checked). With those definitons all version will install
and run with the exception of XP, which will not even install.

The other definiton I have used for WIN32_WINNT_VERSION is…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(_WIN32_WINNT_WINXP)
NTDDI_VERSION=$(NTDDI_WINXP)

Which gives me the compile error hit concerning WIN64.

Also, I note of interest the differrent WDK’s. The documentstion mentions that the 7600 WDK made many changes to enable this sort of multi cross platform/OS version building from the same source code. Perhaps there are problems in the WDK?

Is it the space before the = in the define of WIN32_WINNT_VERSION?

No, I removed the space, same results.

Cary Johnston

Thanks, but really Outlook (2010) deserves the credit - for some reason, it
underlined those two as if they were hyperlinks.

mm

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 3:15 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

mm,

Sharp eye on the double slashes! I changed them to single slashes and
everything still compiles the same, i.e., when my “VERSION” info in sources
is changed back to my original code, everything compiles, and when I change
my “VERSION” info to all be WINXP I get the compile hangup in makefile.new
concering WIN64.

Scott,

The only definitions I have used for WIN32_WINNT_VERSION are as follows…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

which is a direct lift from the MSPLOT sample code in WDK 7600.
With those definitions, everyting ALWAYS compiles fine under all build
environments (regardless of OS, platform of free vs checked). With those
definitons all version will install and run with the exception of XP, which
will not even install.

The other definiton I have used for WIN32_WINNT_VERSION is…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(_WIN32_WINNT_WINXP)
NTDDI_VERSION=$(NTDDI_WINXP)

Which gives me the compile error hit concerning WIN64.

Also, I note of interest the differrent WDK’s. The documentstion mentions
that the 7600 WDK made many changes to enable this sort of multi cross
platform/OS version building from the same source code. Perhaps there are
problems in the WDK?

Is it the space before the = in the define of WIN32_WINNT_VERSION?

No, I removed the space, same results.

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Does the version built using the XP environment install/run on Vista?
It should. Let me rephrase that: a driver, correctly built using the XP
environment, should install/run on Vista.

ScottR

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Friday, August 06, 2010 3:15 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Cannot Install Print Driver on XP Only

mm,

Sharp eye on the double slashes! I changed them to single
slashes and everything still compiles the same, i.e., when my
“VERSION” info in sources is changed back to my original
code, everything compiles, and when I change my “VERSION”
info to all be WINXP I get the compile hangup in makefile.new
concering WIN64.

Scott,

The only definitions I have used for WIN32_WINNT_VERSION are
as follows…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

which is a direct lift from the MSPLOT sample code in WDK 7600.
With those definitions, everyting ALWAYS compiles fine under
all build environments (regardless of OS, platform of free vs
checked). With those definitons all version will install and
run with the exception of XP, which will not even install.

The other definiton I have used for WIN32_WINNT_VERSION is…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(_WIN32_WINNT_WINXP)
NTDDI_VERSION=$(NTDDI_WINXP)

Which gives me the compile error hit concerning WIN64.

Also, I note of interest the differrent WDK’s. The
documentstion mentions that the 7600 WDK made many changes to
enable this sort of multi cross platform/OS version building
from the same source code. Perhaps there are problems in the WDK?

>Is it the space before the = in the define of WIN32_WINNT_VERSION?

No, I removed the space, same results.

Cary Johnston


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online
at http://www.osronline.com/page.cfm?name=ListServer

xxxxx@hotmail.com wrote:

The only definitions I have used for WIN32_WINNT_VERSION are as follows…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(LATEST_WIN32_WINNT_VERSION)
NTDDI_VERSION=$(LATEST_NTDDI_VERSION)

which is a direct lift from the MSPLOT sample code in WDK 7600.
With those definitions, everyting ALWAYS compiles fine under all build environments
(regardless of OS, platform of free vs checked). With those definitons all version will install
and run with the exception of XP, which will not even install.

The other definiton I have used for WIN32_WINNT_VERSION is…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(_WIN32_WINNT_WINXP)
NTDDI_VERSION=$(NTDDI_WINXP)

Which gives me the compile error hit concerning WIN64.

Sure enough, I can duplicate this. Let me do a a few minutes of
makefile hacking.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

xxxxx@hotmail.com wrote:

The other definiton I have used for WIN32_WINNT_VERSION is…

Build with Vista libs but make sure sample can still run downlevel

_NT_TARGET_VERSION=$(_NT_TARGET_VERSION_WINXP)
WIN32_WINNT_VERSION =$(_WIN32_WINNT_WINXP)
NTDDI_VERSION=$(NTDDI_WINXP)

Which gives me the compile error hit concerning WIN64.

Simple problem. We should be ashamed we didn’t see it before.

_WIN32_WINNT_WINXP does not exist. That’s a compiler symbol, defined in
the SDK include files. It’s not a makefile symbol.

Change that to
WIN32_WINNT_VERSION = 0x0501

and all will be well.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Scott R,

Sorry for the delay in response. I had some major problems with my box that I have now solved.

You brought up a very good point: per your suggestion I tried to install the XP build on a Vista box, and just like you said, it installed with no issues! And the output worked as expected.

But it still will not install on an XP box. I got to thinking about it, and I wonder if it is the INF file itself? My INF file (modified from the WDK 7600 MSPLOT INF) uses decorated names to differentiate between NTx86, NTamd64 and NTia64. Is it possible that an XP system does not know what to do with the decorations and therefore just bails?

Since it is pretty short, here is my INF file which I am trying to use for all installs…

//--------------------------------------------------------------------

; XPD.inf for Busta Print Driver
;
; List of supported printers, manufacturers
;

[Version]
Signature=“$Windows NT$”
Provider=%B%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
DriverVer=07/01/2010,0.0.1.1

;
; Manufacturer section.
;
; This section lists all of the manufacturers
; that we will display in the Dialog box
;
[Manufacturer]
%Busta%=Busta, NTx86, NTamd64, NTia64

;
; Model sections.
;
; Each section here corresponds with an entry listed in the
; [Manufacturer] section, above. The models will be displayed in the order
; that they appear in the INF file.
;

[Busta]
“Busta Print Driver” = XPD_SH.DLL, Busta Print Driver

[Busta.NTx86]
“Busta Print Driver” = XPD_SH.DLL, Busta Print Driver

[Busta.NTamd64]
“Busta Print Driver” = XPD_SH.DLL, Busta Print Driver

[Busta.NTia64]
“Busta Print Driver” = XPD_SH.DLL, Busta Print Driver

; Copy Sections
;
; Lists of files that are actually copied. These sections are referenced
; from the installer sections, above. Only create a section if it contains
; two or more files (if we only copy a single file, identify it in the
; installer section, using the @filename notation) or if it’s a color
; profile (since the DestinationDirs can only handle sections, and not
; individual files).
;

[XPD_SH.DLL]
CopyFiles=@XPD_SH.DLL,PRINTER
DataSection=PRINTER_DATA

[PRINTER]
XPD_SH.DLL

;
; Data Sections
;
; These sections contain data that is shared between devices.
;

[PRINTER_DATA]
DriverFile=XPD_SH.DLL
ConfigFile=XPD_SH.DLL

;
; Call SetupSetDirectoryId with 66000 to set the target directory at runtime
; (depending on which environment drivers are getting installed)
;

[DestinationDirs]
DefaultDestDir=66000

;
; Source Disk Section
; This was added to enable Web Point&Print.
; All files added to this must also be added to Layout.INF
;

[SourceDisksNames]
1 = ,

[SourceDisksNames.x86]
1 = ,

[SourceDisksNames.amd64]
1 = ,

[SourceDisksNames.ia64]
1 = ,

[SourceDisksFiles]
xpd_sh.dll = 1,I386

[SourceDisksFiles.X86]
xpd_sh.dll = 1,I386

[SourceDisksFiles.amd64]
xpd_sh.dll = 1,amd64

[SourceDisksFiles.IA64]
xpd_sh.dll = 1,ia64

;
; Localizable Strings
;
[Strings]
;MS=“Microsoft Windows 2000”
PrinterClassName=“Printers”
; Manufacturers
B=“Busta, Inc.”

//-------------------------------------------------------------------------------------

As mentioned, all builds compile with no problem, and all install with this same INF, but the XP build, which WILL install on Vista with this INF, will NOT install on XP with this INF.

Cary Johnston

I don’t think it’s the .INF, although I use a separate .INF for each
architecture.

Did you try setting WIN32_WINNT_VERSION to 0x0501 as Tim suggested? The
fact that the XP version worked on Vista suggests strongly that this
will uncover the problem.

ScottR