I have an NT4 (kernel mode) printer driver I am trying to port to be a
user-mode (2K/XP) driver. My first step was to change it to build as
kernel mode using the 2k DDK. That worked (printing worked OK). Then
I changed the driver version to 0.3.x.y (from 0.2.x.y). This version
installed fine (in the “3” directory) and printed fine as well.
Then I #defined USERMODE_DRIVER, switched from win32k.lib to umpdddi.lib
and gdi32.lib, added DrvQueryDriverInfo and made it return TRUE for
DRVQUERY_USERMODE, and rebuilt.
Although this version builds and installs fine, when I attempt to print
to it, DrvEnableDriver gets called with bad parameters. iEngineVersion is
0x1050000 and cj is 1. They should be 0x30101 and 0xc.
I suspect a build problem, however, I can’t figure out what it might be.
I have a sample driver from Paul Yao’s printer driver class, which is
built in exactly the same way and it works fine.
Can someone shed some insight?
Thanks,
ScottR
Scott Robins
xxxxx@usa.xerox.com