mirror of
https://github.com/winfsp/winfsp.git
synced 2025-06-07 20:42:09 -05:00
sys: reparse point testing
This commit is contained in:
parent
46ce4b1a6c
commit
5cd0dfb1b9
@ -89,13 +89,18 @@ static NTSTATUS FspFsvolFileSystemControlReparsePoint(
|
|||||||
{
|
{
|
||||||
PAGED_CODE();
|
PAGED_CODE();
|
||||||
|
|
||||||
|
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(FsvolDeviceObject);
|
||||||
|
PFILE_OBJECT FileObject = IrpSp->FileObject;
|
||||||
|
|
||||||
|
/* do we support reparse points? */
|
||||||
|
if (!FsvolDeviceExtension->VolumeParams.ReparsePoints)
|
||||||
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
|
||||||
/* is this a valid FileObject? */
|
/* is this a valid FileObject? */
|
||||||
if (!FspFileNodeIsValid(IrpSp->FileObject->FsContext))
|
if (!FspFileNodeIsValid(FileObject->FsContext))
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
return STATUS_INVALID_DEVICE_REQUEST;
|
||||||
|
|
||||||
NTSTATUS Result;
|
NTSTATUS Result;
|
||||||
FSP_FSVOL_DEVICE_EXTENSION *FsvolDeviceExtension = FspFsvolDeviceExtension(FsvolDeviceObject);
|
|
||||||
PFILE_OBJECT FileObject = IrpSp->FileObject;
|
|
||||||
FSP_FILE_NODE *FileNode = FileObject->FsContext;
|
FSP_FILE_NODE *FileNode = FileObject->FsContext;
|
||||||
FSP_FILE_DESC *FileDesc = FileObject->FsContext2;
|
FSP_FILE_DESC *FileDesc = FileObject->FsContext2;
|
||||||
ULONG FsControlCode = IrpSp->Parameters.FileSystemControl.FsControlCode;
|
ULONG FsControlCode = IrpSp->Parameters.FileSystemControl.FsControlCode;
|
||||||
@ -110,10 +115,6 @@ static NTSTATUS FspFsvolFileSystemControlReparsePoint(
|
|||||||
|
|
||||||
ASSERT(FileNode == FileDesc->FileNode);
|
ASSERT(FileNode == FileDesc->FileNode);
|
||||||
|
|
||||||
/* do we support reparse points? */
|
|
||||||
if (!FsvolDeviceExtension->VolumeParams.ReparsePoints)
|
|
||||||
return STATUS_INVALID_DEVICE_REQUEST;
|
|
||||||
|
|
||||||
if (IsWrite)
|
if (IsWrite)
|
||||||
{
|
{
|
||||||
if (0 == InputBuffer || 0 == InputBufferLength ||
|
if (0 == InputBuffer || 0 == InputBufferLength ||
|
||||||
@ -286,6 +287,10 @@ NTSTATUS FspFsvolFileSystemControlComplete(
|
|||||||
{
|
{
|
||||||
FSP_ENTER_IOC(PAGED_CODE());
|
FSP_ENTER_IOC(PAGED_CODE());
|
||||||
|
|
||||||
|
/* exit now if we do not have a FileObject (FSP_FSCTL_WORK*) */
|
||||||
|
if (0 == IrpSp->FileObject)
|
||||||
|
FSP_RETURN();
|
||||||
|
|
||||||
if (!NT_SUCCESS(Response->IoStatus.Status))
|
if (!NT_SUCCESS(Response->IoStatus.Status))
|
||||||
{
|
{
|
||||||
Irp->IoStatus.Information = 0;
|
Irp->IoStatus.Information = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user