aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/km/build/wdk7.1/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'km/build/wdk7.1/README.md')
-rw-r--r--km/build/wdk7.1/README.md81
1 files changed, 81 insertions, 0 deletions
diff --git a/km/build/wdk7.1/README.md b/km/build/wdk7.1/README.md
new file mode 100644
index 0000000..80ae6ee
--- /dev/null
+++ b/km/build/wdk7.1/README.md
@@ -0,0 +1,81 @@
+Building drivers
+================
+
+The drivers can be built using [Windows Driver Kit 7.1.0].
+
+[Windows Driver Kit 7.1.0]: https://www.microsoft.com/en-us/download/details.aspx?id=11800
+
+Prerequisites
+-------------
+
+Install the "Build Environments" distributed with the kit, fire up `cmd`, and
+execute (to target Windows 7/x86):
+
+ C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1 fre WIN7 no_oacr
+
+or (to target Windows 7/x86-64):
+
+ C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1 fre x64 WIN7 no_oacr
+
+Manually
+--------
+
+Navigate to "km/src/" and execute:
+
+ build.exe /cegwZ
+
+This should build every driver, generating the .sys files somewhere in the
+obj*something* directories in the respective drivers' directories.
+They are not signed though.
+
+Automatically
+-------------
+
+I developed a bunch of batch scripts to automatically build, sign and copy the
+.sys files to a predefined directory.
+To use them, execute `setenv.bat` (can be found in this directory).
+
+### Code signing
+
+The binaries are signed using a self-signed certificate issued by
+"windows7_drivers".
+This certificate must be stored in the current user's ROOT ("Trusted Root
+Certification Authorities") store.
+To generate such a certificate, execute `add_cert.bat`:
+
+ add_cert.bat
+
+To verify it's there, you can use the `certmgr.msc` utility.
+
+The binaries are signed automatically after they are built, but you can also
+sign manually by passing the path to a .sys file to `sign.bat`:
+
+ sign.bat C:\workspace\personal\windows7-drivers\km\build\wdk7.1\bin\x64\Release\simple.sys
+
+### Building the drivers
+
+To build every driver, execute `build_drivers.bat`:
+
+ build_drivers.bat
+
+To build a particular driver, pass the path to the driver's source directory to
+`build_driver.bat`:
+
+ build_driver.bat C:\workspace\personal\windows7-drivers\km\src\simple
+
+The binaries are copied to "bin/" (under this directory).
+
+### Cleaning up
+
+Cleaning up after building a driver includes deleting the log and object files
+produced during the build as well as purging the binaries from the "bin/"
+directory.
+
+To clean up after `build_drivers.bat`, execute `clean_drivers.bat`:
+
+ clean_drivers.bat
+
+To clean up after building a particular driver, pass the driver's source
+directory to `clean_driver.bat`:
+
+ clean_driver.bat C:\workspace\personal\windows7-drivers\km\src\simple