> The DDK 3790 compiler is v.13, that is more or less same as in VC 6.
VC6 is 12
–
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
> The DDK 3790 compiler is v.13, that is more or less same as in VC 6.
VC6 is 12
–
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
> -----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn
Sent: Saturday, February 09, 2008 8:02 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Can i use vc2003 or vc2005’s cl.exe
generate driver sys file ?I debugged one of those horror stories for a client. I
know they paid me a heck of a lot of money for an answer that
in the end came out “It works with the old compiler in the
DDK, but not Vs2005” I also offerred to find the actual code
bug, but since they were already into to me for multiples of
$10,000 and I told them the final search would be more they passed.
That’s a pity. So we don’t know again if it was a real compiler bug or
something in their code which was compiled/optimized a bit differently
by a newer compiler. Have they tried later the newer WDK which contains
compiler with the same major version as VS 2005?
Sorry Don, it is too vague for me. I’m surprised you haven’t tried to
find the real reason just out of curiosity. MS C compiler bugs are rare
beasts nowadays and if I believe to encounter one, I’d try to find it
out.
I used to do compilers, and I assure you the subtle
surprises that can come in from version to version always
amaze people. I would never use a compiler that was not well
tested in the environment it was targeted for.
And you assume WDK compilers are tested differently than any compiler
released with VS? Peter said compiler has to be adopted by Windows build
team. I wonder what it actually means. If there are some special tests
just for NT code base or if they just rebuild whole tree and if it
passes, compiler is adopted.
Personally, I’ve never used VS compiler for building drivers since
cl.exe was added to the DDK. Not because of imaginary possibility of VS
compiler bug but because it is easier to use WDK native way than trying
to configure VS compiler (if I ever have this ugly IDE installed :).
Also, there are interesting constructs in WDK headers which check for
exact compiler version and enable new options if available.
Best regards,
Michal Vodicka
UPEK, Inc.
[xxxxx@upek.com, http://www.upek.com]
“Michal Vodicka” wrote in message
news:xxxxx@ntdev…
>> Sorry Don, it is too vague for me. I’m surprised you haven’t tried to
>> find the real reason just out of curiosity. MS C compiler bugs are rare
>> beasts nowadays and if I believe to encounter one, I’d try to find it
>> out.
I had estimated over $25,000 to analyze it with the customers hardware to
run it against. Without I would not start until I saw four times that
amount, so if you want it please contact me to so I can say where to send
the money. Sorry but the customers engineers were doing something stupid
(i.e. not using the certified tools), I don’t waste my time bothering with
these things unless people pay me.
As far a MS C bugs you do realize that VS2005 shipped with over 8000 known
bugs (including a lot of code generation edge cases). It was well
documented in the trade press that the various MVP’s for pieces of that
product all asked Microsoft for another beta drop. As a bone Redmond
announced VS2005 SP1 the day they shipped the product. I had already given
up on it, since every one of my C programs from user space encountered code
generation bugs during the beta, so yes I think they are in there.
–
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply
Personally, I gave up after it failed to install a couple of times after
churning for maybe fifty minutes each time. In general, I think the
install/uninstall processes of VC, MSDN, WDK, et. c. are totally out of
hand, and desperately need some attention. They not uncommonly fail,
not uncommonly do not install if any other version is already installed,
sometimes require a fairly obscure install order in order to get the H2
integrated correctly, the installs take a long time, and the uninstall
times are just staggering. Last night, after finally downloading all
the 6001.18000 iso’s, it took me almost three hours to first uninstall
old copies of MSDN, WDK, SDK and a really old DirectX, and then to
install the MSDN, WDK and SDK, with the overwhelming majority of time
being spent in uninstall, “querying installation information.” The
uninstall is just brutal and I find it very difficult to imagine what it
is that is going on in the process, as in the end in it really just
deleting files and registry keys. In any case, during the wait,
prompted by Tim’s post earlier yesterday, I read some of the EULA’s.
There is some very strange stuff in there, like that you’re not allowed
to use Microsoft tools to develop code for non Microsoft operating
systems. I’m not sure why or even how one would do this, why they in
practice care, as I just can’t see anyone doing this, and how would one
go about enforcing this, assuming that it is valid to stipulate in the
first place.
Don Burn wrote:
“Michal Vodicka” wrote in message
> news:xxxxx@ntdev…
>
>>> Sorry Don, it is too vague for me. I’m surprised you haven’t tried to
>>> find the real reason just out of curiosity. MS C compiler bugs are rare
>>> beasts nowadays and if I believe to encounter one, I’d try to find it
>>> out.
>
> I had estimated over $25,000 to analyze it with the customers hardware to
> run it against. Without I would not start until I saw four times that
> amount, so if you want it please contact me to so I can say where to send
> the money. Sorry but the customers engineers were doing something stupid
> (i.e. not using the certified tools), I don’t waste my time bothering with
> these things unless people pay me.
>
> As far a MS C bugs you do realize that VS2005 shipped with over 8000 known
> bugs (including a lot of code generation edge cases). It was well
> documented in the trade press that the various MVP’s for pieces of that
> product all asked Microsoft for another beta drop. As a bone Redmond
> announced VS2005 SP1 the day they shipped the product. I had already given
> up on it, since every one of my C programs from user space encountered code
> generation bugs during the beta, so yes I think they are in there.
>
>
> -----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn
Sent: Tuesday, February 12, 2008 12:39 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Can i use vc2003 or vc2005’s cl.exe
generate driver sys file ?As far a MS C bugs you do realize that VS2005 shipped with
over 8000 known bugs (including a lot of code generation edge
cases).
8000 known bugs is impressive but how many of them were for IDE itself,
how many for C# and C++? And how many for pure C? Sorry, I don’t have
time to search for it.
It was well documented in the trade press that the
various MVP’s for pieces of that product all asked Microsoft
for another beta drop. As a bone Redmond announced VS2005
SP1 the day they shipped the product. I had already given up
on it, since every one of my C programs from user space
encountered code generation bugs during the beta, so yes I
think they are in there.
Well, but why do you think WDK C compiler is better in this area?
Compare released versions of both, please. MS betas are… betas (and
some releases are betas, too ;-))
I don’t say you can’t be right but you haven’t convinced me. There are
good arguments why WDK native build should be used for driver builds
instead of VS but I’m not sure if this one is real. You’re using it
constantly as the main argument so I’d expect you have some better
reason than “they were doing something stupid, switch to older DDK
helped, case closed”. It doesn’t show there was a problem with compiler
itself.
Best regards,
Michal Vodicka
UPEK, Inc.
[xxxxx@upek.com, http://www.upek.com]
Martin O’Brien wrote:
[…] I read some of the EULA’s. There is some very strange stuff in
there, like that you’re not allowed to use Microsoft tools to
develop code for non Microsoft operating systems. I’m not sure why or
even how one would do this, why they in practice care, as I just
can’t see anyone doing this, and how would one go about enforcing
this, assuming that it is valid to stipulate in the first place.
Linux/Mono/Wine and ReactOS are probably just two reasons why they want
to prevent their tools being used to write software for any other OS.
Another reason could be that you don’t want to be liable if someone uses
your compiler to write software for an RTOS and someone dies b/c of a
compiler bug. If you look at x86 embedded systems it should definitely
be possible to use the MS compiler/assembler/linker to write software
for such a system.
Anyone from Microsoft able and willing to comment?
Michal Vodicka wrote:
There are good arguments why WDK native build should be used for
driver builds instead of VS but I’m not sure if this one
[VS compiler producing buggy code] is real.
Legal matters are to be considered, too:
If you use the official WDK compiler - and let’s for a moment assume a
compiler bug in there that causes your driver to fail under certain
circumstances, causing BSODs, which you didn’t detect (possibly not even
WLK did) - in many countries there’s not much possibility of further
legal action being taken against you.
After all you did your best to follow the “best practice” driver
generation standards required/recommended by the OS vendor.
If OTOH you choose any different compiler (version), as you deviated
from the OS vendor recommended setup, all problems are purely your own.
IMO, this is a strong argument for using the WDK for production builds.
Of course you can use whatever you like during your internal driver
development, but release builds should always be done using the WDK.
WDK install without the documentation seems to be seamless, just unpack the
files, I’m not even sure it writes anything to the registry.
–
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
“Martin O’Brien” wrote in message
news:xxxxx@ntdev…
> Personally, I gave up after it failed to install a couple of times after
> churning for maybe fifty minutes each time. In general, I think the
> install/uninstall processes of VC, MSDN, WDK, et. c. are totally out of
> hand, and desperately need some attention. They not uncommonly fail,
> not uncommonly do not install if any other version is already installed,
> sometimes require a fairly obscure install order in order to get the H2
> integrated correctly, the installs take a long time, and the uninstall
> times are just staggering. Last night, after finally downloading all
> the 6001.18000 iso’s, it took me almost three hours to first uninstall
> old copies of MSDN, WDK, SDK and a really old DirectX, and then to
Shame, this is the sort of argument that means these days you have to
contract a “certified” electrician to wire up a power socket, 'cos if you do
it yourself you could be liable for civil or even criminal action. Never
mind that you have a university degree (probably in engineering) and rewired
the house when you were 3, while the certified electrician has difficulty
knowing which end of the pencil to use! M.
>>>>>>
Legal matters are to be considered, too:
If you use the official WDK compiler - and let’s for a moment assume a
compiler bug in there that causes your driver to fail under certain
circumstances, causing BSODs, which you didn’t detect (possibly not even
WLK did) - in many countries there’s not much possibility of further
legal action being taken against you.
After all you did your best to follow the “best practice” driver
generation standards required/recommended by the OS vendor.
If OTOH you choose any different compiler (version), as you deviated
from the OS vendor recommended setup, all problems are purely your own.
IMO, this is a strong argument for using the WDK for production builds.
Of course you can use whatever you like during your internal driver
development, but release builds should always be done using the WDK.
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
Thanks, Maxim. Good to know. I knew that the H2 was the problem, but I
had never considered this option.
Thanks,
mm
Maxim S. Shatskih wrote:
WDK install without the documentation seems to be seamless, just unpack the
files, I’m not even sure it writes anything to the registry.
Hi everybody,
I am new to windows system programming (and internals). I have a question:
“what is a paging file and why is it used by kernel”…I read through the
internet and most of the places discussed regarding the size of the paging
file but not its use/contents. wiki described the paging file as a file used
for paging…what I cannot understand is,if we have to free a page in
physical memory, then doesn’t the kernel write the contents of the page back
to the file from which it read them. why is paging file used?
I greatly appreciate your help…
thanks,
Prashanth.A
It does if it can. But what is the ‘file from which it read’ for application
data?
On Feb 12, 2008 2:27 PM, prashanth adurthi wrote:
> Hi everybody,
>
> I am new to windows system programming (and internals). I have a
> question:
>
> “what is a paging file and why is it used by kernel”…I read through the
> internet and most of the places discussed regarding the size of the paging
> file but not its use/contents. wiki described the paging file as a file used
> for paging…what I cannot understand is,if we have to free a page in
> physical memory, then doesn’t the kernel write the contents of the page back
> to the file from which it read them. why is paging file used?
>
> I greatly appreciate your help…
>
> thanks,
> Prashanth.A
> — 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
–
Mark Roddy
Oh and please start a new topic when you are starting a new topic.
On Feb 12, 2008 2:38 PM, Mark Roddy wrote:
> It does if it can. But what is the ‘file from which it read’ for
> application data?
>
>
> On Feb 12, 2008 2:27 PM, prashanth adurthi wrote:
>
> > Hi everybody,
> >
> > I am new to windows system programming (and internals). I have a
> > question:
> >
> > “what is a paging file and why is it used by kernel”…I read through
> > the internet and most of the places discussed regarding the size of the
> > paging file but not its use/contents. wiki described the paging file as a
> > file used for paging…what I cannot understand is,if we have to free a page
> > in physical memory, then doesn’t the kernel write the contents of the page
> > back to the file from which it read them. why is paging file used?
> >
> > I greatly appreciate your help…
> >
> > thanks,
> > Prashanth.A
> > — 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
>
>
>
>
> –
> Mark Roddy
–
Mark Roddy
> If you use the official WDK compiler - and let’s for a moment assume a compiler
bug in there that causes your driver to fail under certain circumstances, causing
BSODs, which you didn’t detect (possibly not even WLK did) - in many countries
there’s not much possibility of further legal action being taken against you.
IIRC, most EULAs say that a given piece of software is provided on “as is” basis - you agree that a vendor cannot be held liable for any damage, data loss, etc that results from the use of a given software. Therefore, the very idea of taking a legal action against vendors is rather problematic, no matter if they follow OS vendor’s guidelines or not…
Anton Bassov
Mike Kemp wrote:
Shame, this is the sort of argument that means these days you have to
contract a “certified” electrician to wire up a power socket, 'cos if
you do it yourself you could be liable for civil or even criminal
action.
No, you can replace your power socket yourself, but it has to be
approved by a certified electrician.
if ( reader_likes_fun() ){
replacePrevPar( “replace”, “develop”);
replacePrevPar( “power socket”, “Windows driver”);
replacePrevPar( “approved”, “Windows Logo Tested”);
replacePrevPar( “a certified electrician”, “Microsoft”);
}; // SCNR
xxxxx@hotmail.com wrote:
> If you use the official WDK compiler - and let’s for a moment
> assume a compiler bug in there that causes your driver to fail
> under certain circumstances, causing BSODs, which you didn’t detect
> (possibly not even WLK did) - in many countries there’s not much
> possibility of further legal action being taken against you.
xxxxx@hotmail.com wrote:
IIRC, most EULAs say that a given piece of software is provided on
“as is” basis - you agree that a vendor cannot be held liable for any
damage, data loss, etc that results from the use of a given software.
Therefore, the very idea of taking a legal action against vendors is
rather problematic, no matter if they follow OS vendor’s guidelines
or not…
IIRC (not being a lawyer) most EULAs are (at least partially) not valid
in the EU:
(a) They are not part of the end user contract with the vendor. To be
valid they would have to be printed on the box, so the buyer can inspect
them before buying.
(b) Even if you have to “click” agreement, IIRC by European law it is
deemed unreasonable to expect someone to read a very long, very complex
legal text in a small window. Because every microscopic tool comes with
two meters of legalese text these days you can expect them to just click
“OK” without reading. (AFAIK, this is one of the reasons why in an
EULA it just has no effect to state that the software may not be unbundled.)
(c) In some countries it is forbidden at all to exclude responsibility
for your product. (Which in the past led to funny statements like “We
guarantee that this software will require space on your hard drive if
you install it.”)
(Not everything that is valid in the U.S. is true everywhere in the
world…)
Imagine your backup driver software crashes and deletes all user files.
I am not sure if you could not be held liable, if someone can prove you
did not use the officially certified toolchain for the driver.
Replace “user files” by “government agency files”, for a change of scenario.
Perhaps someone well versed in international law could comment?