aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--README.md48
-rw-r--r--utils/README.md16
-rw-r--r--utils/libnt_path_converter/README.md15
-rw-r--r--utils/libservice/README.md13
4 files changed, 59 insertions, 33 deletions
diff --git a/README.md b/README.md
index efb8e2c..f17b493 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,8 @@ This is a collection of drivers for Windows 7, created to amuse and entertain.
The drivers are compiled using the Windows Driver Kit Version 7.1.0.
-I've developed a set of batch files to facilitate building the drivers and cleaning after the build.
+I've developed a set of batch files to facilitate building the drivers and
+cleaning after the build.
The binaries are copied into the "bin" directory under the root directory.
To set up the development environment, start a new `cmd` session, and run
@@ -26,21 +27,27 @@ Then navigate to the root directory and call `setenv.bat`:
### Code signing
-Driver binaries are signed using the self-signed certificate "Test Certificate" in "Test Certificate Store".
-You can create this certificate using `add_cert.bat` (but first make sure you've set up the development environment).
+Driver binaries are signed using the self-signed certificate "Test Certificate"
+in "Test Certificate Store".
+You can create this certificate using `add_cert.bat` (but first make sure
+you've set up the development environment).
To verify it's there, you can use the `certmgr.msc` utility.
-Driver binaries are automatically signed during builds, but you can also sign one manually by passing the path to a .sys file to `sign.bat`.
+Driver binaries are automatically signed during builds, but you can also sign
+one manually by passing the path to a .sys file to `sign.bat`.
### Build & clean
To build every driver under the "src" directory, call `build_drivers.bat`.
-To build a particular driver, pass the path to the driver source directory to `build_driver.bat`.
+To build a particular driver, pass the path to the driver source directory to
+`build_driver.bat`.
Driver binaries are copied to the "bin" directory.
-Cleaning after a driver build includes deleting log and object files in the driver source directory and deleting the binaries from the "bin" directory.
+Cleaning after a driver build includes deleting log and object files in the
+driver source directory and deleting the binaries from the "bin" directory.
To clean after every driver in the "src" directory, call `clean_drivers.bat`.
-To clean after a particular driver, pass the path to the driver source directory to `clean_driver.bat`.
+To clean after a particular driver, pass the path to the driver source
+directory to `clean_driver.bat`.
## Installation
@@ -49,7 +56,8 @@ For example, to install a driver "C:\test.sys" as a "test" service, run
sc create test type= kernel binPath= C:\test.sys
-You can then load/unload the driver using the `sc` to start/stop the corresponding service.
+You can then load/unload the driver using the `sc` to start/stop the
+corresponding service.
sc start test
sc stop test
@@ -58,9 +66,11 @@ To uninstall a driver, delete the corresponding service using `sc`.
sc delete test
-Please note, that on the 64-bit version of Windows 7 loading 32-bit drivers is not allowed.
+Please note, that on the 64-bit version of Windows 7 loading 32-bit drivers is
+not allowed.
-You may also need to explicitly enable loading self-signed drivers on 64-bit versions of Windows.
+You may also need to explicitly enable loading self-signed drivers on 64-bit
+versions of Windows.
One way is to use the `bcdedit` utility:
bcdedit /set testsigning on
@@ -70,21 +80,27 @@ Then restart your computer and you should be all set!
## Debugging
You can debug a driver using WinDbg.
-To enable kernel debugging, you can use the `msconfig` utility (navigate to "Boot" -> "Advanced options..." and check "Debug") or the `bcdedit` utility:
+To enable kernel debugging, you can use the `msconfig` utility (navigate to
+"Boot" -> "Advanced options..." and check "Debug") or the `bcdedit` utility:
bcdedit /debug on
bcdedit /dbgsettings serial debugport:1 baudrate:115200
Restart your computer for these settings to take effect.
-If a driver is loaded on a separate physical machine, you can connect to a physical COM port from another host with WinDbg installed and enable kernel debugging via "File" -> "Kernel Debug...".
-You might need to restart the debuggee a couple of times in order to enter the kernel debugging mode.
+If a driver is loaded on a separate physical machine, you can connect to a
+physical COM port from another host with WinDbg installed and enable kernel
+debugging via "File" -> "Kernel Debug...".
+You might need to restart the debuggee a couple of times in order to enter the
+kernel debugging mode.
-If a driver is running on a virtual machine, the conventional approach is to expose a COM port via a named pipe.
+If a driver is running on a virtual machine, the conventional approach is to
+expose a COM port via a named pipe.
You can then connect to the pipe from WinDbg installed on the host.
Refer to your virtualization software's documentation for more details.
## Licensing
-This project, including all of the files and their contents, is licensed under the terms of the MIT License.
-See LICENSE.txt for details.
+This project, including all of the files and their contents, is licensed under
+the terms of the MIT License.
+See [LICENSE.txt](LICENSE.txt) for details.
diff --git a/utils/README.md b/utils/README.md
index a106359..2f6072d 100644
--- a/utils/README.md
+++ b/utils/README.md
@@ -1,19 +1,23 @@
# Service management utilities
-Utilities used to manage (load, start, stop and unload) and communicate with drivers via virtual devices.
+Utilities used to manage (load, start, stop and unload) and communicate with
+drivers via virtual devices.
Usage examples of some of the drivers in this repository are also included.
-* [libservice](https://github.com/egor-tensin/windows_drivers/tree/master/utils/libservice) — a simple service management library.
+* [libservice](libservice) — a simple service management library.
Also includes means of communicating with a driver via virtual devices.
-* [libnt_path_converter](https://github.com/egor-tensin/windows_drivers/tree/master/utils/libnt_path_converter) — [nt_path_converter](https://github.com/egor-tensin/windows_drivers/tree/master/src/nt_path_converter) usage examples.
+* [libnt_path_converter](libnt_path_converter) —
+ [nt_path_converter](../src/nt_path_converter) usage examples.
## Building
-I've used the compiler shipped with Visual Studio Express 2013 with Update 4 for Windows Desktop.
+I've used the compiler shipped with Visual Studio Express 2013 with Update 4
+for Windows Desktop.
-You can generate the solution windows_drivers_utils.sln using CMake and build it using Visual Studio.
+You can generate the solution windows_drivers_utils.sln using CMake and build
+it using Visual Studio.
## Licensing
This project is licensed under the terms of the MIT License.
-See [Licensing](https://github.com/egor-tensin/windows_drivers#licensing) for details.
+See [Licensing](../README.md#licensing) for details.
diff --git a/utils/libnt_path_converter/README.md b/utils/libnt_path_converter/README.md
index 8d03e5c..b281d10 100644
--- a/utils/libnt_path_converter/README.md
+++ b/utils/libnt_path_converter/README.md
@@ -1,20 +1,23 @@
# libnt_path_converter
-[nt_path_converter](https://github.com/egor-tensin/windows_drivers/tree/master/src/nt_path_converter) usage examples.
+[nt_path_converter](../../src/nt_path_converter) usage examples.
## Usage
### libnt_path_converter.lib
-Wraps nt_path_converter's virtual device interface using [libservice](https://github.com/egor-tensin/windows_drivers/tree/master/utils/libservice).
-Include the headers by `#include`ing `include/libnt_path_converter/all.hpp`, which includes all of the other header files.
+Wraps nt_path_converter's virtual device interface using
+[libservice](../libservice).
+Include the headers by `#include`ing `include/libnt_path_converter/all.hpp`,
+which includes all of the other header files.
### convert_nt_path.exe
Usage: convert_nt_path.exe [NT_PATH...]
Converts a NT-style path to a DOS-style path.
-The NT namespace can be explored using the [WinObj](https://technet.microsoft.com/en-us/library/bb896657.aspx) utility.
+The NT namespace can be explored using the
+[WinObj](https://technet.microsoft.com/en-us/library/bb896657.aspx) utility.
Usage example (assuming nt_path_converter is already loaded):
>convert_nt_path.exe \Device\HarddiskVolume2\Windows
@@ -22,9 +25,9 @@ Usage example (assuming nt_path_converter is already loaded):
## Building
-See [Building](https://github.com/egor-tensin/windows_drivers/tree/master/utils#building).
+See [Building](../README.md#building).
## Licensing
This project is licensed under the terms of the MIT License.
-See [Licensing](https://github.com/egor-tensin/windows_drivers#licensing) for details.
+See [Licensing](../../README.md#licensing) for details.
diff --git a/utils/libservice/README.md b/utils/libservice/README.md
index a652f7b..c8dd180 100644
--- a/utils/libservice/README.md
+++ b/utils/libservice/README.md
@@ -6,11 +6,13 @@ Simple service management library and utilities.
### libservice.lib
-Clients may include the headers by `#include`ing `include/libservice/all.hpp`, which includes all of the other header files.
+Clients may include the headers by `#include`ing `include/libservice/all.hpp`,
+which includes all of the other header files.
For service management usage examples, see the utilities descriptions below.
-For virtual device usage examples, refer e.g. to [libnt_path_converter](https://github.com/egor-tensin/windows_drivers/tree/master/utils/libnt_path_converter).
+For virtual device usage examples, refer e.g. to
+[libnt_path_converter](../libnt_path_converter).
### install_service.exe
@@ -48,16 +50,17 @@ except that `stop_service.exe` waits until the service is actually stopped.
Usage: uninstall_service.exe NAME
-Uninstalls the service `NAME`, wiping the corresponding record from the registry.
+Uninstalls the service `NAME`, wiping the corresponding record from the
+registry.
The same as
sc delete NAME
## Building
-See [Building](https://github.com/egor-tensin/windows_drivers/tree/master/utils#building).
+See [Building](../README.md#building).
## Licensing
This project is licensed under the terms of the MIT License.
-See [Licensing](https://github.com/egor-tensin/windows_drivers#licensing) for details.
+See [Licensing](../../README.md#licensing) for details.