diff --git a/tst/winfsp-tests/hooks.c b/tst/winfsp-tests/hooks.c index d5d4408d..094f0378 100644 --- a/tst/winfsp-tests/hooks.c +++ b/tst/winfsp-tests/hooks.c @@ -154,6 +154,21 @@ BOOL HookCloseHandle( hObject); } +BOOL HookSetFileAttributesW( + LPCWSTR lpFileName, + DWORD dwFileAttributes) +{ + WCHAR FileNameBuf[FILENAMEBUF_SIZE]; + BOOL Success; + + PrepareFileName(lpFileName, FileNameBuf); + + MaybeAdjustTraversePrivilege(FALSE); + Success = SetFileAttributesW(FileNameBuf, dwFileAttributes); + MaybeAdjustTraversePrivilege(TRUE); + return Success; +} + BOOL HookCreateDirectoryW( LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes) @@ -230,3 +245,20 @@ HANDLE HookFindFirstFileW( MaybeAdjustTraversePrivilege(TRUE); return Handle; } + +HANDLE HookFindFirstStreamW( + LPCWSTR lpFileName, + STREAM_INFO_LEVELS InfoLevel, + LPVOID lpFindStreamData, + DWORD dwFlags) +{ + WCHAR FileNameBuf[FILENAMEBUF_SIZE]; + HANDLE Handle; + + PrepareFileName(lpFileName, FileNameBuf); + + MaybeAdjustTraversePrivilege(FALSE); + Handle = FindFirstStreamW(FileNameBuf, InfoLevel, lpFindStreamData, dwFlags); + MaybeAdjustTraversePrivilege(TRUE); + return Handle; +} diff --git a/tst/winfsp-tests/winfsp-tests.h b/tst/winfsp-tests/winfsp-tests.h index 3717fd40..cda2cebb 100644 --- a/tst/winfsp-tests/winfsp-tests.h +++ b/tst/winfsp-tests/winfsp-tests.h @@ -31,11 +31,13 @@ #if !defined(WINFSP_TESTS_NO_HOOKS) #define CreateFileW HookCreateFileW #define CloseHandle HookCloseHandle +#define SetFileAttributesW HookSetFileAttributesW #define CreateDirectoryW HookCreateDirectoryW #define DeleteFileW HookDeleteFileW #define RemoveDirectoryW HookRemoveDirectoryW #define MoveFileExW HookMoveFileExW #define FindFirstFileW HookFindFirstFileW +#define FindFirstStreamW HookFindFirstStreamW #endif HANDLE HookCreateFileW( LPCWSTR lpFileName, @@ -47,6 +49,9 @@ HANDLE HookCreateFileW( HANDLE hTemplateFile); BOOL HookCloseHandle( HANDLE hObject); +BOOL HookSetFileAttributesW( + LPCWSTR lpFileName, + DWORD dwFileAttributes); BOOL HookCreateDirectoryW( LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes); @@ -61,6 +66,11 @@ BOOL HookMoveFileExW( HANDLE HookFindFirstFileW( LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData); +HANDLE HookFindFirstStreamW( + LPCWSTR lpFileName, + STREAM_INFO_LEVELS InfoLevel, + LPVOID lpFindStreamData, + DWORD dwFlags); HANDLE ResilientCreateFileW( LPCWSTR lpFileName,