tst: winfsp-tests: WIP

This commit is contained in:
Bill Zissimopoulos 2016-10-26 13:40:30 -07:00
parent dfe45e1be5
commit 5e71992153
2 changed files with 42 additions and 0 deletions

View File

@ -154,6 +154,21 @@ BOOL HookCloseHandle(
hObject); 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( BOOL HookCreateDirectoryW(
LPCWSTR lpPathName, LPCWSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes) LPSECURITY_ATTRIBUTES lpSecurityAttributes)
@ -230,3 +245,20 @@ HANDLE HookFindFirstFileW(
MaybeAdjustTraversePrivilege(TRUE); MaybeAdjustTraversePrivilege(TRUE);
return Handle; 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;
}

View File

@ -31,11 +31,13 @@
#if !defined(WINFSP_TESTS_NO_HOOKS) #if !defined(WINFSP_TESTS_NO_HOOKS)
#define CreateFileW HookCreateFileW #define CreateFileW HookCreateFileW
#define CloseHandle HookCloseHandle #define CloseHandle HookCloseHandle
#define SetFileAttributesW HookSetFileAttributesW
#define CreateDirectoryW HookCreateDirectoryW #define CreateDirectoryW HookCreateDirectoryW
#define DeleteFileW HookDeleteFileW #define DeleteFileW HookDeleteFileW
#define RemoveDirectoryW HookRemoveDirectoryW #define RemoveDirectoryW HookRemoveDirectoryW
#define MoveFileExW HookMoveFileExW #define MoveFileExW HookMoveFileExW
#define FindFirstFileW HookFindFirstFileW #define FindFirstFileW HookFindFirstFileW
#define FindFirstStreamW HookFindFirstStreamW
#endif #endif
HANDLE HookCreateFileW( HANDLE HookCreateFileW(
LPCWSTR lpFileName, LPCWSTR lpFileName,
@ -47,6 +49,9 @@ HANDLE HookCreateFileW(
HANDLE hTemplateFile); HANDLE hTemplateFile);
BOOL HookCloseHandle( BOOL HookCloseHandle(
HANDLE hObject); HANDLE hObject);
BOOL HookSetFileAttributesW(
LPCWSTR lpFileName,
DWORD dwFileAttributes);
BOOL HookCreateDirectoryW( BOOL HookCreateDirectoryW(
LPCWSTR lpPathName, LPCWSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes); LPSECURITY_ATTRIBUTES lpSecurityAttributes);
@ -61,6 +66,11 @@ BOOL HookMoveFileExW(
HANDLE HookFindFirstFileW( HANDLE HookFindFirstFileW(
LPCWSTR lpFileName, LPCWSTR lpFileName,
LPWIN32_FIND_DATAW lpFindFileData); LPWIN32_FIND_DATAW lpFindFileData);
HANDLE HookFindFirstStreamW(
LPCWSTR lpFileName,
STREAM_INFO_LEVELS InfoLevel,
LPVOID lpFindStreamData,
DWORD dwFlags);
HANDLE ResilientCreateFileW( HANDLE ResilientCreateFileW(
LPCWSTR lpFileName, LPCWSTR lpFileName,