The SETENV.BAT file in the DDK bin directory is used to set the environment variables for the build process[8]. Shortcuts to this batch file are set up in the Start menu. It calls other batch files in the bin directory. The current batch files install DosKey; I decided to comment these lines out as I already have a similar command processor installed.
The Platform SDK may have more up to date tools than are supplied with VC++ (e.g., the
You may need to add the DDK
Currently, the documentation is released in HTML Help format. Each help file is viewed in its own incarnation of the HTML Help viewer, and is not merged into the Visual Studio 97 documentation. The help files are probably merged together in Visual Studio 6.
Each function found in the W2000 DDK states which header files you can use. If wdm.h is listed, the routine can be used in a WDM driver for Windows 98 or Windows 2000. There are some routines that compile correctly in Windows 98 but have no effect, such as the event log writing routines. If the W2000 DDK lists only ntddk.h for a routine, it can be used only in Windows 2000 drivers, not Windows 98. The W98 DDK lists only routines that run in Windows 98.
The W98 DDK and the W2000 DDK are largely the same for WDM drivers. At the time of writing, the W98 DDK does not include the Windows Management Instrumentation libraries. Some header files are also different (e.g., SETUPAPI.H). For some reason, the checked build produced by W2000 seems quite a bit smaller than that produced by the W98 DDK.
The source code for the Wdm1 driver is supplied on the book's accompanying disk. Copy the source code directory tree to a fresh directory on your hard disk. These instructions assume that you have installed the software to C:WDMBook. However, you can change the directory if you wish. If you use a different drive, you will need to alter the settings of every VC++ project, so it will be much easier for you if you can install the software on drive C:.
The WDM Book Visual Studio workspace in the book software base directory contains projects for each of the drivers in the book.
Three steps are needed before the book software drivers can be compiled.
• Ensure that the DDKROOT environment variable is set to the W2000 DDK or W98 DDK base directory.
• Set up an environment variable called WDMBOOK to point to the book software base directory (e.g., C:WDMBook). In Windows 98, set environment variables by adding them to AUTOEXEC.BAT. You will probably need to reboot for the new definitions to come into effect. In Windows 2000, set environment variables in the Control Panel System proper ties applet 'Advanced tab' Environment variables editor. You will need to restart Visual Studio and any DOS boxes for these changes to take effect.
• Ensure that the MakeDrvr.bat batch file in the book software base directory is available to be run by Visual Studio, as it is used to invoke the build make process. Either add MakeDrvr.bat to a directory that is on your path, or add the book software base directory to the list of 'Executable files' directories in the Visual Studio Tools+Options Directories tab.
You can check that you have installed the development kits and book software correctly by compiling the book software drivers[9]. From the
Check that the drivers are actually updated. In the worst case, it will appear as if the files have compiled but nothing will in fact have been done. If the example drivers do not compile, then there are two usual causes. The first possible problem is that the environment variables have not been set up correctly.
The second problem is that some of the source code explicitly includes header files from the Windows 98 DDK, which I assume has been installed in the C: 98DDK directory. Some of the linker settings have been also been set up to refer to this same directory. If you have used a different directory, or have only installed the Windows 2000 DDK, you will need to change each instance where C:98DDK is mentioned, either in the source code or in the SOURCES file.
The Wdm3 example specifically refers to a library in the W2000 DDK in its SOURCES files. I assume that this DDK is installed in C:NTDDK, so change this if need be.
The
I find it useful to have shortcuts to common tools available, more quickly than through the Start menu.
One possible place for these shortcuts is in the Visual Studio Tools menu. Another option is to place the shortcuts in the
The option I prefer is to use the free
I therefore suggest making a
Table 4.1 Useful Tools
Command line prompt | ||
Free build environment | DOS box set up for driver free builds | |
Checked build environment | DOS box set up for driver checked builds | |
Registry Editor | %windir% egedit.exe | |
W2000 Registry Editor | %windir%System32 egedt32.exe | NT and W2000 |
WinObj | C:MSSDKinwinntWinobj.Exe | NT and W2000 |
Computer Management | %SystemRoot%system32compmgmt.msc /s (from | W2000 only |
Servicer | %WDMBOOK%ServicerReleaseServicer.exe | NT and W2000 |
WBEM Object Browser | <WBEM>Applicationsrowser.htm | |
DebugPrint Monitor | %WDMBOOK%DebugPrintexeReleaseDebugPrintMonitor.exe | |