diff --git a/README.html b/README.html
index 7f6da88..a08e01f 100644
--- a/README.html
+++ b/README.html
@@ -39,10 +39,21 @@
- Windows Vista x64, Windows Server 2008 R2 x64, or Windows 7 x64. (Windows XP and previous versions are not supported. 32-bit builds have not been tested.)
- Windows Driver Development Kit (WinDDK 6000 or later)
+ - Microsoft Visual Studio 2010
- ms-nfs41-client source code:
> git clone git://citi.umich.edu/projects/ms-nfs41-client.git
-Instructions
+Building the userspace daemon
+- WinDDK does not include the ldap library, so we build the nfs client daemon with Microsoft Visual Studio 2010.
+
+ - Open Windows Explorer and navigate to ms-nfs41-client\build.vc10.
+ - Make a copy of env.props.example, and rename it to env.props.
+
- Open env.props in a text editor, and verify that the value in
<WDKPATH>C:\WinDDK\7600.16385.0</WDKPATH> points to your WinDDK installation.
+ - Open the solution file ms-nfs41-client.sln in Visual Studio 2010.
+ - Select the x64 platform and desired configuration (Debug or Release).
+ - Right-click on the daemon project and select Build. The project and its dependencies should build without errors. Binaries can be found under build.vc10\x64\(Configuration)\.
+
+Building the driver
- From the Start menu, open the WinDDK 'x64 Checked Build Environment' for the target platform.
- Change directory to ms-nfs41-client and type
build. The project should build without errors.
diff --git a/build.vc9/.gitignore b/build.vc9/.gitignore
deleted file mode 100644
index 9efd899..0000000
--- a/build.vc9/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# exclude all build files by default
-*
-
-# allow visual studio project and solution files
-!*.vcproj
-!*.sln
diff --git a/build.vc9/daemon.vcproj b/build.vc9/daemon.vcproj
deleted file mode 100644
index 974c7c0..0000000
--- a/build.vc9/daemon.vcproj
+++ /dev/null
@@ -1,536 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.vc9/dll.vcproj b/build.vc9/dll.vcproj
deleted file mode 100644
index 188b2b8..0000000
--- a/build.vc9/dll.vcproj
+++ /dev/null
@@ -1,386 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.vc9/env.vsprops.example b/build.vc9/env.vsprops.example
deleted file mode 100644
index f7db359..0000000
--- a/build.vc9/env.vsprops.example
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
diff --git a/build.vc9/libtirpc.vcproj b/build.vc9/libtirpc.vcproj
deleted file mode 100644
index fd6ec09..0000000
--- a/build.vc9/libtirpc.vcproj
+++ /dev/null
@@ -1,793 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.vc9/mount.vcproj b/build.vc9/mount.vcproj
deleted file mode 100644
index 7ebdecc..0000000
--- a/build.vc9/mount.vcproj
+++ /dev/null
@@ -1,362 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.vc9/ms-nfs41-client.sln b/build.vc9/ms-nfs41-client.sln
deleted file mode 100644
index 9c6de20..0000000
--- a/build.vc9/ms-nfs41-client.sln
+++ /dev/null
@@ -1,79 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "daemon", "daemon.vcproj", "{D0D81A98-2946-4A16-A4A1-800387C3F3D1}"
- ProjectSection(ProjectDependencies) = postProject
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1} = {2D918A9B-DE52-470A-93D5-78EA2C8113A1}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "dll.vcproj", "{372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nfs41_driver", "nfs41_driver.vcproj", "{B64D3074-519F-476A-A3AA-DAD6554CBB68}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mount", "mount.vcproj", "{5AEA3497-6852-471B-A252-ADA60B22A342}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtirpc", "libtirpc.vcproj", "{2D918A9B-DE52-470A-93D5-78EA2C8113A1}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nfs_install", "nfs_install.vcproj", "{A453DC17-BE6B-4271-A020-66E054AB5908}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Debug|Win32.ActiveCfg = Debug|Win32
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Debug|Win32.Build.0 = Debug|Win32
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Debug|x64.ActiveCfg = Debug|x64
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Debug|x64.Build.0 = Debug|x64
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Release|Win32.ActiveCfg = Release|Win32
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Release|Win32.Build.0 = Release|Win32
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Release|x64.ActiveCfg = Release|x64
- {D0D81A98-2946-4A16-A4A1-800387C3F3D1}.Release|x64.Build.0 = Release|x64
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Debug|Win32.ActiveCfg = Debug|Win32
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Debug|Win32.Build.0 = Debug|Win32
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Debug|x64.ActiveCfg = Debug|x64
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Debug|x64.Build.0 = Debug|x64
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Release|Win32.ActiveCfg = Release|Win32
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Release|Win32.Build.0 = Release|Win32
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Release|x64.ActiveCfg = Release|x64
- {372D9D02-CDC5-43AE-BB0A-FB57CEFC639C}.Release|x64.Build.0 = Release|x64
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Debug|Win32.ActiveCfg = Debug|Win32
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Debug|Win32.Build.0 = Debug|Win32
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Debug|x64.ActiveCfg = Debug|x64
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Debug|x64.Build.0 = Debug|x64
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Release|Win32.ActiveCfg = Release|Win32
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Release|Win32.Build.0 = Release|Win32
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Release|x64.ActiveCfg = Release|x64
- {B64D3074-519F-476A-A3AA-DAD6554CBB68}.Release|x64.Build.0 = Release|x64
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Debug|Win32.ActiveCfg = Debug|Win32
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Debug|Win32.Build.0 = Debug|Win32
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Debug|x64.ActiveCfg = Debug|x64
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Debug|x64.Build.0 = Debug|x64
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Release|Win32.ActiveCfg = Release|Win32
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Release|Win32.Build.0 = Release|Win32
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Release|x64.ActiveCfg = Release|x64
- {5AEA3497-6852-471B-A252-ADA60B22A342}.Release|x64.Build.0 = Release|x64
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Debug|Win32.ActiveCfg = Debug|Win32
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Debug|Win32.Build.0 = Debug|Win32
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Debug|x64.ActiveCfg = Debug|x64
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Debug|x64.Build.0 = Debug|x64
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Release|Win32.ActiveCfg = Release|Win32
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Release|Win32.Build.0 = Release|Win32
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Release|x64.ActiveCfg = Release|x64
- {2D918A9B-DE52-470A-93D5-78EA2C8113A1}.Release|x64.Build.0 = Release|x64
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Debug|Win32.ActiveCfg = Debug|Win32
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Debug|Win32.Build.0 = Debug|Win32
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Debug|x64.ActiveCfg = Debug|x64
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Debug|x64.Build.0 = Debug|x64
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Release|Win32.ActiveCfg = Release|Win32
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Release|Win32.Build.0 = Release|Win32
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Release|x64.ActiveCfg = Release|x64
- {A453DC17-BE6B-4271-A020-66E054AB5908}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/build.vc9/nfs41_driver.vcproj b/build.vc9/nfs41_driver.vcproj
deleted file mode 100644
index ae89fdb..0000000
--- a/build.vc9/nfs41_driver.vcproj
+++ /dev/null
@@ -1,167 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.vc9/nfs_install.vcproj b/build.vc9/nfs_install.vcproj
deleted file mode 100644
index b73165c..0000000
--- a/build.vc9/nfs_install.vcproj
+++ /dev/null
@@ -1,354 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-