diff --git a/build/VStudio/winfsp.vcxproj b/build/VStudio/winfsp.vcxproj
index 80158255..7de2a52d 100644
--- a/build/VStudio/winfsp.vcxproj
+++ b/build/VStudio/winfsp.vcxproj
@@ -96,22 +96,22 @@
- ..\..\src;%(AdditionalIncludeDirectories)
+ ..\..\inc;..\..\src;%(AdditionalIncludeDirectories)
- ..\..\src;%(AdditionalIncludeDirectories)
+ ..\..\inc;..\..\src;%(AdditionalIncludeDirectories)
- ..\..\src;%(AdditionalIncludeDirectories)
+ ..\..\inc;..\..\src;%(AdditionalIncludeDirectories)
- ..\..\src;%(AdditionalIncludeDirectories)
+ ..\..\inc;..\..\src;%(AdditionalIncludeDirectories)
@@ -139,6 +139,7 @@
+
diff --git a/build/VStudio/winfsp.vcxproj.filters b/build/VStudio/winfsp.vcxproj.filters
index bb42f848..ad1f2ca1 100644
--- a/build/VStudio/winfsp.vcxproj.filters
+++ b/build/VStudio/winfsp.vcxproj.filters
@@ -1,81 +1,80 @@
-
+
{4FC737F1-C7A5-4376-A066-2A32D752A2FF}
cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
-
+
{93995380-89BD-4b04-88EB-625FBE52EBFB}
h;hpp;hxx;hm;inl;inc;xsd
-
- {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
- rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
- Source Files
+ Source
+
+
+ Include
\ No newline at end of file
diff --git a/inc/fsctl.h b/inc/fsctl.h
new file mode 100644
index 00000000..699ce8f7
--- /dev/null
+++ b/inc/fsctl.h
@@ -0,0 +1,25 @@
+/**
+ * @file sys/fsctl.h
+ *
+ * @copyright 2015 Bill Zissimopoulos
+ */
+
+#ifndef WINFSP_FSCTL_H_INCLUDED
+#define WINFSP_FSCTL_H_INCLUDED
+
+#include
+
+#define FSP_FSCTL_DISK_DEVICE_NAME "WinFsp.Disk"
+#define FSP_FSCTL_NET_DEVICE_NAME "WinFsp.Net"
+
+/* fsctl device codes */
+#define FSP_FSCTL_CREATE \
+ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0x800 + 'C', METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+#define FSP_FSCTL_DELETE \
+ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0x800 + 'D', METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+
+/* fsvrt device codes */
+#define FSP_FSCTL_TRANSACT \
+ CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0x800 + 'T', METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
+
+#endif
diff --git a/src/sys/driver.c b/src/sys/driver.c
index dc8f2471..afb1207d 100644
--- a/src/sys/driver.c
+++ b/src/sys/driver.c
@@ -23,13 +23,13 @@ DriverEntry(
/* create the file system control device objects */
UNICODE_STRING DeviceName;
- RtlInitUnicodeString(&DeviceName, L"\\Device\\" DISK_DEVICE_NAME);
+ RtlInitUnicodeString(&DeviceName, L"\\Device\\" FSP_FSCTL_DISK_DEVICE_NAME);
Result = IoCreateDevice(DriverObject,
sizeof(FSP_FSCTL_DEVICE_EXTENSION), &DeviceName, FILE_DEVICE_DISK_FILE_SYSTEM, 0, FALSE,
&FspFsctlDiskDeviceObject);
if (!NT_SUCCESS(Result))
FSP_RETURN();
- RtlInitUnicodeString(&DeviceName, L"\\Device\\" NET_DEVICE_NAME);
+ RtlInitUnicodeString(&DeviceName, L"\\Device\\" FSP_FSCTL_NET_DEVICE_NAME);
Result = IoCreateDevice(DriverObject,
sizeof(FSP_FSCTL_DEVICE_EXTENSION), &DeviceName, FILE_DEVICE_NETWORK_FILE_SYSTEM, 0, FALSE,
&FspFsctlNetDeviceObject);
diff --git a/src/sys/driver.h b/src/sys/driver.h
index e275b656..9c7eb740 100644
--- a/src/sys/driver.h
+++ b/src/sys/driver.h
@@ -8,10 +8,9 @@
#define WINFSP_SYS_DRIVER_H_INCLUDED
#include
+#include
#define DRIVER_NAME "WinFsp"
-#define DISK_DEVICE_NAME "WinFsp.Disk"
-#define NET_DEVICE_NAME "WinFsp.Net"
/* DEBUGLOG */
#if DBG