mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-29 19:18:39 -05:00 
			
		
		
		
	FSP_API
This commit is contained in:
		| @@ -100,7 +100,7 @@ | |||||||
|       </PrecompiledHeader> |       </PrecompiledHeader> | ||||||
|       <WarningLevel>Level3</WarningLevel> |       <WarningLevel>Level3</WarningLevel> | ||||||
|       <Optimization>Disabled</Optimization> |       <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> |       <SDLCheck>true</SDLCheck> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
| @@ -115,7 +115,7 @@ | |||||||
|       </PrecompiledHeader> |       </PrecompiledHeader> | ||||||
|       <WarningLevel>Level3</WarningLevel> |       <WarningLevel>Level3</WarningLevel> | ||||||
|       <Optimization>Disabled</Optimization> |       <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> |       <SDLCheck>true</SDLCheck> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
| @@ -132,7 +132,7 @@ | |||||||
|       <Optimization>MaxSpeed</Optimization> |       <Optimization>MaxSpeed</Optimization> | ||||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> |       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> |       <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> |       <SDLCheck>true</SDLCheck> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
| @@ -151,7 +151,7 @@ | |||||||
|       <Optimization>MaxSpeed</Optimization> |       <Optimization>MaxSpeed</Optimization> | ||||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> |       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> |       <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> |       <SDLCheck>true</SDLCheck> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src</AdditionalIncludeDirectories> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|   | |||||||
| @@ -97,6 +97,7 @@ | |||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||||
|  |       <PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
| @@ -105,6 +106,7 @@ | |||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||||
|  |       <PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _X86_=1;i386=1;STD_CALL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
| @@ -113,6 +115,7 @@ | |||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||||
|  |       <PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _WIN64;_AMD64_;AMD64;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
| @@ -121,6 +124,7 @@ | |||||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> | ||||||
|     <ClCompile> |     <ClCompile> | ||||||
|       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |       <AdditionalIncludeDirectories>..\..\inc;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||||
|  |       <PreprocessorDefinitions>WINFSP_SYS_INTERNAL; _WIN64;_AMD64_;AMD64;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>wdmsec.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|   | |||||||
| @@ -92,13 +92,13 @@ static inline const FSP_TRANSACT_RSP *FspFsctlTransactConsumeResponse( | |||||||
|     return NextResponse <= ResponseBufEnd ? NextResponse : 0; |     return NextResponse <= ResponseBufEnd ? NextResponse : 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| #if !defined(WINFSP_SYS_DRIVER_H_INTERNAL) | #if !defined(WINFSP_SYS_INTERNAL) | ||||||
| NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDescriptor, | FSP_API NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDescriptor, | ||||||
|     PHANDLE *PVolumeHandle); |     PHANDLE *PVolumeHandle); | ||||||
| NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath, | FSP_API NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath, | ||||||
|     PHANDLE *PVolumeHandle); |     PHANDLE *PVolumeHandle); | ||||||
| NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle); | FSP_API NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle); | ||||||
| NTSTATUS FspFsctlTransact(HANDLE VolumeHandle, | FSP_API NTSTATUS FspFsctlTransact(HANDLE VolumeHandle, | ||||||
|     FSP_TRANSACT_RSP *ResponseBuf, SIZE_T ResponseBufSize, |     FSP_TRANSACT_RSP *ResponseBuf, SIZE_T ResponseBufSize, | ||||||
|     FSP_TRANSACT_REQ *RequestBuf, SIZE_T *PRequestBufSize); |     FSP_TRANSACT_REQ *RequestBuf, SIZE_T *PRequestBufSize); | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -13,6 +13,12 @@ | |||||||
| #include <winternl.h> | #include <winternl.h> | ||||||
| #include <ntstatus.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); | NTSTATUS FspNtStatusFromWin32(DWORD Error); | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ static inline VOID GlobalDevicePath(PWCHAR DevicePathBuf, SIZE_T DevicePathSize, | |||||||
|         L'\\' == DevicePath[0] ? GLOBALROOT "%S" : GLOBALROOT "\\Device\\%S", DevicePath); |         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) |     PHANDLE *PVolumeHandle) | ||||||
| { | { | ||||||
|     NTSTATUS Result = STATUS_SUCCESS; |     NTSTATUS Result = STATUS_SUCCESS; | ||||||
| @@ -46,7 +46,7 @@ NTSTATUS FspFsctlCreateVolume(PWSTR DevicePath, PSECURITY_DESCRIPTOR SecurityDes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     DeviceHandle = CreateFileW(DevicePathBuf, |     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) |     if (INVALID_HANDLE_VALUE == DeviceHandle) | ||||||
|     { |     { | ||||||
|         Result = FspNtStatusFromWin32(GetLastError()); |         Result = FspNtStatusFromWin32(GetLastError()); | ||||||
| @@ -70,7 +70,7 @@ exit: | |||||||
|     return Result; |     return Result; | ||||||
| } | } | ||||||
|  |  | ||||||
| NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath, | FSP_API NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath, | ||||||
|     PHANDLE *PVolumeHandle) |     PHANDLE *PVolumeHandle) | ||||||
| { | { | ||||||
|     NTSTATUS Result = STATUS_SUCCESS; |     NTSTATUS Result = STATUS_SUCCESS; | ||||||
| @@ -82,7 +82,7 @@ NTSTATUS FspFsctlOpenVolume(PWSTR VolumePath, | |||||||
|     GlobalDevicePath(DevicePathBuf, sizeof DevicePathBuf, VolumePath); |     GlobalDevicePath(DevicePathBuf, sizeof DevicePathBuf, VolumePath); | ||||||
|  |  | ||||||
|     VolumeHandle = CreateFileW(DevicePathBuf, |     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) |     if (INVALID_HANDLE_VALUE == VolumeHandle) | ||||||
|     { |     { | ||||||
|         Result = FspNtStatusFromWin32(GetLastError()); |         Result = FspNtStatusFromWin32(GetLastError()); | ||||||
| @@ -95,7 +95,7 @@ exit: | |||||||
|     return Result; |     return Result; | ||||||
| } | } | ||||||
|  |  | ||||||
| NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle) | FSP_API NTSTATUS FspFsctlDeleteVolume(HANDLE VolumeHandle) | ||||||
| { | { | ||||||
|     NTSTATUS Result = STATUS_SUCCESS; |     NTSTATUS Result = STATUS_SUCCESS; | ||||||
|     DWORD Bytes; |     DWORD Bytes; | ||||||
| @@ -112,7 +112,7 @@ exit: | |||||||
|     return Result; |     return Result; | ||||||
| } | } | ||||||
|  |  | ||||||
| NTSTATUS FspFsctlTransact(HANDLE VolumeHandle, | FSP_API NTSTATUS FspFsctlTransact(HANDLE VolumeHandle, | ||||||
|     FSP_TRANSACT_RSP *ResponseBuf, SIZE_T ResponseBufSize, |     FSP_TRANSACT_RSP *ResponseBuf, SIZE_T ResponseBufSize, | ||||||
|     FSP_TRANSACT_REQ *RequestBuf, SIZE_T *PRequestBufSize) |     FSP_TRANSACT_REQ *RequestBuf, SIZE_T *PRequestBufSize) | ||||||
| { | { | ||||||
|   | |||||||
| @@ -10,8 +10,6 @@ | |||||||
| #include <ntifs.h> | #include <ntifs.h> | ||||||
| #include <ntstrsafe.h> | #include <ntstrsafe.h> | ||||||
| #include <wdmsec.h> | #include <wdmsec.h> | ||||||
|  |  | ||||||
| #define WINFSP_SYS_DRIVER_H_INTERNAL |  | ||||||
| #include <winfsp/fsctl.h> | #include <winfsp/fsctl.h> | ||||||
|  |  | ||||||
| #define DRIVER_NAME                     "WinFsp" | #define DRIVER_NAME                     "WinFsp" | ||||||
|   | |||||||
| @@ -140,7 +140,7 @@ static NTSTATUS FspFsvrtTransact( | |||||||
|         if (0 == NextResponse) |         if (0 == NextResponse) | ||||||
|             break; |             break; | ||||||
|  |  | ||||||
|         ProcessIrp = FspIoqEndProcessingIrp(&FsvrtDeviceExtension->Ioq, Response->Hint); |         ProcessIrp = FspIoqEndProcessingIrp(&FsvrtDeviceExtension->Ioq, (UINT_PTR)Response->Hint); | ||||||
|         if (0 == ProcessIrp) |         if (0 == ProcessIrp) | ||||||
|             /* either IRP was canceled or a bogus Hint was provided */ |             /* either IRP was canceled or a bogus Hint was provided */ | ||||||
|             continue; |             continue; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user