My problem wasn’t rendering them harmless for other tool chains. That just
means when you hand the driver source over to the client they can’t use the
older tools, or if you can they are pretty worthless. Theoretically one
could map SAL2 back to SAL with driver annotations for most SAL2 constructs,
but the work involved is not worth it for a one man shop.
Peter’s comments about my not using the latest tools misses the point, many
of my clients are tiny shops. They try to get the client pinned down, but
if I go basing things on the latest toolset then have to say pay up to go
back, they go under or lose their shirt on the deal. So either I anticipate
this, or I accept that about 1 in 3 contracts I lose money on because my
tiny client could not push the big firm hard enough to get the right answer
and somebody has to eat the cost of the rework.
Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of m
Sent: Tuesday, November 19, 2013 5:24 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Latest recommended tool chain
On my machine, I have this file from Microsoft. They already ship the exact
include file you need to render you SAL into NOOP macros for other tool
chains
Windows Kits\8.0\Include\shared\no_sal2.h
/***
* no_sal2.h - renders the SAL annotations for documenting APIs
harmless.
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* sal.h provides a set of SAL2 annotations to describe how a function
uses its
* parameters - the assumptions it makes about them, and the guarantees
it makes
* upon finishing. This file redefines all those annotation macros to
be harmless.
* It is designed for use in down-level build environments where the
tooling may
* be unhappy with the standard SAL2 macro definitions.
*
* [Public]
*
****/
“Don Burn” wrote in message news:xxxxx@ntdev…
But as you pointed out SAL has changed and unfortunately Microsoft did not
put any effort into compatibility. Whether we like it or not, there is
still a need for drivers for older systems. I am dealing with clients right
now who want drivers that support XP embedded, must support Server 2008 (not
just R2), and the ultimate a query for a driver to support NT 4.0
embedded!!!
Microsoft could have designed the annotations, so the ones that were not
supported could be #defined to be empty on older systems. But the amount of
changes they did, makes this essentially impossible. Then throw in the pain
in moving anything other than the simplest project from SOURCES to VS and we
have the current mess.
Don Burn
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@osr.com
Sent: Tuesday, November 19, 2013 9:22 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Latest recommended tool chain
Agreed. I found it annoying, ugly, and of marginal value. But that was
2008.
Take another look at SAL, specifically SAL 2. While it’s still fugly, it is
now *beyond* merely useful. It has become an incredible tool for validating
things like good programming practices and locking requirements.
You really should give SAL a second change. That’s what we’re doing here at
OSR, in any case.
Sounds like a good article for The NT Insider: “A Second Chance for SAL”…
Peter
OSR
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
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
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
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