Update: A work-around for this issue in VS 2015 Update 1has been published. Find it here.
Update to the Update: VS 2015 Update 2 fixes this problem. Unless you have a specific reason to stay on Update 1, move now to VS 2015 Update 2. You can download it here.
Yesterday, we tweeted and posted about VS 2015 Update 1 and Win 10 WDK V1511 being available.
But you might just want to wait a bit before you install Visual Studio 2015 Update 1. At least if you value using Static Driver Verifier in your driver development process.
Yesterday, we were all happy to see VS 2015 Update 1 and WDK 10 V1511 released. We didn’t exactly throw a party, but a new version of the VS and the WDK is always something we welcome.
At least that’s how it is here at OSR. Yesterday and today, in fact, several of our engineering team members did the update. Including me. And, we all subsequently had the pleasure of fixing the new Code Analysis warnings that the update generated. But that’s all good. Improved Code Analysis is one of the reasons we’re usually quick to upgrade.
Then… as I was preparing the Beta Release of a driver project I was working on, given that I had updated both VS and the WDK, I decided to run Static Driver Verifier (SDV) on my driver one last time just to make sure everything was fine.
So I started SDV and went to lunch. 45 minutes later I came back, and SDV was still “Building…”.
Normally, I wouldn’t be too concerned to see SDV still running, but this was a relatively small driver (5K lines, maybe?) and it was still building. And there was almost no CPU time being used on my system. That sure didn’t sound like SDV to me.
I asked a few of my colleagues who had upgraded to VS 2015 Update 1 (with or without the new WDK) to see if SDV was working for them. The verdict was unanimous: Visual Studio 2015 Update 1 breaks Static Driver Verifier regardless of whether you have the Windows 10 RTM WDK installed or Windows 10 WDK V1511 installed.
I checked with some friends at Microsoft, who indicated that they had very recently learned of this problem, they had a repro case, and they were working to correct it. Unfortunately, there isn’t any work around known at the present time (I’m writing this on 2 December 2015) except to not install VS 2015 Update 1.
Did I say “Ouch”?
What’s really funny (at least to me) is that if SDV was broken by an update… say… 5 years ago or more, not only would I not have cared… I wouldn’t even have noticed. But for the last few years, SDV has improved to the point that it’s become an almost invaluable tool. It’s gotten so good, in fact, that we consider its use mandatory — basic responsible engineering — for any type of driver project that it supports.
We’ll keep you informed of anything we learn about this problem. In the meantime, if you write drivers that are supported by SDV you just might want to hold-off installing VS 2015 Update 1, at least until we know more about this problem.