mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-22 16:33:02 -05:00
dll, winfsp-tests: ensure that all tests pass as IRP_MJ_CREATE is no longer the first IRP seen during tests (it is not IRP_MJ_QUERY_VOLUME_INFORMATION)
This commit is contained in:
parent
f7ce154278
commit
82d88e2af8
@ -313,6 +313,8 @@ static NTSTATUS FspFileSystemOpCreate_FileCreate(FSP_FILE_SYSTEM *FileSystem,
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Create(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
Request->Req.Create.FileAttributes, ObjectDescriptor, Request->Req.Create.AllocationSize,
|
||||
@ -337,6 +339,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOpen(FSP_FILE_SYSTEM *FileSystem,
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Open(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
&FileNode, &FileInfo);
|
||||
@ -367,6 +371,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOpenIf(FSP_FILE_SYSTEM *FileSystem,
|
||||
|
||||
if (!Create)
|
||||
{
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Open(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
&FileNode, &FileInfo);
|
||||
@ -389,6 +395,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOpenIf(FSP_FILE_SYSTEM *FileSystem,
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Create(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
Request->Req.Create.FileAttributes, ObjectDescriptor, Request->Req.Create.AllocationSize,
|
||||
@ -415,6 +423,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOverwrite(FSP_FILE_SYSTEM *FileSystem,
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Open(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
&FileNode, &FileInfo);
|
||||
@ -445,6 +455,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOverwriteIf(FSP_FILE_SYSTEM *FileSyste
|
||||
|
||||
if (!Create)
|
||||
{
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Open(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
&FileNode, &FileInfo);
|
||||
@ -467,6 +479,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOverwriteIf(FSP_FILE_SYSTEM *FileSyste
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Create(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
Request->Req.Create.FileAttributes, ObjectDescriptor, Request->Req.Create.AllocationSize,
|
||||
@ -496,6 +510,8 @@ static NTSTATUS FspFileSystemOpCreate_FileOpenTargetDirectory(FSP_FILE_SYSTEM *F
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
FspPathSuffix((PWSTR)Request->Buffer, &Parent, &Suffix);
|
||||
FileNode = 0;
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Open(FileSystem, Request,
|
||||
(PWSTR)Request->Buffer, Request->Req.Create.CaseSensitive, Request->Req.Create.CreateOptions,
|
||||
&FileNode, &FileInfo);
|
||||
@ -550,6 +566,7 @@ FSP_API NTSTATUS FspFileSystemOpOverwrite(FSP_FILE_SYSTEM *FileSystem,
|
||||
NTSTATUS Result;
|
||||
FSP_FSCTL_FILE_INFO FileInfo;
|
||||
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->Overwrite(FileSystem, Request,
|
||||
(PVOID)Request->Req.Overwrite.UserContext,
|
||||
Request->Req.Overwrite.FileAttributes,
|
||||
|
@ -15,6 +15,7 @@ FSP_API NTSTATUS FspFileSystemOpQueryInformation(FSP_FILE_SYSTEM *FileSystem,
|
||||
if (0 == FileSystem->Interface->GetFileInfo)
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, STATUS_INVALID_DEVICE_REQUEST);
|
||||
|
||||
memset(&FileInfo, 0, sizeof FileInfo);
|
||||
Result = FileSystem->Interface->GetFileInfo(FileSystem, Request,
|
||||
(PVOID)Request->Req.Close.UserContext, &FileInfo);
|
||||
if (!NT_SUCCESS(Result))
|
||||
|
@ -15,6 +15,7 @@ FSP_API NTSTATUS FspFileSystemOpQueryVolumeInformation(FSP_FILE_SYSTEM *FileSyst
|
||||
if (0 == FileSystem->Interface->GetVolumeInfo)
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, STATUS_INVALID_DEVICE_REQUEST);
|
||||
|
||||
memset(&VolumeInfo, 0, sizeof VolumeInfo);
|
||||
Result = FileSystem->Interface->GetVolumeInfo(FileSystem, Request, &VolumeInfo);
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
@ -46,7 +46,7 @@ void *memfs_start_ex(ULONG Flags, ULONG FileInfoTimeout)
|
||||
|
||||
void *memfs_start(ULONG Flags)
|
||||
{
|
||||
return memfs_start_ex(Flags, 0);
|
||||
return memfs_start_ex(Flags, 1000);
|
||||
}
|
||||
|
||||
void memfs_stop(void *data)
|
||||
|
@ -195,23 +195,27 @@ void mount_volume_transact_dotest(PWSTR DeviceName, PWSTR Prefix)
|
||||
ASSERT(0 == Request->Version);
|
||||
ASSERT(FSP_FSCTL_TRANSACT_REQ_SIZEMAX >= Request->Size);
|
||||
ASSERT(0 != Request->Hint);
|
||||
ASSERT(FspFsctlTransactCreateKind == Request->Kind);
|
||||
ASSERT(FILE_CREATE == ((Request->Req.Create.CreateOptions >> 24) & 0xff));
|
||||
ASSERT(0 == Request->Req.Create.FileAttributes);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Offset);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Size);
|
||||
ASSERT(0 == Request->Req.Create.AllocationSize);
|
||||
ASSERT(FILE_GENERIC_READ == Request->Req.Create.DesiredAccess);
|
||||
ASSERT((FILE_SHARE_READ | FILE_SHARE_WRITE) == Request->Req.Create.ShareAccess);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Offset);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Size);
|
||||
ASSERT(Request->Req.Create.UserMode);
|
||||
ASSERT(Request->Req.Create.HasTraversePrivilege);
|
||||
ASSERT(!Request->Req.Create.OpenTargetDirectory);
|
||||
ASSERT(!Request->Req.Create.CaseSensitive);
|
||||
ASSERT(0 == Request->FileName.Offset);
|
||||
ASSERT((wcslen((PVOID)Request->Buffer) + 1) * sizeof(WCHAR) == Request->FileName.Size);
|
||||
ASSERT(0 == wcscmp((PVOID)Request->Buffer, L"\\file0"));
|
||||
ASSERT(FspFsctlTransactCreateKind == Request->Kind ||
|
||||
FspFsctlTransactQueryVolumeInformationKind == Request->Kind);
|
||||
if (FspFsctlTransactCreateKind == Request->Kind)
|
||||
{
|
||||
ASSERT(FILE_CREATE == ((Request->Req.Create.CreateOptions >> 24) & 0xff));
|
||||
ASSERT(0 == Request->Req.Create.FileAttributes);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Offset);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Size);
|
||||
ASSERT(0 == Request->Req.Create.AllocationSize);
|
||||
ASSERT(FILE_GENERIC_READ == Request->Req.Create.DesiredAccess);
|
||||
ASSERT((FILE_SHARE_READ | FILE_SHARE_WRITE) == Request->Req.Create.ShareAccess);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Offset);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Size);
|
||||
ASSERT(Request->Req.Create.UserMode);
|
||||
ASSERT(Request->Req.Create.HasTraversePrivilege);
|
||||
ASSERT(!Request->Req.Create.OpenTargetDirectory);
|
||||
ASSERT(!Request->Req.Create.CaseSensitive);
|
||||
ASSERT(0 == Request->FileName.Offset);
|
||||
ASSERT((wcslen((PVOID)Request->Buffer) + 1) * sizeof(WCHAR) == Request->FileName.Size);
|
||||
ASSERT(0 == wcscmp((PVOID)Request->Buffer, L"\\file0"));
|
||||
}
|
||||
|
||||
ASSERT(FspFsctlTransactCanProduceResponse(Response, ResponseBufEnd));
|
||||
|
||||
@ -241,7 +245,7 @@ void mount_volume_transact_dotest(PWSTR DeviceName, PWSTR Prefix)
|
||||
GetExitCodeThread(Thread, &ExitCode);
|
||||
CloseHandle(Thread);
|
||||
|
||||
ASSERT(ERROR_ACCESS_DENIED == ExitCode);
|
||||
ASSERT(ERROR_ACCESS_DENIED == ExitCode || ERROR_OPERATION_ABORTED == ExitCode);
|
||||
}
|
||||
|
||||
void mount_volume_transact_test(void)
|
||||
|
@ -201,20 +201,24 @@ void timeout_transact_dotest(PWSTR DeviceName, PWSTR Prefix)
|
||||
ASSERT(0 == Request->Version);
|
||||
ASSERT(FSP_FSCTL_TRANSACT_REQ_SIZEMAX >= Request->Size);
|
||||
ASSERT(0 != Request->Hint);
|
||||
ASSERT(FspFsctlTransactCreateKind == Request->Kind);
|
||||
ASSERT(FILE_CREATE == ((Request->Req.Create.CreateOptions >> 24) & 0xff));
|
||||
ASSERT(0 == Request->Req.Create.FileAttributes);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Offset);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Size);
|
||||
ASSERT(0 == Request->Req.Create.AllocationSize);
|
||||
ASSERT(FILE_GENERIC_READ == Request->Req.Create.DesiredAccess);
|
||||
ASSERT((FILE_SHARE_READ | FILE_SHARE_WRITE) == Request->Req.Create.ShareAccess);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Offset);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Size);
|
||||
ASSERT(Request->Req.Create.UserMode);
|
||||
ASSERT(Request->Req.Create.HasTraversePrivilege);
|
||||
ASSERT(!Request->Req.Create.OpenTargetDirectory);
|
||||
ASSERT(!Request->Req.Create.CaseSensitive);
|
||||
ASSERT(FspFsctlTransactCreateKind == Request->Kind ||
|
||||
FspFsctlTransactQueryVolumeInformationKind == Request->Kind);
|
||||
if (FspFsctlTransactCreateKind == Request->Kind)
|
||||
{
|
||||
ASSERT(FILE_CREATE == ((Request->Req.Create.CreateOptions >> 24) & 0xff));
|
||||
ASSERT(0 == Request->Req.Create.FileAttributes);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Offset);
|
||||
ASSERT(0 == Request->Req.Create.SecurityDescriptor.Size);
|
||||
ASSERT(0 == Request->Req.Create.AllocationSize);
|
||||
ASSERT(FILE_GENERIC_READ == Request->Req.Create.DesiredAccess);
|
||||
ASSERT((FILE_SHARE_READ | FILE_SHARE_WRITE) == Request->Req.Create.ShareAccess);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Offset);
|
||||
ASSERT(0 == Request->Req.Create.Ea.Size);
|
||||
ASSERT(Request->Req.Create.UserMode);
|
||||
ASSERT(Request->Req.Create.HasTraversePrivilege);
|
||||
ASSERT(!Request->Req.Create.OpenTargetDirectory);
|
||||
ASSERT(!Request->Req.Create.CaseSensitive);
|
||||
}
|
||||
|
||||
ResponseBufSize = 0;
|
||||
RequestBufSize = sizeof RequestBuf;
|
||||
|
Loading…
x
Reference in New Issue
Block a user