Is virtual printer driver is a system software or application software? IS “GENPRINT” sample given in win DDK is the best for virtual printer driver that generates “EMF” output?
suresh tech wrote:
Is virtual printer driver is a system software or application software? IS
“GENPRINT” sample given in win DDK is the best for virtual printer driver
that generates “EMF” output?
What does that even mean? Do you mean kernel vs. userland?
I remember this was a question on Jeopardy! once (“what are the two kinds of software?”) and people seemed pretty befuddled by the “answer” (the two you gave).
suresh tech wrote:
Is virtual printer driver is a system software or application
software? IS “GENPRINT” sample given in win DDK is the best for
virtual printer driver that generates “EMF” output?
xxxxx@gmail.com wrote:
What does that even mean? Do you mean kernel vs. userland?
Trying to shed a little light:
This division between system and application software is a traditional
computer science definition. It has nothing to do with privilege levels,
kernel/user mode, etc. and is just a distinction between programs
written for basic system services and application software.
On more sophisticated CPUs, software can run in different privilege
levels, e.g. in “kernel mode” and in “user mode”.
“User mode” privileged programs are usually not allowd to access system
resources (like hardware) directly.
“Kernel mode” for Windows systems is what other architectures know as
“Supervisor privilege level”. Here, hardware is accessed, OS bookkeeping
done, etc.
Terms vary, sometimes there’s one or more additional privilege layers,
e.g. Hypervisor -> Supervisor -> User Privilege Levels. (To add to the
confusion, IBM refers to “User mode” also as “Problem state”.)
System software can run in kernel mode or in user mode.
Application software will usually only run in user mode.
Windows drivers built with UMDF are certainly “system software” - after
all, they are device drivers - but they are written to run in user mode.
To answer the OPs questions:
(a) A “virtual printer driver” is a type of system software.
(b) As far as I know (but I did not really look it up), GENPRINT is a
configuration method for a generic printing system software component
running in user mode.
(Corrections welcome.)
Hope it helps,
-H
Hagen Patzke wrote:
This division between system and application software is a traditional
computer science definition. It has nothing to do with privilege levels,
kernel/user mode, etc. and is just a distinction between programs
written for basic system services and application software.
Yeah I know that, but what I meant was that no matter what the answer to his question might be, how does that help him write his driver?
The real division is kernel vs. userland in Windows, and there can be system software that is userland and application software that is kernel-land, and certainly the opposite is true also, so what difference does it make?
xxxxx@gmail.com wrote:
so what difference does it make?
Hopefully a better understanding for the OP. At least that was my goal.
If someone comes from “outside” the Windows-centric mindset, it is good
to give her/him a chart for mapping of general concepts to WinDevSpeak.
There is no such technically-enforced things - and such strict notions at
all - of “system” and “application” software in Windows.
The only strict division is - kernel- and user- mode software. As about the
latter, it’s up to you to decide whether the driver’s coinstaller DLL (the
driver’s installer EXE or the user-mode driver DLL) are “system” or
“application” software. This boundary is, after all, about the personal
opinions.
–
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
wrote in message news:xxxxx@ntdev…
> Is virtual printer driver is a system software or application software? IS
“GENPRINT” sample given in win DDK is the best for virtual printer driver that
generates “EMF” output?
>
Thank you for all your replies… I am developing a user mode printer driver… So hopefully it is an Application Software…But what sample to refer and start working… Because i have only 2 months left to complete the project… This project should virtually print any document to .jpg file…(Either it is document -> EMF -> JPG OR document -> BMP -> JPG)… Help me…