Problem in first program in driver programming using Visual Studio 2010
I am starting to learn this type of programming (driver programming) since a short while of the time.
I started by using the traditional way _> I mean I only used WDK to bulid and compiled driver and was working properly with simple method of projects but I faced small problems in advanced when i wanted to start to expand my program or make a little developed one.
So, I started using VS2010 in windows 7, I really faced a lot of problems because i do not have a background how can i used it as good as possible.
Finally, I reac开发者_运维百科h to a good point, this point is say (If you want to start with driver programming in VS2010, 1- you should install WDK 2- install VS2010 3- Enter the paths of WDK headers dirctories into VS2010 Dirctories to be compatiple. 4- Start tor create new project and go on.
makefile project
Finally, I am really not sure, it is a correct way or not I am just beginner.
But I did like this and i found a good results
#include "wdm.h"
NTSTATUS DriverEntry( IN PDRIVER_OBJECT theDriverObject, IN PUNICODE_STRING theRegistryPath )
{
DbgPrint("Hello World!");
return STATUS_SUCCESS;
}
And i got:
1>------ Build started: Project: 1, Configuration: Debug Win32 ------ 1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(37,5): warning MSB8005: The property 'NMakeBuildCommandLine' doesn't exist. Skipping... ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
My question is:
Is this the correct way? How can I know this program is working properly? Should I do something else to make my program work correctly in kernal mode?
Never build drivers in Visual Studio!
The only way to build driver is: open WDK Build Environment command prompt, cd to the driver project directory, and type "build".
You can use Visual Studio only as source code editor, but don't build driver with it! There are number of ways to do this, published in different programming sites, but professional driver developers strongly recommend to use only WDK build for this.
To open WDK build environment, click main Windows menu - Programs - Windows Driver Kits - WDK - Build Environments - select target OS - select build environment, according to target computer processor type. Checked build environment means Debug, free build environment means Release.
Look into DDKWizard. It tackles exactly the issue you're handling, and does it well.
You shouldn't use the compiler of Visual Studio. The WDK compiler may contain changes to the standard WinSDK or Visual Studio compiler.
On the other hand, using a build macro from the makefile step is a nice enough way to utilize Visual Studio for developing the driver, and building it with the build toolkit used by the WDK.
There is a nice batch file which calls the necessary build environment and redirects the error outputs to the Visual Studio output pane.
To clarify, I use a makefile project in visual studio where all source files are added, when building I call a batch file which calls in turn ddkbuild with the right parameters.
精彩评论