This is perhaps not new news, but last week I was looking at our build environment and was curious if the Enterprise WDK had ever been updated to support static driver verifier, which is required for driver certification submissions.
I’m happy to say, it looks like the current EWDK does support static driver verifier and code analysis. The attraction of the EWDK is it can be installed simply by unzipping a directory tree. This means you can check it into your version control system, so have a version controlled build environment.
As a quick test, all I had to do was unzip the EWDK install tree into c:\ewdk, run an environment variable setup .cmd file in the root of that tree, and then I could type msbuild with the correct parameters, and my project built. You can run SDV by using a target of “sdv” and can run code analysis by specifying an option. For driver certification testing, you can also specify a target of “dvl” to generate the merged code anlaysis+static driver verifier log file.
A few things I did notice:
-
The ewdk tree is fairly deep, and the first time I expanded it some pathnames were too long, so I ended up expanding it into c:\ewdk. This would mean it might be a problem if checked out of a version control system, which may have the root path already many layers deep.
-
Finding the doc pages spelling out how to enable sdv and code analysis took quite a bit of Googling, but there are doc pages on the Microsoft site. I’ll try to collect links and post them.
-
The environment setup seemed to use an old style.cmd file, so am not sure what it would take to setup the environment if like myself you moved to powershell long ago.
-
If you want to have an automatic build server, there is still a little issue of how to use the hardware token based signing keys. One could argue signing with final production keys should always take a human’s approval. On the other hand, one could also argue final production builds should run on a centralized automated server, so the process of shifting from almost final QA to a production build is simply a matter of giving some command to a build server with the correct source code version information. This is not really a ewdk issue, but is an issue in environments that likely will use the ewdk.
Jan