Introduction
I came across an article QuickSYS which implements an NT driver framework. That article demonstrates a MFC application that gets a project name as a parameter and creates Visual C++ workspace with NT driver framework. I decided to copy the NT driver framework source and to put it in the Visual Studio project wizard as seen above. This is simpler rather than running an external executable application that generates the code for you.
So if you want to write an NT driver, all you have to do is to open Visual Studio and to choose "Driver AppWizard" option. That's all.
How to add custom wizard to Visual Studio IDE
Template wizards have .awx extensions. If you build my source, then the custom wizard is automatically added to the Microsoft Visual Studio\Common\msdev98\Template directory. Once in this directory, my custom AppWizard becomes a project type and shows up on the Projects tab in the New dialog box.
Comment
Visual Studio custom AppWizard always generates a MFC-based project initially. Therefore, I had to override CustomizeProject
method in order to change the created project settings. I customized the created NT driver project settings by using the methods of IBuildProject
and IConfiguration
such as AddToolSettings
and RemoveToolSettings
.
Furthermore, since driver projects must have the DDK (Driver Development Kit) installed, I assume that the environment variable ddkroot
is defined for the DDK installed path. The driver project compilation and linkage depends on that environment variable.
Links regarding drivers