mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-24 01:13:04 -05:00
dll: WIP
This commit is contained in:
parent
9d73f15b0f
commit
0da55d012c
@ -99,26 +99,35 @@ static NTSTATUS FspFileSystemOpCreate_FileOpenIf(FSP_FILE_SYSTEM *FileSystem,
|
||||
{
|
||||
if (STATUS_OBJECT_NAME_NOT_FOUND != Result)
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
Create = TRUE;
|
||||
}
|
||||
|
||||
if (!Create)
|
||||
{
|
||||
Result = FileSystem->Interface->FileOpen(FileSystem, Request, &FileNode);
|
||||
{
|
||||
if (STATUS_OBJECT_NAME_NOT_FOUND != Result)
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
Create = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (Create)
|
||||
{
|
||||
Result = FspAccessCheck(FileSystem, Request, FALSE,
|
||||
(Request->Req.Create.CreateOptions & FILE_DIRECTORY_FILE) ?
|
||||
FILE_ADD_SUBDIRECTORY : FILE_ADD_FILE,
|
||||
&GrantedAccess);
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
}
|
||||
|
||||
if (Create)
|
||||
{
|
||||
Result = FileSystem->Interface->FileCreate(FileSystem, Request, &FileNode);
|
||||
memset(&FileNode->ShareAccess, 0, sizeof FileNode->ShareAccess);
|
||||
}
|
||||
else
|
||||
Result = FileSystem->Interface->FileOpen(FileSystem, Request, &FileNode);
|
||||
if (!NT_SUCCESS(Result))
|
||||
return FspFileSystemSendResponseWithStatus(FileSystem, Request, Result);
|
||||
|
||||
memset(&FileNode->ShareAccess, 0, sizeof FileNode->ShareAccess);
|
||||
}
|
||||
|
||||
Result = FspShareCheck(FileSystem, GrantedAccess, Request->Req.Create.ShareAccess, FileNode);
|
||||
if (!NT_SUCCESS(Result))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user