mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 19:48:38 -05:00 
			
		
		
		
	sys: FspFsvolDeviceStoppedStatus
This commit is contained in:
		| @@ -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) | ||||||
|     { |     { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user