From 79bf65120374744418b39e265a0937d7c05981f1 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Wed, 26 Oct 2016 15:11:06 -0700 Subject: [PATCH] tst: winfsp-tests: add WINAPI for Hook* and Resilient* APIs --- tst/winfsp-tests/hooks.c | 24 ++++++++++++------------ tst/winfsp-tests/resilient.c | 11 ++++++----- tst/winfsp-tests/winfsp-tests.h | 32 ++++++++++++++++---------------- 3 files changed, 34 insertions(+), 33 deletions(-) diff --git a/tst/winfsp-tests/hooks.c b/tst/winfsp-tests/hooks.c index 1a5e2c7e..29c213d1 100644 --- a/tst/winfsp-tests/hooks.c +++ b/tst/winfsp-tests/hooks.c @@ -120,7 +120,7 @@ static VOID MaybeAdjustTraversePrivilege(BOOL Enable) } } -HANDLE HookCreateFileW( +HANDLE WINAPI HookCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, @@ -147,14 +147,14 @@ HANDLE HookCreateFileW( return Handle; } -BOOL HookCloseHandle( +BOOL WINAPI HookCloseHandle( HANDLE hObject) { return (OptResilient ? ResilientCloseHandle : CloseHandle)( hObject); } -BOOL HookSetFileAttributesW( +BOOL WINAPI HookSetFileAttributesW( LPCWSTR lpFileName, DWORD dwFileAttributes) { @@ -169,7 +169,7 @@ BOOL HookSetFileAttributesW( return Success; } -BOOL HookCreateDirectoryW( +BOOL WINAPI HookCreateDirectoryW( LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes) { @@ -184,7 +184,7 @@ BOOL HookCreateDirectoryW( return Success; } -BOOL HookDeleteFileW( +BOOL WINAPI HookDeleteFileW( LPCWSTR lpFileName) { WCHAR FileNameBuf[FILENAMEBUF_SIZE]; @@ -199,7 +199,7 @@ BOOL HookDeleteFileW( return Success; } -BOOL HookRemoveDirectoryW( +BOOL WINAPI HookRemoveDirectoryW( LPCWSTR lpPathName) { WCHAR FileNameBuf[FILENAMEBUF_SIZE]; @@ -214,7 +214,7 @@ BOOL HookRemoveDirectoryW( return Success; } -BOOL HookMoveFileExW( +BOOL WINAPI HookMoveFileExW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, DWORD dwFlags) @@ -232,7 +232,7 @@ BOOL HookMoveFileExW( return Success; } -HANDLE HookFindFirstFileW( +HANDLE WINAPI HookFindFirstFileW( LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData) { @@ -247,7 +247,7 @@ HANDLE HookFindFirstFileW( return Handle; } -HANDLE HookFindFirstStreamW( +HANDLE WINAPI HookFindFirstStreamW( LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, LPVOID lpFindStreamData, @@ -264,7 +264,7 @@ HANDLE HookFindFirstStreamW( return Handle; } -BOOL HookGetDiskFreeSpaceW( +BOOL WINAPI HookGetDiskFreeSpaceW( LPCWSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, @@ -287,7 +287,7 @@ BOOL HookGetDiskFreeSpaceW( return Success; } -BOOL HookGetVolumeInformationW( +BOOL WINAPI HookGetVolumeInformationW( LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, @@ -316,7 +316,7 @@ BOOL HookGetVolumeInformationW( return Success; } -BOOL HookSetVolumeLabelW( +BOOL WINAPI HookSetVolumeLabelW( LPCWSTR lpRootPathName, LPCWSTR lpVolumeName) { diff --git a/tst/winfsp-tests/resilient.c b/tst/winfsp-tests/resilient.c index 5ce45b71..0275e13c 100644 --- a/tst/winfsp-tests/resilient.c +++ b/tst/winfsp-tests/resilient.c @@ -22,7 +22,7 @@ static VOID WaitDeletePending(PCWSTR FileName); -HANDLE ResilientCreateFileW( +HANDLE WINAPI ResilientCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, @@ -56,7 +56,7 @@ HANDLE ResilientCreateFileW( return Handle; } -BOOL ResilientCloseHandle( +BOOL WINAPI ResilientCloseHandle( HANDLE hObject) { BOOL Success; @@ -90,7 +90,7 @@ BOOL ResilientCloseHandle( return Success; } -BOOL ResilientDeleteFileW( +BOOL WINAPI ResilientDeleteFileW( LPCWSTR lpFileName) { BOOL Success; @@ -116,7 +116,7 @@ BOOL ResilientDeleteFileW( return Success; } -BOOL ResilientRemoveDirectoryW( +BOOL WINAPI ResilientRemoveDirectoryW( LPCWSTR lpPathName) { BOOL Success; @@ -147,7 +147,8 @@ static VOID WaitDeletePending(PCWSTR FileName) for (ULONG MaxTries = DeleteMaxTries; 0 != MaxTries; MaxTries--) { HANDLE Handle = CreateFileW(FileName, - FILE_READ_ATTRIBUTES, 0, 0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0); + FILE_READ_ATTRIBUTES, 0, 0, OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, 0); if (INVALID_HANDLE_VALUE != Handle) /* should never happen! */ CloseHandle(Handle); diff --git a/tst/winfsp-tests/winfsp-tests.h b/tst/winfsp-tests/winfsp-tests.h index 824303f0..04b3619f 100644 --- a/tst/winfsp-tests/winfsp-tests.h +++ b/tst/winfsp-tests/winfsp-tests.h @@ -42,7 +42,7 @@ #define GetVolumeInformationW HookGetVolumeInformationW #define SetVolumeLabelW HookSetVolumeLabelW #endif -HANDLE HookCreateFileW( +HANDLE WINAPI HookCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, @@ -50,37 +50,37 @@ HANDLE HookCreateFileW( DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); -BOOL HookCloseHandle( +BOOL WINAPI HookCloseHandle( HANDLE hObject); -BOOL HookSetFileAttributesW( +BOOL WINAPI HookSetFileAttributesW( LPCWSTR lpFileName, DWORD dwFileAttributes); -BOOL HookCreateDirectoryW( +BOOL WINAPI HookCreateDirectoryW( LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes); -BOOL HookDeleteFileW( +BOOL WINAPI HookDeleteFileW( LPCWSTR lpFileName); -BOOL HookRemoveDirectoryW( +BOOL WINAPI HookRemoveDirectoryW( LPCWSTR lpPathName); -BOOL HookMoveFileExW( +BOOL WINAPI HookMoveFileExW( LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, DWORD dwFlags); -HANDLE HookFindFirstFileW( +HANDLE WINAPI HookFindFirstFileW( LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData); -HANDLE HookFindFirstStreamW( +HANDLE WINAPI HookFindFirstStreamW( LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, LPVOID lpFindStreamData, DWORD dwFlags); -BOOL HookGetDiskFreeSpaceW( +BOOL WINAPI HookGetDiskFreeSpaceW( LPCWSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters); -BOOL HookGetVolumeInformationW( +BOOL WINAPI HookGetVolumeInformationW( LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, @@ -89,11 +89,11 @@ BOOL HookGetVolumeInformationW( LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize); -BOOL HookSetVolumeLabelW( +BOOL WINAPI HookSetVolumeLabelW( LPCWSTR lpRootPathName, LPCWSTR lpVolumeName); -HANDLE ResilientCreateFileW( +HANDLE WINAPI ResilientCreateFileW( LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, @@ -101,11 +101,11 @@ HANDLE ResilientCreateFileW( DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); -BOOL ResilientCloseHandle( +BOOL WINAPI ResilientCloseHandle( HANDLE hObject); -BOOL ResilientDeleteFileW( +BOOL WINAPI ResilientDeleteFileW( LPCWSTR lpFileName); -BOOL ResilientRemoveDirectoryW( +BOOL WINAPI ResilientRemoveDirectoryW( LPCWSTR lpPathName); typedef struct