This commit is contained in:
Bill Zissimopoulos 2015-11-21 11:54:58 -08:00
parent 93be122c91
commit d6d98384f2
5 changed files with 58 additions and 34 deletions

View File

@ -96,22 +96,22 @@
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
@ -139,6 +139,7 @@
<ClCompile Include="..\..\src\sys\write.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\inc\fsctl.h" />
<ClInclude Include="..\..\src\sys\driver.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@ -1,81 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<Filter Include="Source">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<Filter Include="Include">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\sys\cleanup.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\close.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\create.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\debug.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\devctl.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\dirctl.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\driver.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\ea.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\fastio.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\fileinfo.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\flush.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\fsctl.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\lockctl.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\read.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\resource.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\security.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\shutdown.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\volinfo.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sys\write.c">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\sys\driver.h">
<Filter>Source Files</Filter>
<Filter>Source</Filter>
</ClInclude>
<ClInclude Include="..\..\inc\fsctl.h">
<Filter>Include</Filter>
</ClInclude>
</ItemGroup>
</Project>

25
inc/fsctl.h Normal file
View File

@ -0,0 +1,25 @@
/**
* @file sys/fsctl.h
*
* @copyright 2015 Bill Zissimopoulos
*/
#ifndef WINFSP_FSCTL_H_INCLUDED
#define WINFSP_FSCTL_H_INCLUDED
#include <devioctl.h>
#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

View File

@ -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);

View File

@ -8,10 +8,9 @@
#define WINFSP_SYS_DRIVER_H_INCLUDED
#include <ntifs.h>
#include <fsctl.h>
#define DRIVER_NAME "WinFsp"
#define DISK_DEVICE_NAME "WinFsp.Disk"
#define NET_DEVICE_NAME "WinFsp.Net"
/* DEBUGLOG */
#if DBG