mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
sys: FSP_ENTER, FSP_LEAVE now do FsRtlEnterFileSystem, FsRtlExitFileSystem
This commit is contained in:
parent
280c41eef4
commit
9fe93bfb5d
@ -21,21 +21,27 @@
|
|||||||
|
|
||||||
/* enter/leave*/
|
/* enter/leave*/
|
||||||
#if DBG
|
#if DBG
|
||||||
#define FSP_DEBUGLOG(rfmt, r, fmt, ...) \
|
BOOLEAN HasDbgBreakPoint(const char *Function);
|
||||||
|
const char *NtStatusSym(NTSTATUS Status);
|
||||||
|
#define FSP_DEBUGLOG_(rfmt, r, fmt, ...)\
|
||||||
DbgPrint(AbnormalTermination() ? \
|
DbgPrint(AbnormalTermination() ? \
|
||||||
DRIVER_NAME "!" __FUNCTION__ "(" fmt ") = !AbnormalTermination\n" :\
|
DRIVER_NAME "!" __FUNCTION__ "(" fmt ") = !AbnormalTermination\n" :\
|
||||||
DRIVER_NAME "!" __FUNCTION__ "(" fmt ")" rfmt "\n",\
|
DRIVER_NAME "!" __FUNCTION__ "(" fmt ")" rfmt "\n",\
|
||||||
__VA_ARGS__, r)
|
__VA_ARGS__, r)
|
||||||
|
#define FSP_DEBUGBRK_() \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
if (HasDbgBreakPoint(__FUNCTION__))\
|
||||||
|
try { DbgBreakPoint(); } except(EXCEPTION_EXECUTE_HANDLER) {}\
|
||||||
|
} while (0,0)
|
||||||
#else
|
#else
|
||||||
#define FSP_DEBUGLOG(rfmt, r, fmt, ...) ((void)0)
|
#define FSP_DEBUGLOG_(rfmt, r, fmt, ...)((void)0)
|
||||||
|
#define FSP_DEBUGBRK_() ((void)0)
|
||||||
#endif
|
#endif
|
||||||
#if DBG
|
|
||||||
BOOLEAN HasDbgBreakPoint(const char *Function);
|
|
||||||
const char *NtStatusSym(NTSTATUS Status);
|
|
||||||
#define FSP_ENTER_(...) \
|
#define FSP_ENTER_(...) \
|
||||||
if (HasDbgBreakPoint(__FUNCTION__)) \
|
FSP_DEBUGBRK_(); \
|
||||||
try { DbgBreakPoint(); } except(EXCEPTION_EXECUTE_HANDLER) {}\
|
|
||||||
__VA_ARGS__; \
|
__VA_ARGS__; \
|
||||||
|
FsRtlEnterFileSystem(); \
|
||||||
try \
|
try \
|
||||||
{
|
{
|
||||||
#define FSP_LEAVE_(rfmt, r, fmt, ...) \
|
#define FSP_LEAVE_(rfmt, r, fmt, ...) \
|
||||||
@ -44,17 +50,9 @@ const char *NtStatusSym(NTSTATUS Status);
|
|||||||
} \
|
} \
|
||||||
finally \
|
finally \
|
||||||
{ \
|
{ \
|
||||||
FSP_DEBUGLOG(rfmt, r, fmt, __VA_ARGS__);\
|
FsRtlExitFileSystem(); \
|
||||||
|
FSP_DEBUGLOG_(rfmt, r, fmt, __VA_ARGS__);\
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
#define FSP_ENTER_(...) \
|
|
||||||
__VA_ARGS__; \
|
|
||||||
{
|
|
||||||
#define FSP_LEAVE_(rfmt, r, fmt, ...) \
|
|
||||||
goto fsp_leave_label; \
|
|
||||||
fsp_leave_label:; \
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#define FSP_ENTER(...) \
|
#define FSP_ENTER(...) \
|
||||||
NTSTATUS Result = STATUS_SUCCESS; FSP_ENTER_(__VA_ARGS__)
|
NTSTATUS Result = STATUS_SUCCESS; FSP_ENTER_(__VA_ARGS__)
|
||||||
#define FSP_LEAVE(fmt, ...) \
|
#define FSP_LEAVE(fmt, ...) \
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
|
set CONFIG=Debug
|
||||||
set DRIVER=winfsp-x64.sys
|
set DRIVER=winfsp-x64.sys
|
||||||
set TARGET_MACHINE=WIN8DBG
|
set TARGET_MACHINE=WIN8DBG
|
||||||
set TARGET_ACCOUNT=\Users\%USERNAME%\Downloads\winfsp\
|
set TARGET_ACCOUNT=\Users\%USERNAME%\Downloads\winfsp\
|
||||||
@ -8,6 +9,6 @@ set TARGET=\\%TARGET_MACHINE%%TARGET_ACCOUNT%
|
|||||||
echo on
|
echo on
|
||||||
cd %~dp0..
|
cd %~dp0..
|
||||||
mkdir %TARGET% 2>nul
|
mkdir %TARGET% 2>nul
|
||||||
copy build\VStudio\build\Debug\%DRIVER% %TARGET%
|
copy build\VStudio\build\%CONFIG%\%DRIVER% %TARGET%
|
||||||
echo sc create winfsp type=filesys binPath=%%~dp0%DRIVER% >%TARGET%sc-create.bat
|
echo sc create winfsp type=filesys binPath=%%~dp0%DRIVER% >%TARGET%sc-create.bat
|
||||||
echo sc delete winfsp >%TARGET%sc-delete.bat
|
echo sc delete winfsp >%TARGET%sc-delete.bat
|
||||||
|
Loading…
x
Reference in New Issue
Block a user