diff --git a/inc/winfsp/winfsp.h b/inc/winfsp/winfsp.h index 0daf7667..7c0951be 100644 --- a/inc/winfsp/winfsp.h +++ b/inc/winfsp/winfsp.h @@ -981,14 +981,12 @@ FSP_API VOID FspFileSystemSendResponse(FSP_FILE_SYSTEM *FileSystem, * The current operation context. */ FSP_API FSP_FILE_SYSTEM_OPERATION_CONTEXT *FspFileSystemGetOperationContext(VOID); -FSP_API PWSTR FspFileSystemMountPointF(FSP_FILE_SYSTEM *FileSystem); static inline PWSTR FspFileSystemMountPoint(FSP_FILE_SYSTEM *FileSystem) { return FileSystem->MountPoint; } -FSP_API NTSTATUS FspFileSystemEnterOperationF(FSP_FILE_SYSTEM *FileSystem, - FSP_FSCTL_TRANSACT_REQ *Request, FSP_FSCTL_TRANSACT_RSP *Response); +FSP_API PWSTR FspFileSystemMountPointF(FSP_FILE_SYSTEM *FileSystem); static inline NTSTATUS FspFileSystemEnterOperation(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, FSP_FSCTL_TRANSACT_RSP *Response) @@ -998,7 +996,7 @@ NTSTATUS FspFileSystemEnterOperation(FSP_FILE_SYSTEM *FileSystem, return FileSystem->EnterOperation(FileSystem, Request, Response); } -FSP_API NTSTATUS FspFileSystemLeaveOperationF(FSP_FILE_SYSTEM *FileSystem, +FSP_API NTSTATUS FspFileSystemEnterOperationF(FSP_FILE_SYSTEM *FileSystem, FSP_FSCTL_TRANSACT_REQ *Request, FSP_FSCTL_TRANSACT_RSP *Response); static inline NTSTATUS FspFileSystemLeaveOperation(FSP_FILE_SYSTEM *FileSystem, @@ -1009,9 +1007,8 @@ NTSTATUS FspFileSystemLeaveOperation(FSP_FILE_SYSTEM *FileSystem, return FileSystem->LeaveOperation(FileSystem, Request, Response); } -FSP_API VOID FspFileSystemSetOperationGuardF(FSP_FILE_SYSTEM *FileSystem, - FSP_FILE_SYSTEM_OPERATION_GUARD *EnterOperation, - FSP_FILE_SYSTEM_OPERATION_GUARD *LeaveOperation); +FSP_API NTSTATUS FspFileSystemLeaveOperationF(FSP_FILE_SYSTEM *FileSystem, + FSP_FSCTL_TRANSACT_REQ *Request, FSP_FSCTL_TRANSACT_RSP *Response); static inline VOID FspFileSystemSetOperationGuard(FSP_FILE_SYSTEM *FileSystem, FSP_FILE_SYSTEM_OPERATION_GUARD *EnterOperation, @@ -1020,6 +1017,9 @@ VOID FspFileSystemSetOperationGuard(FSP_FILE_SYSTEM *FileSystem, FileSystem->EnterOperation = EnterOperation; FileSystem->LeaveOperation = LeaveOperation; } +FSP_API VOID FspFileSystemSetOperationGuardF(FSP_FILE_SYSTEM *FileSystem, + FSP_FILE_SYSTEM_OPERATION_GUARD *EnterOperation, + FSP_FILE_SYSTEM_OPERATION_GUARD *LeaveOperation); /** * Set file system locking strategy. * @@ -1030,17 +1030,14 @@ VOID FspFileSystemSetOperationGuard(FSP_FILE_SYSTEM *FileSystem, * @see * FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY */ -FSP_API VOID FspFileSystemSetOperationGuardStrategyF(FSP_FILE_SYSTEM *FileSystem, - FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY GuardStrategy); static inline VOID FspFileSystemSetOperationGuardStrategy(FSP_FILE_SYSTEM *FileSystem, FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY GuardStrategy) { FileSystem->OpGuardStrategy = GuardStrategy; } -FSP_API VOID FspFileSystemSetOperationF(FSP_FILE_SYSTEM *FileSystem, - ULONG Index, - FSP_FILE_SYSTEM_OPERATION *Operation); +FSP_API VOID FspFileSystemSetOperationGuardStrategyF(FSP_FILE_SYSTEM *FileSystem, + FSP_FILE_SYSTEM_OPERATION_GUARD_STRATEGY GuardStrategy); static inline VOID FspFileSystemSetOperation(FSP_FILE_SYSTEM *FileSystem, ULONG Index, @@ -1048,8 +1045,9 @@ VOID FspFileSystemSetOperation(FSP_FILE_SYSTEM *FileSystem, { FileSystem->Operations[Index] = Operation; } -FSP_API VOID FspFileSystemGetDispatcherResultF(FSP_FILE_SYSTEM *FileSystem, - NTSTATUS *PDispatcherResult); +FSP_API VOID FspFileSystemSetOperationF(FSP_FILE_SYSTEM *FileSystem, + ULONG Index, + FSP_FILE_SYSTEM_OPERATION *Operation); static inline VOID FspFileSystemGetDispatcherResult(FSP_FILE_SYSTEM *FileSystem, NTSTATUS *PDispatcherResult) @@ -1058,8 +1056,8 @@ VOID FspFileSystemGetDispatcherResult(FSP_FILE_SYSTEM *FileSystem, *PDispatcherResult = FileSystem->DispatcherResult; MemoryBarrier(); } -FSP_API VOID FspFileSystemSetDispatcherResultF(FSP_FILE_SYSTEM *FileSystem, - NTSTATUS DispatcherResult); +FSP_API VOID FspFileSystemGetDispatcherResultF(FSP_FILE_SYSTEM *FileSystem, + NTSTATUS *PDispatcherResult); static inline VOID FspFileSystemSetDispatcherResult(FSP_FILE_SYSTEM *FileSystem, NTSTATUS DispatcherResult) @@ -1068,15 +1066,16 @@ VOID FspFileSystemSetDispatcherResult(FSP_FILE_SYSTEM *FileSystem, return; InterlockedCompareExchange(&FileSystem->DispatcherResult, DispatcherResult, 0); } -FSP_API VOID FspFileSystemSetDebugLogF(FSP_FILE_SYSTEM *FileSystem, - UINT32 DebugLog); +FSP_API VOID FspFileSystemSetDispatcherResultF(FSP_FILE_SYSTEM *FileSystem, + NTSTATUS DispatcherResult); static inline VOID FspFileSystemSetDebugLog(FSP_FILE_SYSTEM *FileSystem, UINT32 DebugLog) { FileSystem->DebugLog = DebugLog; } -FSP_API BOOLEAN FspFileSystemIsOperationCaseSensitiveF(VOID); +FSP_API VOID FspFileSystemSetDebugLogF(FSP_FILE_SYSTEM *FileSystem, + UINT32 DebugLog); static inline BOOLEAN FspFileSystemIsOperationCaseSensitive(VOID) { @@ -1085,7 +1084,12 @@ BOOLEAN FspFileSystemIsOperationCaseSensitive(VOID) FspFsctlTransactCreateKind == Request->Kind && Request->Req.Create.CaseSensitive || FspFsctlTransactQueryDirectoryKind == Request->Kind && Request->Req.QueryDirectory.CaseSensitive; } -FSP_API UINT32 FspFileSystemOperationProcessIdF(VOID); +FSP_API BOOLEAN FspFileSystemIsOperationCaseSensitiveF(VOID); +/** + * Gets the originating process ID. + * + * Valid only during Create, Open and Rename requests when the target exists. + */ static inline UINT32 FspFileSystemOperationProcessId(VOID) { @@ -1102,6 +1106,7 @@ UINT32 FspFileSystemOperationProcessId(VOID) return 0; } } +FSP_API UINT32 FspFileSystemOperationProcessIdF(VOID); /* * Operations