mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-24 09:23:37 -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) \
|
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; \
|
||||||
@ -175,10 +175,10 @@ extern __declspec(selectany) int fsp_dt = 1;
|
|||||||
FspFsvolDeviceExtension(DeviceObject);\
|
FspFsvolDeviceExtension(DeviceObject);\
|
||||||
if (!FspIoqPostIrpEx(fsp_leave_FsvolDeviceExtension->Ioq, Irp,\
|
if (!FspIoqPostIrpEx(fsp_leave_FsvolDeviceExtension->Ioq, Irp,\
|
||||||
FSP_STATUS_IOQ_POST_BEST_EFFORT == Result, &Result))\
|
FSP_STATUS_IOQ_POST_BEST_EFFORT == Result, &Result))\
|
||||||
{\
|
{ \
|
||||||
DEBUGLOG("FspIoqPostIrpEx = %s", NtStatusSym(Result));\
|
DEBUGLOG("FspIoqPostIrpEx = %s", NtStatusSym(Result));\
|
||||||
FspIopCompleteIrp(Irp, Result);\
|
FspIopCompleteIrp(Irp, Result);\
|
||||||
}\
|
} \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
FspIopCompleteIrpEx(Irp, Result, fsp_device_deref);\
|
FspIopCompleteIrpEx(Irp, Result, fsp_device_deref);\
|
||||||
@ -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(
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user