From: Bob Vloon on
Hi all,

I've written a print processor based upon the DDK's genprint-example. It is
assumed to start an program using CreateProcess and use it as a filter.

The command currently is cmd.exe executing a batchfile. From withing the
batchfile "copy" is called to copy the file holding the printable data (the
print processor just copied all incoming data to that file) to a file that
will be read by the print processor, and passed on to the spooler for further
handling (of course, this is a test setup :)

This works fine for Windows XP. It also works fine when installed on a
Windows XP machine, which exports the printer, in a domain-environment.

It however doesn't work when installed on a Windows 2003 server when an
unpriviliged user prints (users having administrator rights can).
There, from what I can tell from the logging, cmd.exe is started (I do
redirect stdin/stdout when execution "copy.exe", which results in an empty
file), but fails.

Can someone point me to the right direction (and, along the way, mention some
good books to read on writing Windows applications / device drivers).

Of course, I can provide more input, but I decided to start off with this.

Regards,

Bob
From: Bob Vloon on
I've to correct myself on this one:

[..]
> It however doesn't work when installed on a Windows 2003 server when an
> unpriviliged user prints (users having administrator rights can).
> There, from what I can tell from the logging, cmd.exe is started (I do
> redirect stdin/stdout when execution "copy.exe", which results in an empty
> file), but fails.

It seems that the temporary files are actually made when issuing
GetTempFileName, thus, I do not have proof that cmd.exe actually gets
executed, apart from the fact that the CreateProcess-call returns a
true-value.