From d6d98384f2549f146a4f1b88f2b557d9847642ab Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Sat, 21 Nov 2015 11:54:58 -0800 Subject: [PATCH] fsctl.h --- build/VStudio/winfsp.vcxproj | 9 ++--- build/VStudio/winfsp.vcxproj.filters | 51 ++++++++++++++-------------- inc/fsctl.h | 25 ++++++++++++++ src/sys/driver.c | 4 +-- src/sys/driver.h | 3 +- 5 files changed, 58 insertions(+), 34 deletions(-) create mode 100644 inc/fsctl.h 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