added missing driver_installer.h and other small MSVC changes
diff --git a/driver-install_2008.vcproj b/driver-install_2008.vcproj
index 4e9b1b4..b471b52 100644
--- a/driver-install_2008.vcproj
+++ b/driver-install_2008.vcproj
@@ -271,11 +271,11 @@
 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
 			<File
-				RelativePath=".\libusb\os\driver-installer.h"
+				RelativePath=".\libusb\os\driver_install.h"
 				>
 			</File>
 			<File
-				RelativePath=".\libusb\os\driver_install.h"
+				RelativePath=".\libusb\os\driver_installer.h"
 				>
 			</File>
 			<File
diff --git a/driver-installer_2008.vcproj b/driver-installer_2008.vcproj
index d9d34e1..af71042 100644
--- a/driver-installer_2008.vcproj
+++ b/driver-installer_2008.vcproj
@@ -339,7 +339,7 @@
 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
 			>
 			<File
-				RelativePath=".\libusb\os\driver-installer.h"
+				RelativePath=".\libusb\os\driver_installer.h"
 				>
 			</File>
 		</Filter>
diff --git a/driver-resources_2008.vcproj b/driver-resources_2008.vcproj
index 5e6f977..4b358d3 100644
--- a/driver-resources_2008.vcproj
+++ b/driver-resources_2008.vcproj
@@ -55,6 +55,7 @@
 			/>
 			<Tool
 				Name="VCResourceCompilerTool"
+				AdditionalIncludeDirectories="E:\WinDDK\7600.16385.0"
 				ShowProgress="true"
 			/>
 			<Tool
@@ -118,6 +119,7 @@
 			/>
 			<Tool
 				Name="VCResourceCompilerTool"
+				AdditionalIncludeDirectories="E:\WinDDK\7600.16385.0"
 				ShowProgress="true"
 			/>
 			<Tool
@@ -182,6 +184,7 @@
 			/>
 			<Tool
 				Name="VCResourceCompilerTool"
+				AdditionalIncludeDirectories="E:\WinDDK\7600.16385.0"
 				ShowProgress="true"
 			/>
 			<Tool
@@ -248,6 +251,7 @@
 			/>
 			<Tool
 				Name="VCResourceCompilerTool"
+				AdditionalIncludeDirectories="E:\WinDDK\7600.16385.0"
 				ShowProgress="true"
 			/>
 			<Tool
diff --git a/libusb/os/driver_install.c b/libusb/os/driver_install.c
index dbbfcd5..2118689 100644
--- a/libusb/os/driver_install.c
+++ b/libusb/os/driver_install.c
@@ -11,7 +11,7 @@
 #include "libusbi.h"
 #include "windows_usb.h"
 #include "driver_install.h"
-#include "driver-installer.h"
+#include "driver_installer.h"
 
 #define INF_NAME "libusb-device.inf"
 
@@ -91,7 +91,9 @@
 								{"X86_DLL1", "x86", "WdfCoInstaller01009.dll"},
 								{"X86_DLL2", "x86", "winusbcoinstaller2.dll"} };
 const int nb_resources = sizeof(resource)/sizeof(resource[0]);
+// TODO: remove if not needed
 extern char* sanitize_path(const char* path);
+extern char *windows_error_str(uint32_t retval);
 
 HANDLE pipe = INVALID_HANDLE_VALUE;
 char* req_device_id;
