mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-24 01:13:04 -05:00
sys: FspFsvolDeviceStoppedStatus
This commit is contained in:
parent
3dc2d9099d
commit
3f98d1cb01
@ -147,7 +147,7 @@ extern __declspec(selectany) int fsp_dt = 1;
|
||||
if (0 != fsp_top_level_irp) \
|
||||
FspPropagateTopFlags(Irp, fsp_top_level_irp);\
|
||||
IoSetTopLevelIrp(Irp); \
|
||||
if (!FspDeviceReference(IrpSp->DeviceObject))\
|
||||
if (!FspDeviceReference(DeviceObject))\
|
||||
{ \
|
||||
Result = STATUS_CANCELLED; \
|
||||
goto fsp_leave_label; \
|
||||
@ -175,10 +175,10 @@ extern __declspec(selectany) int fsp_dt = 1;
|
||||
FspFsvolDeviceExtension(DeviceObject);\
|
||||
if (!FspIoqPostIrpEx(fsp_leave_FsvolDeviceExtension->Ioq, Irp,\
|
||||
FSP_STATUS_IOQ_POST_BEST_EFFORT == Result, &Result))\
|
||||
{\
|
||||
{ \
|
||||
DEBUGLOG("FspIoqPostIrpEx = %s", NtStatusSym(Result));\
|
||||
FspIopCompleteIrp(Irp, Result);\
|
||||
}\
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
FspIopCompleteIrpEx(Irp, Result, fsp_device_deref);\
|
||||
@ -721,6 +721,10 @@ NTSTATUS FspDeviceCopyList(
|
||||
VOID FspDeviceDeleteList(
|
||||
PDEVICE_OBJECT *DeviceObjects, ULONG DeviceObjectCount);
|
||||
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 */
|
||||
NTSTATUS FspVolumeCreate(
|
||||
|
@ -250,6 +250,10 @@ static NTSTATUS FspFsvolWriteNonCached(
|
||||
if (PagingIo && WriteToEndOfFile)
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
|
||||
/* stop CcWriteBehind from calling me! */
|
||||
if (FspIoqStopped(FspFsvolDeviceExtension(FsvolDeviceObject)->Ioq))
|
||||
return FspFsvolDeviceStoppedStatus(FsvolDeviceObject);
|
||||
|
||||
/* probe and lock the user buffer */
|
||||
if (0 == Irp->MdlAddress)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user