Create project

File -> New... -> Project

Chose Visual C++ -> Win32 in Project Types tree.

Chose Win32 Project in Templates list.

Enter project name, directory path and solution name. As usually. You can also uncheck Create directory for solution
box. Then both project file (.VCPROJ) and .SLN will be created in same directory. By default Visual Studio 8 creates separate
subdirectory for project.

Adding files

If you decided to use .PCH, do not forget to insert the following line in all added *.C and *.CPP files

#include "stdafx.h"

instead of

#include <ntddk.h>
.....

Change project settings

In order to have access to all necessary options make sure that your project has at least 1 .C/.CPP file.
A would recommend to use .PCH and initially add the following files

driver_template.cpp
drv_common.h
StdAfx.cpp
StdAfx.h

All these нou can find in samples:
Warning: filesize() [function.filesize]: stat failed for /usr/home/alter/html/../../..//docs/nt_kernel/vc6_proj/driver_template_v7.rar in /usr/home/alter/html/common.inc.php on line 462

Note 1:
here the separator character is comma. Do not take items in quotation marks.
Note 2:
If you use precompiled headers, you can place these defines to your .H used for building .PCH or
some common .H file. Look for example with *.cpp files in pch_cpp folder and
with *.c files in pch_c inside Warning: filesize() [function.filesize]: stat failed for /usr/home/alter/html/../../..//docs/nt_kernel/vc6_proj/driver_template_v7.rar in /usr/home/alter/html/common.inc.php on line 462

-> Command Line
Remove "/GZ" from
"Win32 Debug" configuration. In most cases this will save us from such trouble as
"Debug build works, but Release doesn't". Builds will not differ in bug reproducing
(uninitialized variables and memory blocks, overflows, etc.). In addition,
this pretty switch instructs compiler to include stack consistency check code into output.
This check leads to unresolved external _chkesp on link stage.

Set list of import libraries for DDK libraires in "Additional Dependencies":

ntoskrnl.lib
int64.lib
Hal.lib

Note:
here the separator character is space character. Do not take paths in quotation marks.

Press button [...] right to "Additional Dependencies" and uncheck
"Inherit from parent or project defaults" box.

"Ignore all default libraries" = "Yes (/NODEFAULTLIB)"

"Debugging"

"Generate Debug Info" = "Yes (/DEBUG)"

"System"

"SubSystem" = "Native (/SUBSYSTEM:NATIVE)"

"Driver" = "Driver (/DRIVER)"

"Advanced"

"Entry point symbol" = "DriverEntry"

-> Command Line

Separately for each configuration add "/safeseh:no" switch.

Separately for each configuration change "/subsystem:native"
for "/subsystem:native,4.00" if you need older OS support.

OK

File -> Save All

And now copy this empty project somewhere for future use as template for your driver projects :)
For example:
Warning: filesize() [function.filesize]: stat failed for /usr/home/alter/html/../../..//docs/nt_kernel/vc6_proj/driver_template_v7.rar in /usr/home/alter/html/common.inc.php on line 462