mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-11-03 20:48:08 -06:00 
			
		
		
		
	FSP_API
This commit is contained in:
		@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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>
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user