The sad state of affairs is, use a different compiler at your own risk.
That risk includes possible incompatibilities with the Linker, dependencies
by Microsoft software on code generation sequences that are specific to the
DDK compiler, unsafe optimizations by other compilers that lead to bugs or
crashes, and so on. Thing is, if the driver model and API was pristine
clean, it would be a feasible proposition to use a different compiler and
linker, but reality points the other way.
My question to Jos is, is there a solid reason not to use the DDK compiler ?
The .net IDE can be told to use the DDK compiler.
Alberto.
-----Original Message-----
From: David J. Craig [mailto:xxxxx@yoshimuni.com]
Sent: Thursday, August 07, 2003 7:32 PM
To: Windows System Software Developers Interest List
Subject: [ntdev] Re: Buildring driver
Here we go again. This has been asked, debated, debated even more, and
“decided” many times. Microsoft only supports using the compiler that ships
with the DDKs. If you want to have your driver in the box for future
operating systems - usually just for hardware - you must provide source code
that Microsoft can build and modify as needed during the Alpha/Beta testing
cycles. All drivers shipped with the OS and the OS components, including
GUI, are compiled with the build environment and the command line compiler.
I have been writing device drivers for many years including DOS, Windows 9x,
NT, 2000, XP, & 2003. With several releases of the Microsoft compiler of
the day, various pieces of code that worked began failing. Sometimes the
linker was released with no capability to link 9x drivers that would work.
The DDK group didn’t have any control over the compiler releases and that is
why I believe that Microsoft, when trying to improve system stability, gave
the DDK group the ability to release a tested compiler. It did eliminate
the free download of the DDK because of licensing issues, or so I have
heard. Even the BSCMAKE program was omitted from the DDK release, but you
can get the copy from the full compiler release and it will work. If you
get a MSDN subscription of Pro and higher, the compilers are included.
You can have several DDKs installed on a single machine. I have several and
I can use any or all of them without rebooting or changing environment
variables, but I worked rather hard to design it to do so. The latest DDKs
are supposed to support earlier operating systems with only some
restrictions about them dropping support for some of the earliest. I don’t
know of any way to compile for Windows 95 or even NT 3.x with the latest
DDKs.
I can run as many builds of device drivers I want with one batch file. It
can build for any OS using any DDK needed for that project. I can even
build multiple OS versions of one single driver - such as NT 4, W2K, & XP
where the XP version can use some of the newer system calls and the NT 4
version can be free of power and PnP support.
Is your boss a Dilbert pointy-hair type? If so, my condolences. Search the
archives and find other reasons to use the Microsoft specified tools.
“Jos Scherders” < xxxxx@home.nl mailto:xxxxx > wrote in
message news:xxxxx@ntdev news:xxxxx …
Hi,
I have the following problem. Because of changes in our build environment my
boss
wants me to come up with a Visual Studio project we can use to build drivers
using
the .NET compiler.
I know this is not a good idea but I haven;t been able to come up with good
arguments.
Can someone please help me with the following questions:
I believe NT 4.0 DDK and Win2K DDK support Visual C 6.0 compiler only. Is it
possible at all to use the compiler included in .NET ? Is this just not
suported or will this actually not work?
I know that it is recommended to build a driver for the oldest platform you
are going to support. Our build server is an XP machine, will I be able to
build a NT 4.0 style driver (e.g. originally developed with the NT 4.0 DDK).
I am afraid that even if it would compile I will run into all kind of bizare
problems when it runs on customer PC’s.
Thanks all,
Jos.
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@compuware.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose
it to anyone else. If you received it in error please notify us immediately
and then destroy it.</news:xxxxx></mailto:xxxxx>