This commit is contained in:
Bill Zissimopoulos 2015-11-26 00:39:10 -08:00
parent f6be0fd44e
commit 1421006581
7 changed files with 26 additions and 18 deletions

View File

@ -100,7 +100,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WINFSP_DLL_INTERNAL;WIN32;_DEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
</ClCompile>
@ -115,7 +115,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WINFSP_DLL_INTERNAL;_DEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
</ClCompile>
@ -132,7 +132,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WINFSP_DLL_INTERNAL;WIN32;NDEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
</ClCompile>
@ -151,7 +151,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WINFSP_DLL_INTERNAL;NDEBUG;_WINDOWS;_USRDLL;WINFSPDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories>
</ClCompile>

View File

@ -97,6 +97,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
@ -105,6 +106,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
@ -113,6 +115,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _WIN64;_AMD64_;AMD64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>
@ -121,6 +124,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _WIN64;_AMD64_;AMD64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies>

View File

@ -92,13 +92,13 @@ static inline const FSP_TRANSACT_RSP *FspFsctlTransactConsumeResponse(
return NextResponse <= ResponseBufEnd ? NextResponse : 0;
}
#if !defined(WINFSP_SYS_DRIVER_H_INTERNAL)
NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDescriptor,
#if !defined(WINFSP_SYS_INTERNAL)
FSP_API NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDescriptor,
PHANDLE *PVolumeHandle);
NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath,
FSP_API NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath,
PHANDLE *PVolumeHandle);
NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle);
NTSTATUS FspFsctlTransact(HANDLE VolumeHandle,
FSP_API NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle);
FSP_API NTSTATUS FspFsctlTransact(HANDLE VolumeHandle,
FSP_TRANSACT_RSP *ResponseBuf, SIZE_T ResponseBufSize,
FSP_TRANSACT_REQ *RequestBuf, SIZE_T *PRequestBufSize);
#endif

View File

@ -13,6 +13,12 @@
#include <winternl.h>
#include <ntstatus.h>
#if defined(WINFSP_DLL_INTERNAL)
#define FSP_API __declspec(dllexport)
#else
#define FSP_API __declspec(dllimport)
#endif
NTSTATUS FspNtStatusFromWin32(DWORD Error);
#endif

View File

@ -16,7 +16,7 @@ static inline VOID GlobalDevicePath(PWCHAR DevicePathBuf, SIZE_T DevicePathSize,
L'\\' == DevicePath[0] ? GLOBALROOT "%S" : GLOBALROOT "\\Device\\%S", DevicePath);
}
NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDescriptor,
FSP_API NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDescriptor,
PHANDLE *PVolumeHandle)
{
NTSTATUS Result = STATUS_SUCCESS;
@ -46,7 +46,7 @@ NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDes
}
DeviceHandle = CreateFileW(DevicePathBuf,
0, FILE_SHARE_WRITE | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
if (INVALID_HANDLE_VALUE == DeviceHandle)
{
Result = FspNtStatusFromWin32(GetLastError());
@ -70,7 +70,7 @@ exit:
return Result;
}
NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath,
FSP_API NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath,
PHANDLE *PVolumeHandle)
{
NTSTATUS Result = STATUS_SUCCESS;
@ -82,7 +82,7 @@ NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath,
GlobalDevicePath(DevicePathBuf, sizeof DevicePathBuf, VolumePath);
VolumeHandle = CreateFileW(DevicePathBuf,
0, FILE_SHARE_WRITE | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
0, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
if (INVALID_HANDLE_VALUE == VolumeHandle)
{
Result = FspNtStatusFromWin32(GetLastError());
@ -95,7 +95,7 @@ exit:
return Result;
}
NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle)
FSP_API NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle)
{
NTSTATUS Result = STATUS_SUCCESS;
DWORD Bytes;
@ -112,7 +112,7 @@ exit:
return Result;
}
NTSTATUS FspFsctlTransact(HANDLE VolumeHandle,
FSP_API NTSTATUS FspFsctlTransact(HANDLE VolumeHandle,
FSP_TRANSACT_RSP *ResponseBuf, SIZE_T ResponseBufSize,
FSP_TRANSACT_REQ *RequestBuf, SIZE_T *PRequestBufSize)
{

View File

@ -10,8 +10,6 @@
#include <ntifs.h>
#include <ntstrsafe.h>
#include <wdmsec.h>
#define WINFSP_SYS_DRIVER_H_INTERNAL
#include <winfsp/fsctl.h>
#define DRIVER_NAME "WinFsp"

View File

@ -140,7 +140,7 @@ static NTSTATUS FspFsvrtTransact(
if (0 == NextResponse)
break;
ProcessIrp = FspIoqEndProcessingIrp(&FsvrtDeviceExtension->Ioq, Response->Hint);
ProcessIrp = FspIoqEndProcessingIrp(&FsvrtDeviceExtension->Ioq, (UINT_PTR)Response->Hint);
if (0 == ProcessIrp)
/* either IRP was canceled or a bogus Hint was provided */
continue;