sys: FspFsvolDeviceStoppedStatus

This commit is contained in:
Bill Zissimopoulos 2016-03-10 00:23:43 -08:00
parent 3dc2d9099d
commit 3f98d1cb01
2 changed files with 11 additions and 3 deletions

View File

@ -147,7 +147,7 @@ extern __declspec(selectany) int fsp_dt = 1;
if (0 != fsp_top_level_irp) \ if (0 != fsp_top_level_irp) \
FspPropagateTopFlags(Irp, fsp_top_level_irp);\ FspPropagateTopFlags(Irp, fsp_top_level_irp);\
IoSetTopLevelIrp(Irp); \ IoSetTopLevelIrp(Irp); \
if (!FspDeviceReference(IrpSp->DeviceObject))\ if (!FspDeviceReference(DeviceObject))\
{ \ { \
Result = STATUS_CANCELLED; \ Result = STATUS_CANCELLED; \
goto fsp_leave_label; \ goto fsp_leave_label; \
@ -721,6 +721,10 @@ NTSTATUS FspDeviceCopyList(
VOID FspDeviceDeleteList( VOID FspDeviceDeleteList(
PDEVICE_OBJECT *DeviceObjects, ULONG DeviceObjectCount); PDEVICE_OBJECT *DeviceObjects, ULONG DeviceObjectCount);
VOID FspDeviceDeleteAll(VOID); VOID FspDeviceDeleteAll(VOID);
#define FspFsvolDeviceStoppedStatus(DeviceObject)\
STATUS_VOLUME_DISMOUNTED
//(FILE_DEVICE_DISK_FILE_SYSTEM == (DeviceObject)->DeviceType ?\
// STATUS_VOLUME_DISMOUNTED : STATUS_DEVICE_NOT_CONNECTED)
/* volume management */ /* volume management */
NTSTATUS FspVolumeCreate( NTSTATUS FspVolumeCreate(

View File

@ -250,6 +250,10 @@ static NTSTATUS FspFsvolWriteNonCached(
if (PagingIo && WriteToEndOfFile) if (PagingIo && WriteToEndOfFile)
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
/* stop CcWriteBehind from calling me! */
if (FspIoqStopped(FspFsvolDeviceExtension(FsvolDeviceObject)->Ioq))
return FspFsvolDeviceStoppedStatus(FsvolDeviceObject);
/* probe and lock the user buffer */ /* probe and lock the user buffer */
if (0 == Irp->MdlAddress) if (0 == Irp->MdlAddress)
{ {