aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.md11
-rw-r--r--km/build/wdk7.1/.gitignore2
-rw-r--r--km/build/wdk7.1/add_cert.bat (renamed from add_cert.bat)0
-rw-r--r--km/build/wdk7.1/build_driver.bat (renamed from build_driver.bat)2
-rw-r--r--km/build/wdk7.1/build_drivers.bat (renamed from build_drivers.bat)2
-rw-r--r--km/build/wdk7.1/check_ddk.bat (renamed from check_ddk.bat)4
-rw-r--r--km/build/wdk7.1/check_env.bat (renamed from check_env.bat)0
-rw-r--r--km/build/wdk7.1/clean_driver.bat (renamed from clean_driver.bat)0
-rw-r--r--km/build/wdk7.1/clean_drivers.bat (renamed from clean_drivers.bat)2
-rw-r--r--km/build/wdk7.1/setenv.bat (renamed from setenv.bat)12
-rw-r--r--km/build/wdk7.1/sign.bat (renamed from sign.bat)0
-rw-r--r--km/build/wdk8.1update/minimal/.gitignore (renamed from src/minimal/vs12/.gitignore)0
-rw-r--r--km/build/wdk8.1update/minimal/minimal.vs12.sln (renamed from src/minimal/vs12/minimal.vs12.sln)0
-rw-r--r--km/build/wdk8.1update/minimal/minimal.vs12.vcxproj (renamed from src/minimal/vs12/minimal.vs12.vcxproj)2
-rw-r--r--km/build/wdk8.1update/simple/.gitignore (renamed from src/nt_path_converter/vs12/.gitignore)0
-rw-r--r--km/build/wdk8.1update/simple/simple.vs12.sln (renamed from src/simple/vs12/simple.vs12.sln)0
-rw-r--r--km/build/wdk8.1update/simple/simple.vs12.vcxproj (renamed from src/simple/vs12/simple.vs12.vcxproj)6
-rw-r--r--km/build/wdk8.1update/special/nt_path_converter/.gitignore (renamed from src/simple/vs12/.gitignore)0
-rw-r--r--km/build/wdk8.1update/special/nt_path_converter/nt_path_converter.vs12.sln (renamed from src/nt_path_converter/vs12/nt_path_converter.vs12.sln)0
-rw-r--r--km/build/wdk8.1update/special/nt_path_converter/nt_path_converter.vs12.vcxproj (renamed from src/nt_path_converter/vs12/nt_path_converter.vs12.vcxproj)12
-rw-r--r--km/build/wdk8.1update/special/sysenter/.gitignore (renamed from src/sysenter/vs12/.gitignore)0
-rw-r--r--km/build/wdk8.1update/special/sysenter/sysenter.vs12.sln (renamed from src/sysenter/vs12/sysenter.vs12.sln)0
-rw-r--r--km/build/wdk8.1update/special/sysenter/sysenter.vs12.vcxproj (renamed from src/sysenter/vs12/sysenter.vs12.vcxproj)2
-rw-r--r--km/src/dirs1
-rw-r--r--km/src/minimal/main.c (renamed from src/minimal/main.c)0
-rw-r--r--km/src/minimal/makefile (renamed from src/minimal/makefile)0
-rw-r--r--km/src/minimal/sources (renamed from src/minimal/sources)0
-rw-r--r--km/src/simple/device.c (renamed from src/simple/device.c)0
-rw-r--r--km/src/simple/device.h (renamed from src/nt_path_converter/device.h)0
-rw-r--r--km/src/simple/main.c (renamed from src/simple/main.c)0
-rw-r--r--km/src/simple/makefile (renamed from src/nt_path_converter/makefile)0
-rw-r--r--km/src/simple/sources (renamed from src/simple/sources)0
-rw-r--r--km/src/special/dirs1
-rw-r--r--km/src/special/nt_path_converter/control_codes.h (renamed from src/nt_path_converter/control_codes.h)0
-rw-r--r--km/src/special/nt_path_converter/device.c (renamed from src/nt_path_converter/device.c)0
-rw-r--r--km/src/special/nt_path_converter/device.h (renamed from src/simple/device.h)0
-rw-r--r--km/src/special/nt_path_converter/main.c (renamed from src/nt_path_converter/main.c)0
-rw-r--r--km/src/special/nt_path_converter/makefile (renamed from src/simple/makefile)0
-rw-r--r--km/src/special/nt_path_converter/nt2dos.c (renamed from src/nt_path_converter/nt2dos.c)0
-rw-r--r--km/src/special/nt_path_converter/nt2dos.h (renamed from src/nt_path_converter/nt2dos.h)0
-rw-r--r--km/src/special/nt_path_converter/sources (renamed from src/nt_path_converter/sources)0
-rw-r--r--km/src/special/sysenter/main.c (renamed from src/sysenter/main.c)0
-rw-r--r--km/src/special/sysenter/makefile (renamed from src/sysenter/makefile)0
-rw-r--r--km/src/special/sysenter/sources (renamed from src/sysenter/sources)0
-rw-r--r--src/dirs1
-rw-r--r--um/CMakeLists.txt (renamed from utils/CMakeLists.txt)0
-rw-r--r--um/README.md (renamed from utils/README.md)6
-rw-r--r--um/libnt_path_converter/CMakeLists.txt (renamed from utils/libnt_path_converter/CMakeLists.txt)0
-rw-r--r--um/libnt_path_converter/README.md (renamed from utils/libnt_path_converter/README.md)2
-rw-r--r--um/libnt_path_converter/include/libnt_path_converter/all.hpp (renamed from utils/libnt_path_converter/include/libnt_path_converter/all.hpp)0
-rw-r--r--um/libnt_path_converter/include/libnt_path_converter/device.hpp (renamed from utils/libnt_path_converter/include/libnt_path_converter/device.hpp)0
-rw-r--r--um/libnt_path_converter/src/device.cpp (renamed from utils/libnt_path_converter/src/device.cpp)0
-rw-r--r--um/libnt_path_converter/utils/CMakeLists.txt (renamed from utils/libnt_path_converter/utils/CMakeLists.txt)0
-rw-r--r--um/libnt_path_converter/utils/convert_nt_path.cpp (renamed from utils/libnt_path_converter/utils/convert_nt_path.cpp)0
-rw-r--r--um/libservice/CMakeLists.txt (renamed from utils/libservice/CMakeLists.txt)0
-rw-r--r--um/libservice/README.md (renamed from utils/libservice/README.md)0
-rw-r--r--um/libservice/include/libservice/all.hpp (renamed from utils/libservice/include/libservice/all.hpp)0
-rw-r--r--um/libservice/include/libservice/common.hpp (renamed from utils/libservice/include/libservice/common.hpp)0
-rw-r--r--um/libservice/include/libservice/device.hpp (renamed from utils/libservice/include/libservice/device.hpp)0
-rw-r--r--um/libservice/include/libservice/handle.hpp (renamed from utils/libservice/include/libservice/handle.hpp)0
-rw-r--r--um/libservice/include/libservice/service.hpp (renamed from utils/libservice/include/libservice/service.hpp)0
-rw-r--r--um/libservice/include/libservice/service_handle.hpp (renamed from utils/libservice/include/libservice/service_handle.hpp)0
-rw-r--r--um/libservice/include/libservice/service_manager.hpp (renamed from utils/libservice/include/libservice/service_manager.hpp)0
-rw-r--r--um/libservice/include/libservice/singleton.hpp (renamed from utils/libservice/include/libservice/singleton.hpp)0
-rw-r--r--um/libservice/include/libservice/windows_error.hpp (renamed from utils/libservice/include/libservice/windows_error.hpp)0
-rw-r--r--um/libservice/src/device.cpp (renamed from utils/libservice/src/device.cpp)0
-rw-r--r--um/libservice/src/handle.cpp (renamed from utils/libservice/src/handle.cpp)0
-rw-r--r--um/libservice/src/service.cpp (renamed from utils/libservice/src/service.cpp)0
-rw-r--r--um/libservice/src/service_handle.cpp (renamed from utils/libservice/src/service_handle.cpp)0
-rw-r--r--um/libservice/src/service_manager.cpp (renamed from utils/libservice/src/service_manager.cpp)0
-rw-r--r--um/libservice/src/windows_error.cpp (renamed from utils/libservice/src/windows_error.cpp)0
-rw-r--r--um/libservice/test/CMakeLists.txt (renamed from utils/libservice/test/CMakeLists.txt)0
-rw-r--r--um/libservice/test/windows_error.cpp (renamed from utils/libservice/test/windows_error.cpp)0
-rw-r--r--um/libservice/utils/CMakeLists.txt (renamed from utils/libservice/utils/CMakeLists.txt)0
-rw-r--r--um/libservice/utils/install_service.cpp (renamed from utils/libservice/utils/install_service.cpp)0
-rw-r--r--um/libservice/utils/start_service.cpp (renamed from utils/libservice/utils/start_service.cpp)0
-rw-r--r--um/libservice/utils/stop_service.cpp (renamed from utils/libservice/utils/stop_service.cpp)0
-rw-r--r--um/libservice/utils/uninstall_service.cpp (renamed from utils/libservice/utils/uninstall_service.cpp)0
-rw-r--r--um/libsimple/CMakeLists.txt (renamed from utils/libsimple/CMakeLists.txt)0
-rw-r--r--um/libsimple/README.md (renamed from utils/libsimple/README.md)2
-rw-r--r--um/libsimple/include/libsimple/all.hpp (renamed from utils/libsimple/include/libsimple/all.hpp)0
-rw-r--r--um/libsimple/include/libsimple/device.hpp (renamed from utils/libsimple/include/libsimple/device.hpp)0
-rw-r--r--um/libsimple/src/device.cpp (renamed from utils/libsimple/src/device.cpp)0
-rw-r--r--um/libsimple/utils/CMakeLists.txt (renamed from utils/libsimple/utils/CMakeLists.txt)0
-rw-r--r--um/libsimple/utils/exchange_ints.cpp (renamed from utils/libsimple/utils/exchange_ints.cpp)0
86 files changed, 39 insertions, 32 deletions
diff --git a/.gitignore b/.gitignore
index 6585109..817a3f4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
-/bin/
*.err
*.log
*.wrn
diff --git a/README.md b/README.md
index 6f02fe5..ca3f926 100644
--- a/README.md
+++ b/README.md
@@ -47,14 +47,15 @@ sign manually by passing the path to a .sys file to `sign.bat`:
### Building the drivers
-To build every driver under the "src/" directory, execute `build_drivers.bat`:
+To build every driver under the "km/src/" directory, 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\src\simple
+ build_driver.bat C:\workspace\personal\windows7-drivers\km\src\simple
Driver binaries are copied to the "bin/" directory under the project's root.
@@ -64,7 +65,7 @@ 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 building every driver in the "src/" directory, execute
+To clean up after building every driver in the "km/src/" directory, execute
`clean_drivers.bat`:
clean_drivers.bat
@@ -72,7 +73,7 @@ To clean up after building every driver in the "src/" directory, execute
To clean up after building a particular driver, pass the path to the driver's
source directory to `clean_driver.bat`:
- clean_driver.bat C:\workspace\personal\windows7-drivers\src\simple
+ clean_driver.bat C:\workspace\personal\windows7-drivers\km\src\simple
Installation
------------
@@ -134,7 +135,7 @@ Utilities
A couple of usages examples are included along with the drivers.
For details, see [Utilities].
-[Utilities]: utils/README.md
+[Utilities]: um/README.md
License
-------
diff --git a/km/build/wdk7.1/.gitignore b/km/build/wdk7.1/.gitignore
new file mode 100644
index 0000000..e6416c5
--- /dev/null
+++ b/km/build/wdk7.1/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/lib/
diff --git a/add_cert.bat b/km/build/wdk7.1/add_cert.bat
index 7223a2a..7223a2a 100644
--- a/add_cert.bat
+++ b/km/build/wdk7.1/add_cert.bat
diff --git a/build_driver.bat b/km/build/wdk7.1/build_driver.bat
index 83961ad..1cf2a9a 100644
--- a/build_driver.bat
+++ b/km/build/wdk7.1/build_driver.bat
@@ -57,7 +57,7 @@ set "lib_path=%driver_src_root%\obj%BUILD_ALT_DIR%\%buildarch_directory%\%driver
if exist "%sys_path%" (
echo.
- call "%root%\sign.bat" "%sys_path%" || exit /b !errorlevel!
+ call "%build_root%\sign.bat" "%sys_path%" || exit /b !errorlevel!
)
echo.
diff --git a/build_drivers.bat b/km/build/wdk7.1/build_drivers.bat
index 8bec487..35b2867 100644
--- a/build_drivers.bat
+++ b/km/build/wdk7.1/build_drivers.bat
@@ -6,7 +6,7 @@
@setlocal enabledelayedexpansion
@echo off
-for /f "delims=" %%i in ('dir /s sources /b') do (
+for /f "delims=" %%i in ('dir "%src_root%\sources" /b /s') do (
set "driver_src_root=%%~dpi"
echo.
call build_driver.bat "!driver_src_root:~0,-1!" || exit /b !errorlevel!
diff --git a/check_ddk.bat b/km/build/wdk7.1/check_ddk.bat
index 0c4d414..aaabd76 100644
--- a/check_ddk.bat
+++ b/km/build/wdk7.1/check_ddk.bat
@@ -11,8 +11,8 @@ call check_env.bat || exit /b !errorlevel!
if not defined BUILD_ALT_DIR goto :ddk_not_set
if not defined _BUILDARCH goto :ddk_not_set
-if not exist "%root%\sign.bat" (
- echo Error: %root%\sign.bat was not found ^(don^'t know how to sign drivers otherwise^) >&2
+if not exist "%build_root%\sign.bat" (
+ echo Error: %build_root%\sign.bat was not found ^(don^'t know how to sign drivers otherwise^) >&2
exit /b 1
)
diff --git a/check_env.bat b/km/build/wdk7.1/check_env.bat
index f3cb382..f3cb382 100644
--- a/check_env.bat
+++ b/km/build/wdk7.1/check_env.bat
diff --git a/clean_driver.bat b/km/build/wdk7.1/clean_driver.bat
index 2a98624..2a98624 100644
--- a/clean_driver.bat
+++ b/km/build/wdk7.1/clean_driver.bat
diff --git a/clean_drivers.bat b/km/build/wdk7.1/clean_drivers.bat
index ca2e48e..8442c90 100644
--- a/clean_drivers.bat
+++ b/km/build/wdk7.1/clean_drivers.bat
@@ -6,7 +6,7 @@
@setlocal enabledelayedexpansion
@echo off
-for /f "delims=" %%i in ('dir /s sources /b') do (
+for /f "delims=" %%i in ('dir "%src_root%\sources" /b /s') do (
set "driver_src_root=%%~dpi"
echo.
call clean_driver.bat "!driver_src_root:~0,-1!" || exit /b !errorlevel!
diff --git a/setenv.bat b/km/build/wdk7.1/setenv.bat
index ee164df..c77bb92 100644
--- a/setenv.bat
+++ b/km/build/wdk7.1/setenv.bat
@@ -5,10 +5,14 @@
@echo off
-set "root=%~dp0%"
-set "src_root=%root%src"
-set "bin_root=%root%bin"
-set "lib_root=%root%lib"
+set "build_root=%~dp0%"
+
+set "root=%build_root%\..\..\.."
+for /f "delims=" %%i in ("%root%") do set "root=%%~fi"
+
+set "src_root=%root%\km\src"
+set "bin_root=%root%\km\build\wdk7.1\bin"
+set "lib_root=%root%\km\build\wdk7.1\lib"
set target_configuration=Release
diff --git a/sign.bat b/km/build/wdk7.1/sign.bat
index 9955ac2..9955ac2 100644
--- a/sign.bat
+++ b/km/build/wdk7.1/sign.bat
diff --git a/src/minimal/vs12/.gitignore b/km/build/wdk8.1update/minimal/.gitignore
index cd42ee3..cd42ee3 100644
--- a/src/minimal/vs12/.gitignore
+++ b/km/build/wdk8.1update/minimal/.gitignore
diff --git a/src/minimal/vs12/minimal.vs12.sln b/km/build/wdk8.1update/minimal/minimal.vs12.sln
index ad150d0..ad150d0 100644
--- a/src/minimal/vs12/minimal.vs12.sln
+++ b/km/build/wdk8.1update/minimal/minimal.vs12.sln
diff --git a/src/minimal/vs12/minimal.vs12.vcxproj b/km/build/wdk8.1update/minimal/minimal.vs12.vcxproj
index b50d993..fae1fe4 100644
--- a/src/minimal/vs12/minimal.vs12.vcxproj
+++ b/km/build/wdk8.1update/minimal/minimal.vs12.vcxproj
@@ -277,7 +277,7 @@
<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\main.c" />
+ <ClCompile Include="..\..\..\src\minimal\main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/src/nt_path_converter/vs12/.gitignore b/km/build/wdk8.1update/simple/.gitignore
index cd42ee3..cd42ee3 100644
--- a/src/nt_path_converter/vs12/.gitignore
+++ b/km/build/wdk8.1update/simple/.gitignore
diff --git a/src/simple/vs12/simple.vs12.sln b/km/build/wdk8.1update/simple/simple.vs12.sln
index 2b1ad11..2b1ad11 100644
--- a/src/simple/vs12/simple.vs12.sln
+++ b/km/build/wdk8.1update/simple/simple.vs12.sln
diff --git a/src/simple/vs12/simple.vs12.vcxproj b/km/build/wdk8.1update/simple/simple.vs12.vcxproj
index 5fee57f..b758480 100644
--- a/src/simple/vs12/simple.vs12.vcxproj
+++ b/km/build/wdk8.1update/simple/simple.vs12.vcxproj
@@ -217,11 +217,11 @@
<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\device.c" />
- <ClCompile Include="..\main.c" />
+ <ClCompile Include="..\..\..\src\simple\device.c" />
+ <ClCompile Include="..\..\..\src\simple\main.c" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="..\device.h" />
+ <ClInclude Include="..\..\..\src\simple\device.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/src/simple/vs12/.gitignore b/km/build/wdk8.1update/special/nt_path_converter/.gitignore
index cd42ee3..cd42ee3 100644
--- a/src/simple/vs12/.gitignore
+++ b/km/build/wdk8.1update/special/nt_path_converter/.gitignore
diff --git a/src/nt_path_converter/vs12/nt_path_converter.vs12.sln b/km/build/wdk8.1update/special/nt_path_converter/nt_path_converter.vs12.sln
index 45cf003..45cf003 100644
--- a/src/nt_path_converter/vs12/nt_path_converter.vs12.sln
+++ b/km/build/wdk8.1update/special/nt_path_converter/nt_path_converter.vs12.sln
diff --git a/src/nt_path_converter/vs12/nt_path_converter.vs12.vcxproj b/km/build/wdk8.1update/special/nt_path_converter/nt_path_converter.vs12.vcxproj
index 4a50b17..f87134e 100644
--- a/src/nt_path_converter/vs12/nt_path_converter.vs12.vcxproj
+++ b/km/build/wdk8.1update/special/nt_path_converter/nt_path_converter.vs12.vcxproj
@@ -217,14 +217,14 @@
<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="..\control_codes.h" />
- <ClInclude Include="..\device.h" />
- <ClInclude Include="..\nt2dos.h" />
+ <ClInclude Include="..\..\..\..\src\special\nt_path_converter\control_codes.h" />
+ <ClInclude Include="..\..\..\..\src\special\nt_path_converter\device.h" />
+ <ClInclude Include="..\..\..\..\src\special\nt_path_converter\nt2dos.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\device.c" />
- <ClCompile Include="..\main.c" />
- <ClCompile Include="..\nt2dos.c" />
+ <ClCompile Include="..\..\..\..\src\special\nt_path_converter\device.c" />
+ <ClCompile Include="..\..\..\..\src\special\nt_path_converter\main.c" />
+ <ClCompile Include="..\..\..\..\src\special\nt_path_converter\nt2dos.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/src/sysenter/vs12/.gitignore b/km/build/wdk8.1update/special/sysenter/.gitignore
index cd42ee3..cd42ee3 100644
--- a/src/sysenter/vs12/.gitignore
+++ b/km/build/wdk8.1update/special/sysenter/.gitignore
diff --git a/src/sysenter/vs12/sysenter.vs12.sln b/km/build/wdk8.1update/special/sysenter/sysenter.vs12.sln
index ec3ab31..ec3ab31 100644
--- a/src/sysenter/vs12/sysenter.vs12.sln
+++ b/km/build/wdk8.1update/special/sysenter/sysenter.vs12.sln
diff --git a/src/sysenter/vs12/sysenter.vs12.vcxproj b/km/build/wdk8.1update/special/sysenter/sysenter.vs12.vcxproj
index eaba723..966eb6a 100644
--- a/src/sysenter/vs12/sysenter.vs12.vcxproj
+++ b/km/build/wdk8.1update/special/sysenter/sysenter.vs12.vcxproj
@@ -57,7 +57,7 @@
<FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="..\main.c" />
+ <ClCompile Include="..\..\..\..\src\special\sysenter\main.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/km/src/dirs b/km/src/dirs
new file mode 100644
index 0000000..a32bc1d
--- /dev/null
+++ b/km/src/dirs
@@ -0,0 +1 @@
+DIRS = minimal simple special
diff --git a/src/minimal/main.c b/km/src/minimal/main.c
index 6983929..6983929 100644
--- a/src/minimal/main.c
+++ b/km/src/minimal/main.c
diff --git a/src/minimal/makefile b/km/src/minimal/makefile
index 5acbbd2..5acbbd2 100644
--- a/src/minimal/makefile
+++ b/km/src/minimal/makefile
diff --git a/src/minimal/sources b/km/src/minimal/sources
index b6e92c3..b6e92c3 100644
--- a/src/minimal/sources
+++ b/km/src/minimal/sources
diff --git a/src/simple/device.c b/km/src/simple/device.c
index 859ba67..859ba67 100644
--- a/src/simple/device.c
+++ b/km/src/simple/device.c
diff --git a/src/nt_path_converter/device.h b/km/src/simple/device.h
index 4f117e9..4f117e9 100644
--- a/src/nt_path_converter/device.h
+++ b/km/src/simple/device.h
diff --git a/src/simple/main.c b/km/src/simple/main.c
index 5148727..5148727 100644
--- a/src/simple/main.c
+++ b/km/src/simple/main.c
diff --git a/src/nt_path_converter/makefile b/km/src/simple/makefile
index 5acbbd2..5acbbd2 100644
--- a/src/nt_path_converter/makefile
+++ b/km/src/simple/makefile
diff --git a/src/simple/sources b/km/src/simple/sources
index 1a5ce00..1a5ce00 100644
--- a/src/simple/sources
+++ b/km/src/simple/sources
diff --git a/km/src/special/dirs b/km/src/special/dirs
new file mode 100644
index 0000000..479f4db
--- /dev/null
+++ b/km/src/special/dirs
@@ -0,0 +1 @@
+DIRS = nt_path_converter sysenter
diff --git a/src/nt_path_converter/control_codes.h b/km/src/special/nt_path_converter/control_codes.h
index 3fb2aff..3fb2aff 100644
--- a/src/nt_path_converter/control_codes.h
+++ b/km/src/special/nt_path_converter/control_codes.h
diff --git a/src/nt_path_converter/device.c b/km/src/special/nt_path_converter/device.c
index a179984..a179984 100644
--- a/src/nt_path_converter/device.c
+++ b/km/src/special/nt_path_converter/device.c
diff --git a/src/simple/device.h b/km/src/special/nt_path_converter/device.h
index 4f117e9..4f117e9 100644
--- a/src/simple/device.h
+++ b/km/src/special/nt_path_converter/device.h
diff --git a/src/nt_path_converter/main.c b/km/src/special/nt_path_converter/main.c
index a1c08e8..a1c08e8 100644
--- a/src/nt_path_converter/main.c
+++ b/km/src/special/nt_path_converter/main.c
diff --git a/src/simple/makefile b/km/src/special/nt_path_converter/makefile
index 5acbbd2..5acbbd2 100644
--- a/src/simple/makefile
+++ b/km/src/special/nt_path_converter/makefile
diff --git a/src/nt_path_converter/nt2dos.c b/km/src/special/nt_path_converter/nt2dos.c
index d1bdb3d..d1bdb3d 100644
--- a/src/nt_path_converter/nt2dos.c
+++ b/km/src/special/nt_path_converter/nt2dos.c
diff --git a/src/nt_path_converter/nt2dos.h b/km/src/special/nt_path_converter/nt2dos.h
index ce0b690..ce0b690 100644
--- a/src/nt_path_converter/nt2dos.h
+++ b/km/src/special/nt_path_converter/nt2dos.h
diff --git a/src/nt_path_converter/sources b/km/src/special/nt_path_converter/sources
index 02a42cd..02a42cd 100644
--- a/src/nt_path_converter/sources
+++ b/km/src/special/nt_path_converter/sources
diff --git a/src/sysenter/main.c b/km/src/special/sysenter/main.c
index 9eb9b28..9eb9b28 100644
--- a/src/sysenter/main.c
+++ b/km/src/special/sysenter/main.c
diff --git a/src/sysenter/makefile b/km/src/special/sysenter/makefile
index 5acbbd2..5acbbd2 100644
--- a/src/sysenter/makefile
+++ b/km/src/special/sysenter/makefile
diff --git a/src/sysenter/sources b/km/src/special/sysenter/sources
index d6371b3..d6371b3 100644
--- a/src/sysenter/sources
+++ b/km/src/special/sysenter/sources
diff --git a/src/dirs b/src/dirs
deleted file mode 100644
index 065777a..0000000
--- a/src/dirs
+++ /dev/null
@@ -1 +0,0 @@
-DIRS = minimal nt_path_converter simple sysenter
diff --git a/utils/CMakeLists.txt b/um/CMakeLists.txt
index 31c8511..31c8511 100644
--- a/utils/CMakeLists.txt
+++ b/um/CMakeLists.txt
diff --git a/utils/README.md b/um/README.md
index 1579471..f18091a 100644
--- a/utils/README.md
+++ b/um/README.md
@@ -9,9 +9,9 @@ A couple of usage examples are included along with the drivers.
[libservice]: libservice/README.md
[libsimple]: libsimple/README.md
-[simple]: ../src/simple
+[simple]: ../km/src/simple
[libnt_path_converter]: libnt_path_converter/README.md
-[nt_path_converter]: ../src/nt_path_converter
+[nt_path_converter]: ../km/src/special/nt_path_converter
Building the utilities
----------------------
@@ -24,7 +24,7 @@ x86):
> cd
C:\workspace\build\windows7-drivers
- > cmake -G "Visual Studio 12 2013" C:\workspace\personal\windows7-drivers\utils
+ > cmake -G "Visual Studio 12 2013" C:\workspace\personal\windows7-drivers\um
...
> msbuild windows7_drivers_utils.sln
diff --git a/utils/libnt_path_converter/CMakeLists.txt b/um/libnt_path_converter/CMakeLists.txt
index 69f85d0..69f85d0 100644
--- a/utils/libnt_path_converter/CMakeLists.txt
+++ b/um/libnt_path_converter/CMakeLists.txt
diff --git a/utils/libnt_path_converter/README.md b/um/libnt_path_converter/README.md
index b5830d6..74653dc 100644
--- a/utils/libnt_path_converter/README.md
+++ b/um/libnt_path_converter/README.md
@@ -3,7 +3,7 @@ nt_path_converter driver utilities
[nt_path_converter] driver usage examples.
-[nt_path_converter]: ../../src/nt_path_converter
+[nt_path_converter]: ../../km/src/special/nt_path_converter
Usage
-----
diff --git a/utils/libnt_path_converter/include/libnt_path_converter/all.hpp b/um/libnt_path_converter/include/libnt_path_converter/all.hpp
index 474b802..474b802 100644
--- a/utils/libnt_path_converter/include/libnt_path_converter/all.hpp
+++ b/um/libnt_path_converter/include/libnt_path_converter/all.hpp
diff --git a/utils/libnt_path_converter/include/libnt_path_converter/device.hpp b/um/libnt_path_converter/include/libnt_path_converter/device.hpp
index e1d75fb..e1d75fb 100644
--- a/utils/libnt_path_converter/include/libnt_path_converter/device.hpp
+++ b/um/libnt_path_converter/include/libnt_path_converter/device.hpp
diff --git a/utils/libnt_path_converter/src/device.cpp b/um/libnt_path_converter/src/device.cpp
index 90cd12f..90cd12f 100644
--- a/utils/libnt_path_converter/src/device.cpp
+++ b/um/libnt_path_converter/src/device.cpp
diff --git a/utils/libnt_path_converter/utils/CMakeLists.txt b/um/libnt_path_converter/utils/CMakeLists.txt
index 9915995..9915995 100644
--- a/utils/libnt_path_converter/utils/CMakeLists.txt
+++ b/um/libnt_path_converter/utils/CMakeLists.txt
diff --git a/utils/libnt_path_converter/utils/convert_nt_path.cpp b/um/libnt_path_converter/utils/convert_nt_path.cpp
index 0055db2..0055db2 100644
--- a/utils/libnt_path_converter/utils/convert_nt_path.cpp
+++ b/um/libnt_path_converter/utils/convert_nt_path.cpp
diff --git a/utils/libservice/CMakeLists.txt b/um/libservice/CMakeLists.txt
index 34b3d13..34b3d13 100644
--- a/utils/libservice/CMakeLists.txt
+++ b/um/libservice/CMakeLists.txt
diff --git a/utils/libservice/README.md b/um/libservice/README.md
index f9fb601..f9fb601 100644
--- a/utils/libservice/README.md
+++ b/um/libservice/README.md
diff --git a/utils/libservice/include/libservice/all.hpp b/um/libservice/include/libservice/all.hpp
index a5761e0..a5761e0 100644
--- a/utils/libservice/include/libservice/all.hpp
+++ b/um/libservice/include/libservice/all.hpp
diff --git a/utils/libservice/include/libservice/common.hpp b/um/libservice/include/libservice/common.hpp
index a1c46fb..a1c46fb 100644
--- a/utils/libservice/include/libservice/common.hpp
+++ b/um/libservice/include/libservice/common.hpp
diff --git a/utils/libservice/include/libservice/device.hpp b/um/libservice/include/libservice/device.hpp
index ac292c8..ac292c8 100644
--- a/utils/libservice/include/libservice/device.hpp
+++ b/um/libservice/include/libservice/device.hpp
diff --git a/utils/libservice/include/libservice/handle.hpp b/um/libservice/include/libservice/handle.hpp
index 5e351d2..5e351d2 100644
--- a/utils/libservice/include/libservice/handle.hpp
+++ b/um/libservice/include/libservice/handle.hpp
diff --git a/utils/libservice/include/libservice/service.hpp b/um/libservice/include/libservice/service.hpp
index 089f790..089f790 100644
--- a/utils/libservice/include/libservice/service.hpp
+++ b/um/libservice/include/libservice/service.hpp
diff --git a/utils/libservice/include/libservice/service_handle.hpp b/um/libservice/include/libservice/service_handle.hpp
index 2883ff3..2883ff3 100644
--- a/utils/libservice/include/libservice/service_handle.hpp
+++ b/um/libservice/include/libservice/service_handle.hpp
diff --git a/utils/libservice/include/libservice/service_manager.hpp b/um/libservice/include/libservice/service_manager.hpp
index 80e6f12..80e6f12 100644
--- a/utils/libservice/include/libservice/service_manager.hpp
+++ b/um/libservice/include/libservice/service_manager.hpp
diff --git a/utils/libservice/include/libservice/singleton.hpp b/um/libservice/include/libservice/singleton.hpp
index 1c7b1a7..1c7b1a7 100644
--- a/utils/libservice/include/libservice/singleton.hpp
+++ b/um/libservice/include/libservice/singleton.hpp
diff --git a/utils/libservice/include/libservice/windows_error.hpp b/um/libservice/include/libservice/windows_error.hpp
index f7ac90e..f7ac90e 100644
--- a/utils/libservice/include/libservice/windows_error.hpp
+++ b/um/libservice/include/libservice/windows_error.hpp
diff --git a/utils/libservice/src/device.cpp b/um/libservice/src/device.cpp
index 5643106..5643106 100644
--- a/utils/libservice/src/device.cpp
+++ b/um/libservice/src/device.cpp
diff --git a/utils/libservice/src/handle.cpp b/um/libservice/src/handle.cpp
index 7567781..7567781 100644
--- a/utils/libservice/src/handle.cpp
+++ b/um/libservice/src/handle.cpp
diff --git a/utils/libservice/src/service.cpp b/um/libservice/src/service.cpp
index 8b5e043..8b5e043 100644
--- a/utils/libservice/src/service.cpp
+++ b/um/libservice/src/service.cpp
diff --git a/utils/libservice/src/service_handle.cpp b/um/libservice/src/service_handle.cpp
index adce7f0..adce7f0 100644
--- a/utils/libservice/src/service_handle.cpp
+++ b/um/libservice/src/service_handle.cpp
diff --git a/utils/libservice/src/service_manager.cpp b/um/libservice/src/service_manager.cpp
index 61662de..61662de 100644
--- a/utils/libservice/src/service_manager.cpp
+++ b/um/libservice/src/service_manager.cpp
diff --git a/utils/libservice/src/windows_error.cpp b/um/libservice/src/windows_error.cpp
index f27018b..f27018b 100644
--- a/utils/libservice/src/windows_error.cpp
+++ b/um/libservice/src/windows_error.cpp
diff --git a/utils/libservice/test/CMakeLists.txt b/um/libservice/test/CMakeLists.txt
index 4780deb..4780deb 100644
--- a/utils/libservice/test/CMakeLists.txt
+++ b/um/libservice/test/CMakeLists.txt
diff --git a/utils/libservice/test/windows_error.cpp b/um/libservice/test/windows_error.cpp
index b909670..b909670 100644
--- a/utils/libservice/test/windows_error.cpp
+++ b/um/libservice/test/windows_error.cpp
diff --git a/utils/libservice/utils/CMakeLists.txt b/um/libservice/utils/CMakeLists.txt
index 061ab25..061ab25 100644
--- a/utils/libservice/utils/CMakeLists.txt
+++ b/um/libservice/utils/CMakeLists.txt
diff --git a/utils/libservice/utils/install_service.cpp b/um/libservice/utils/install_service.cpp
index f36af75..f36af75 100644
--- a/utils/libservice/utils/install_service.cpp
+++ b/um/libservice/utils/install_service.cpp
diff --git a/utils/libservice/utils/start_service.cpp b/um/libservice/utils/start_service.cpp
index fafee53..fafee53 100644
--- a/utils/libservice/utils/start_service.cpp
+++ b/um/libservice/utils/start_service.cpp
diff --git a/utils/libservice/utils/stop_service.cpp b/um/libservice/utils/stop_service.cpp
index 800c7a9..800c7a9 100644
--- a/utils/libservice/utils/stop_service.cpp
+++ b/um/libservice/utils/stop_service.cpp
diff --git a/utils/libservice/utils/uninstall_service.cpp b/um/libservice/utils/uninstall_service.cpp
index 395bb51..395bb51 100644
--- a/utils/libservice/utils/uninstall_service.cpp
+++ b/um/libservice/utils/uninstall_service.cpp
diff --git a/utils/libsimple/CMakeLists.txt b/um/libsimple/CMakeLists.txt
index ff61bd7..ff61bd7 100644
--- a/utils/libsimple/CMakeLists.txt
+++ b/um/libsimple/CMakeLists.txt
diff --git a/utils/libsimple/README.md b/um/libsimple/README.md
index 1d9896a..ac00d63 100644
--- a/utils/libsimple/README.md
+++ b/um/libsimple/README.md
@@ -3,7 +3,7 @@ simple driver utilities
[simple] driver usage examples.
-[simple]: ../../src/simple
+[simple]: ../../km/src/simple
Usage
-----
diff --git a/utils/libsimple/include/libsimple/all.hpp b/um/libsimple/include/libsimple/all.hpp
index 474b802..474b802 100644
--- a/utils/libsimple/include/libsimple/all.hpp
+++ b/um/libsimple/include/libsimple/all.hpp
diff --git a/utils/libsimple/include/libsimple/device.hpp b/um/libsimple/include/libsimple/device.hpp
index 3318818..3318818 100644
--- a/utils/libsimple/include/libsimple/device.hpp
+++ b/um/libsimple/include/libsimple/device.hpp
diff --git a/utils/libsimple/src/device.cpp b/um/libsimple/src/device.cpp
index 57e6963..57e6963 100644
--- a/utils/libsimple/src/device.cpp
+++ b/um/libsimple/src/device.cpp
diff --git a/utils/libsimple/utils/CMakeLists.txt b/um/libsimple/utils/CMakeLists.txt
index 8824e3e..8824e3e 100644
--- a/utils/libsimple/utils/CMakeLists.txt
+++ b/um/libsimple/utils/CMakeLists.txt
diff --git a/utils/libsimple/utils/exchange_ints.cpp b/um/libsimple/utils/exchange_ints.cpp
index 2935b2f..2935b2f 100644
--- a/utils/libsimple/utils/exchange_ints.cpp
+++ b/um/libsimple/utils/exchange_ints.cpp