if (!FileObject)
{
DPRINT1("FIXME: CdfsDeviceControl called without FileObject!\n");
- Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;
return STATUS_INVALID_DEVICE_REQUEST;
}
/* Only support such operations on volume */
if (!(FileObject->RelatedFileObject == NULL || FileObject->RelatedFileObject->FsContext2 != NULL))
{
- Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
return STATUS_INVALID_PARAMETER;
}
{
/* We should handle this one, but we don't! */
Status = STATUS_NOT_IMPLEMENTED;
- Irp->IoStatus.Status = Status;
}
else
{
Irp = IrpContext->Irp;
DeviceObject = IrpContext->DeviceObject;
- FsRtlEnterFileSystem();
-
switch (IrpContext->MinorFunction)
{
case IRP_MN_QUERY_DIRECTORY:
if (Status != STATUS_PENDING)
{
- Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = 0;
}
- FsRtlExitFileSystem();
return(Status);
}
break;
}
- Irp->IoStatus.Status = Status;
if (NT_SUCCESS(Status) || Status == STATUS_BUFFER_OVERFLOW)
Irp->IoStatus.Information =
Stack->Parameters.QueryFile.Length - BufferLength;
break;
}
- Irp->IoStatus.Status = Status;
Irp->IoStatus.Information = 0;
return Status;
CdfsWrite(
PCDFS_IRP_CONTEXT IrpContext)
{
- PIRP Irp;
-
DPRINT("CdfsWrite(%p)\n", IrpContext);
ASSERT(IrpContext);
- Irp = IrpContext->Irp;
- Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
- Irp->IoStatus.Information = 0;
+ IrpContext->Irp->IoStatus.Information = 0;
return(STATUS_NOT_SUPPORTED);
}
Status = STATUS_NOT_SUPPORTED;
}
- Irp->IoStatus.Status = Status;
if (NT_SUCCESS(Status))
Irp->IoStatus.Information =
Stack->Parameters.QueryVolume.Length - BufferLength;
CdfsSetVolumeInformation(
PCDFS_IRP_CONTEXT IrpContext)
{
- PIRP Irp;
-
DPRINT("CdfsSetVolumeInformation() called\n");
ASSERT(IrpContext);
- Irp = IrpContext->Irp;
- Irp->IoStatus.Status = STATUS_NOT_SUPPORTED;
- Irp->IoStatus.Information = 0;
+ IrpContext->Irp->IoStatus.Information = 0;
return STATUS_NOT_SUPPORTED;
}