@@ -133,7 +135,7 @@
 struct driver_info* list_driverless(void)
 {
 	unsigned i, j;
-	DWORD size, reg_type, install_state;
+	DWORD size, reg_type;
 	CONFIGRET r;
 	HDEVINFO dev_info;
 	SP_DEVINFO_DATA dev_info_data;
@@ -228,7 +230,7 @@
 		cur = drv_info;
 
 		// sanitized path should NOT be used as device id
-		drv_info->device_id = strdup(path);
+		drv_info->device_id = _strdup(path);
 
 		safe_strcpy(drv_info->desc, sizeof(drv_info->desc), desc);
 
diff --git a/libusb/os/driver_installer.c b/libusb/os/driver_installer.c
index 5b66b48..c2d1720 100644
--- a/libusb/os/driver_installer.c
+++ b/libusb/os/driver_installer.c
@@ -13,7 +13,7 @@
 #include <fcntl.h>
 #include <io.h>
 #include <stdarg.h>
-#include "driver-installer.h"
+#include "driver_installer.h"
 
 /*
  * API macros - from libusb-win32 1.x
diff --git a/libusb/os/driver_installer.h b/libusb/os/driver_installer.h
new file mode 100644
index 0000000..5eb95fa
--- /dev/null
+++ b/libusb/os/driver_installer.h
@@ -0,0 +1,6 @@
+#pragma once
+
+enum installer_code {
+	IC_PRINT_MESSAGE,
+	IC_GET_DEVICE_ID,
+};
\ No newline at end of file
diff --git a/libusb_2008.sln b/libusb_2008.sln
index 7465f74..2fbe8b1 100644
--- a/libusb_2008.sln
+++ b/libusb_2008.sln
@@ -7,6 +7,7 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lsusb", "examples\lsusb_2008.vcproj", "{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}"
 	ProjectSection(ProjectDependencies) = postProject
 		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9} = {9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83} = {BA852F82-4329-4CBE-82AA-9947FB48AD83}
 		{349EE8F9-7D25-4909-AAF5-FF3FADE72187} = {349EE8F9-7D25-4909-AAF5-FF3FADE72187}
 	EndProjectSection
 EndProject
@@ -22,6 +23,9 @@
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "driver-resources", "driver-resources_2008.vcproj", "{BA852F82-4329-4CBE-82AA-9947FB48AD83}"
+	ProjectSection(ProjectDependencies) = postProject
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20} = {9B1C561E-F95B-4849-A7AA-A4350E227C20}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "driver-installer", "driver-installer_2008.vcproj", "{9B1C561E-F95B-4849-A7AA-A4350E227C20}"
 EndProject
@@ -33,56 +37,56 @@
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|Win32.ActiveCfg = Release|x64
-		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|Win32.Build.0 = Release|x64
-		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|x64.ActiveCfg = Release|x64
-		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|x64.Build.0 = Release|x64
-		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Release|Win32.ActiveCfg = Release|x64
-		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Release|Win32.Build.0 = Release|x64
+		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|Win32.ActiveCfg = Debug|Win32
+		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|Win32.Build.0 = Debug|Win32
+		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|x64.ActiveCfg = Debug|x64
+		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Debug|x64.Build.0 = Debug|x64
+		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Release|Win32.ActiveCfg = Release|Win32
+		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Release|Win32.Build.0 = Release|Win32
 		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Release|x64.ActiveCfg = Release|x64
 		{349EE8F9-7D25-4909-AAF5-FF3FADE72187}.Release|x64.Build.0 = Release|x64
-		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Debug|Win32.ActiveCfg = Release|x64
-		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Debug|x64.ActiveCfg = Release|x64
-		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Release|Win32.ActiveCfg = Release|x64
+		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Debug|Win32.ActiveCfg = Debug|Win32
+		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Debug|x64.ActiveCfg = Debug|x64
+		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Release|Win32.ActiveCfg = Release|Win32
 		{349EE8FA-7D25-4909-AAF5-FF3FADE72187}.Release|x64.ActiveCfg = Release|x64
-		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|Win32.ActiveCfg = Release|x64
-		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|Win32.Build.0 = Release|x64
-		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|x64.ActiveCfg = Release|x64
-		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|x64.Build.0 = Release|x64
-		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Release|Win32.ActiveCfg = Release|x64
-		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Release|Win32.Build.0 = Release|x64
+		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|Win32.ActiveCfg = Debug|Win32
+		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|Win32.Build.0 = Debug|Win32
+		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|x64.ActiveCfg = Debug|x64
+		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Debug|x64.Build.0 = Debug|x64
+		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Release|Win32.ActiveCfg = Release|Win32
+		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Release|Win32.Build.0 = Release|Win32
 		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Release|x64.ActiveCfg = Release|x64
 		{F4938DB0-3DE7-4737-9C5A-EAD1BE819F87}.Release|x64.Build.0 = Release|x64
-		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|Win32.ActiveCfg = Release|x64
-		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|Win32.Build.0 = Release|x64
-		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|x64.ActiveCfg = Release|x64
-		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|x64.Build.0 = Release|x64
-		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Release|Win32.ActiveCfg = Release|x64
-		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Release|Win32.Build.0 = Release|x64
+		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|Win32.Build.0 = Debug|Win32
+		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|x64.ActiveCfg = Debug|x64
+		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Debug|x64.Build.0 = Debug|x64
+		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Release|Win32.ActiveCfg = Release|Win32
+		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Release|Win32.Build.0 = Release|Win32
 		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Release|x64.ActiveCfg = Release|x64
 		{3F3138D0-7AB7-4268-9BF3-1A3EA5503A11}.Release|x64.Build.0 = Release|x64
-		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|Win32.ActiveCfg = Release|x64
-		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|Win32.Build.0 = Release|x64
-		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|x64.ActiveCfg = Release|x64
-		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|x64.Build.0 = Release|x64
-		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Release|Win32.ActiveCfg = Release|x64
-		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Release|Win32.Build.0 = Release|x64
+		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|Win32.Build.0 = Debug|Win32
+		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|x64.ActiveCfg = Debug|x64
+		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Debug|x64.Build.0 = Debug|x64
+		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Release|Win32.ActiveCfg = Release|Win32
+		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Release|Win32.Build.0 = Release|Win32
 		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Release|x64.ActiveCfg = Release|x64
 		{9AA0E745-1A0A-4700-8ECB-6A6DE9DBF8B9}.Release|x64.Build.0 = Release|x64
-		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|Win32.ActiveCfg = Release|x64
-		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|Win32.Build.0 = Release|x64
-		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|x64.ActiveCfg = Release|x64
-		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|x64.Build.0 = Release|x64
-		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Release|Win32.ActiveCfg = Release|x64
-		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Release|Win32.Build.0 = Release|x64
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|Win32.Build.0 = Debug|Win32
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|x64.ActiveCfg = Debug|x64
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Debug|x64.Build.0 = Debug|x64
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Release|Win32.ActiveCfg = Release|Win32
+		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Release|Win32.Build.0 = Release|Win32
 		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Release|x64.ActiveCfg = Release|x64
 		{BA852F82-4329-4CBE-82AA-9947FB48AD83}.Release|x64.Build.0 = Release|x64
-		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|Win32.ActiveCfg = Release|x64
-		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|Win32.Build.0 = Release|x64
-		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|x64.ActiveCfg = Release|x64
-		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|x64.Build.0 = Release|x64
-		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Release|Win32.ActiveCfg = Release|x64
-		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Release|Win32.Build.0 = Release|x64
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|Win32.ActiveCfg = Debug|Win32
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|Win32.Build.0 = Debug|Win32
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|x64.ActiveCfg = Debug|x64
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Debug|x64.Build.0 = Debug|x64
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Release|Win32.ActiveCfg = Release|Win32
+		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Release|Win32.Build.0 = Release|Win32
 		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Release|x64.ActiveCfg = Release|x64
 		{9B1C561E-F95B-4849-A7AA-A4350E227C20}.Release|x64.Build.0 = Release|x64
 	EndGlobalSection
diff --git a/msvc/driver_resources.rc b/msvc/driver_resources.rc
index 492f1d0..bb4ed33 100644
--- a/msvc/driver_resources.rc
+++ b/msvc/driver_resources.rc
@@ -25,11 +25,11 @@
 //
 // DLL
 //
-
-AMD64_DLL1              DLL                     "E:\\WinDDK\\7600.16385.0\\redist\\wdf\\amd64\\WdfCoInstaller01009.dll"
-AMD64_DLL2              DLL                     "E:\\WinDDK\\7600.16385.0\\redist\\winusb\\amd64\\winusbcoinstaller2.dll"
-X86_DLL1                DLL                     "E:\\WinDDK\\7600.16385.0\\redist\\wdf\\x86\\WdfCoInstaller01009.dll"
-X86_DLL2                DLL                     "E:\\WinDDK\\7600.16385.0\\redist\\winusb\\x86\\winusbcoinstaller2.dll"
+// Make sure you set the path to your DDK as an include directory for the files below
+AMD64_DLL1              DLL                     "redist\\wdf\\amd64\\WdfCoInstaller01009.dll"
+AMD64_DLL2              DLL                     "redist\\winusb\\amd64\\winusbcoinstaller2.dll"
+X86_DLL1                DLL                     "redist\\wdf\\x86\\WdfCoInstaller01009.dll"
+X86_DLL2                DLL                     "redist\\winusb\\x86\\winusbcoinstaller2.dll"
 #endif    // English (U.S.) resources
 /////////////////////////////////////////////////////////////////////////////