mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-14 15:52:47 -05:00
sys: FspFileNodeOpen: refine main file vs stream sharing violations
This commit is contained in:
@ -486,6 +486,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0:foo",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
@ -505,6 +515,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0:foo",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
@ -524,6 +544,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0:foo",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
ASSERT(ERROR_SHARING_VIOLATION == GetLastError());
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
ASSERT(ERROR_SHARING_VIOLATION == GetLastError());
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
@ -543,6 +573,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0:foo",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
ASSERT(ERROR_SHARING_VIOLATION == GetLastError());
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
ASSERT(ERROR_SHARING_VIOLATION == GetLastError());
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
@ -564,6 +604,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
@ -583,6 +633,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
@ -602,6 +662,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
@ -621,6 +691,16 @@ static void stream_create_share_dotest(ULONG Flags, PWSTR Prefix)
|
||||
StringCbPrintfW(FilePath, sizeof FilePath, L"%s%s\\file0",
|
||||
Prefix ? L"" : L"\\\\?\\GLOBALROOT", Prefix ? Prefix : memfs_volumename(memfs));
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_READ_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
FILE_WRITE_DATA, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE != Handle2);
|
||||
CloseHandle(Handle2);
|
||||
|
||||
Handle2 = CreateFileW(FilePath,
|
||||
DELETE, 0, 0, OPEN_EXISTING, 0, 0);
|
||||
ASSERT(INVALID_HANDLE_VALUE == Handle2);
|
||||
|
Reference in New Issue
Block a user