tst: winfsp-tests: HookCreateDirectoryW, HookMoveFileExW, HookFindFirstFileW

This commit is contained in:
Bill Zissimopoulos 2016-10-26 12:37:36 -07:00
parent e07ef0712e
commit b19621233a
3 changed files with 58 additions and 6 deletions

View File

@ -177,9 +177,12 @@ void create_dotest(ULONG Flags, PWSTR Prefix)
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1\\\\", StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1\\\\",
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs)); Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
if (0 == OptMountPoint && 0 == OptShareName)
{
Success = CreateDirectory(FilePath, 0); Success = CreateDirectory(FilePath, 0);
ASSERT(!Success); ASSERT(!Success);
ASSERT(ERROR_INVALID_NAME == GetLastError()); ASSERT(ERROR_INVALID_NAME == GetLastError());
}
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1\\", StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\dir1\\",
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs)); Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));

View File

@ -181,6 +181,17 @@ BOOL HookCloseHandle(
return ResilientCloseHandle(hObject); return ResilientCloseHandle(hObject);
} }
BOOL HookCreateDirectoryW(
LPCWSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes)
{
WCHAR FileNameBuf[FILENAMEBUF_SIZE];
PrepareFileName(lpPathName, FileNameBuf);
return CreateDirectoryW(FileNameBuf, lpSecurityAttributes);
}
BOOL HookDeleteFileW( BOOL HookDeleteFileW(
LPCWSTR lpFileName) LPCWSTR lpFileName)
{ {
@ -189,9 +200,9 @@ BOOL HookDeleteFileW(
PrepareFileName(lpFileName, FileNameBuf); PrepareFileName(lpFileName, FileNameBuf);
if (!OptResilient) if (!OptResilient)
return DeleteFileW(lpFileName); return DeleteFileW(FileNameBuf);
else else
return ResilientDeleteFileW(lpFileName); return ResilientDeleteFileW(FileNameBuf);
} }
BOOL HookRemoveDirectoryW( BOOL HookRemoveDirectoryW(
@ -201,5 +212,30 @@ BOOL HookRemoveDirectoryW(
PrepareFileName(lpPathName, FileNameBuf); PrepareFileName(lpPathName, FileNameBuf);
return RemoveDirectoryW(lpPathName); return RemoveDirectoryW(FileNameBuf);
}
BOOL HookMoveFileExW(
LPCWSTR lpExistingFileName,
LPCWSTR lpNewFileName,
DWORD dwFlags)
{
WCHAR OldFileNameBuf[FILENAMEBUF_SIZE];
WCHAR NewFileNameBuf[FILENAMEBUF_SIZE];
PrepareFileName(lpExistingFileName, OldFileNameBuf);
PrepareFileName(lpNewFileName, NewFileNameBuf);
return MoveFileExW(OldFileNameBuf, NewFileNameBuf, dwFlags);
}
HANDLE HookFindFirstFileW(
LPCWSTR lpFileName,
LPWIN32_FIND_DATAW lpFindFileData)
{
WCHAR FileNameBuf[FILENAMEBUF_SIZE];
PrepareFileName(lpFileName, FileNameBuf);
return FindFirstFileW(FileNameBuf, lpFindFileData);
} }

View File

@ -31,8 +31,11 @@
#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 CreateDirectoryW HookCreateDirectoryW
#define DeleteFileW HookDeleteFileW #define DeleteFileW HookDeleteFileW
#define RemoveDirectoryW HookRemoveDirectoryW #define RemoveDirectoryW HookRemoveDirectoryW
#define MoveFileExW HookMoveFileExW
#define FindFirstFileW HookFindFirstFileW
#endif #endif
HANDLE HookCreateFileW( HANDLE HookCreateFileW(
LPCWSTR lpFileName, LPCWSTR lpFileName,
@ -44,10 +47,20 @@ HANDLE HookCreateFileW(
HANDLE hTemplateFile); HANDLE hTemplateFile);
BOOL HookCloseHandle( BOOL HookCloseHandle(
HANDLE hObject); HANDLE hObject);
BOOL HookCreateDirectoryW(
LPCWSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes);
BOOL HookDeleteFileW( BOOL HookDeleteFileW(
LPCWSTR lpFileName); LPCWSTR lpFileName);
BOOL HookRemoveDirectoryW( BOOL HookRemoveDirectoryW(
LPCWSTR lpPathName); LPCWSTR lpPathName);
BOOL HookMoveFileExW(
LPCWSTR lpExistingFileName,
LPCWSTR lpNewFileName,
DWORD dwFlags);
HANDLE HookFindFirstFileW(
LPCWSTR lpFileName,
LPWIN32_FIND_DATAW lpFindFileData);
HANDLE ResilientCreateFileW( HANDLE ResilientCreateFileW(
LPCWSTR lpFileName, LPCWSTR lpFileName,