mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 19:48:38 -05:00 
			
		
		
		
	sys: FSP_ENTER_MJ, FSP_LEAVE_MJ overhaul
This commit is contained in:
		| @@ -22,16 +22,8 @@ FspCleanup( | ||||
|     ASSERT(IRP_MJ_CLEANUP == IrpSp->MajorFunction); | ||||
|  | ||||
|     if (FspFileSystemDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind) | ||||
|     { | ||||
|         Result = STATUS_SUCCESS; | ||||
|         Irp->IoStatus.Status = Result; | ||||
|         Irp->IoStatus.Information = 0; | ||||
|         IoCompleteRequest(Irp, FSP_IO_INCREMENT); | ||||
|         FSP_RETURN(); | ||||
|     } | ||||
|         FSP_RETURN(Irp->IoStatus.Information = 0); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -22,16 +22,8 @@ FspClose( | ||||
|     ASSERT(IRP_MJ_CLOSE == IrpSp->MajorFunction); | ||||
|  | ||||
|     if (FspFileSystemDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind) | ||||
|     { | ||||
|         Result = STATUS_SUCCESS; | ||||
|         Irp->IoStatus.Status = Result; | ||||
|         Irp->IoStatus.Information = 0; | ||||
|         IoCompleteRequest(Irp, FSP_IO_INCREMENT); | ||||
|         FSP_RETURN(); | ||||
|     } | ||||
|         FSP_RETURN(Irp->IoStatus.Information = 0); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -22,16 +22,8 @@ FspCreate( | ||||
|     ASSERT(IRP_MJ_CREATE == IrpSp->MajorFunction); | ||||
|  | ||||
|     if (FspFileSystemDeviceExtensionKind == FspDeviceExtension(DeviceObject)->Kind) | ||||
|     { | ||||
|         Result = STATUS_SUCCESS; | ||||
|         Irp->IoStatus.Status = Result; | ||||
|         Irp->IoStatus.Information = FILE_OPENED; | ||||
|         IoCompleteRequest(Irp, FSP_IO_INCREMENT); | ||||
|         FSP_RETURN(); | ||||
|     } | ||||
|         FSP_RETURN(Irp->IoStatus.Information = FILE_OPENED); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ( | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspDeviceControl( | ||||
|  | ||||
|     ASSERT(IRP_MJ_DEVICE_CONTROL == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspDirectoryControl( | ||||
|  | ||||
|     ASSERT(IRP_MJ_DIRECTORY_CONTROL == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -61,16 +61,22 @@ | ||||
|     PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp); (void)IrpSp;\ | ||||
|     FSP_ENTER_(__VA_ARGS__) | ||||
| #define FSP_LEAVE_MJ(fmt, ...)          \ | ||||
|     FSP_LEAVE_(FSP_DEBUGLOG_("%c%c, %s%s, IrpSp->Flags=%x, " fmt, " = %s",\ | ||||
|         FspDeviceExtension(DeviceObject)->Kind,\ | ||||
|         Irp->RequestorMode == KernelMode ? 'K' : 'U',\ | ||||
|         IrpMajorFunctionSym(IrpSp->MajorFunction),\ | ||||
|         IrpMinorFunctionSym(IrpSp->MajorFunction, IrpSp->MajorFunction),\ | ||||
|         IrpSp->Flags,                   \ | ||||
|         __VA_ARGS__,                    \ | ||||
|         NtStatusSym(Result));           \ | ||||
|     FSP_LEAVE_(                         \ | ||||
|         FSP_DEBUGLOG_("%c%c, %s%s, IrpSp->Flags=%x, " fmt, " = %s",\ | ||||
|             FspDeviceExtension(DeviceObject)->Kind,\ | ||||
|             Irp->RequestorMode == KernelMode ? 'K' : 'U',\ | ||||
|             IrpMajorFunctionSym(IrpSp->MajorFunction),\ | ||||
|             IrpMinorFunctionSym(IrpSp->MajorFunction, IrpSp->MajorFunction),\ | ||||
|             IrpSp->Flags,               \ | ||||
|             __VA_ARGS__,                \ | ||||
|             NtStatusSym(Result));       \ | ||||
|         if (STATUS_PENDING != Result)   \ | ||||
|             IoCompleteRequest(Irp, FSP_IO_INCREMENT));\ | ||||
|         {                               \ | ||||
|             if (!NT_SUCCESS(Result))    \ | ||||
|                 Irp->IoStatus.Information = 0;\ | ||||
|             Irp->IoStatus.Status = Result;\ | ||||
|             IoCompleteRequest(Irp, FSP_IO_INCREMENT);\ | ||||
|         });                             \ | ||||
|     return Result | ||||
| #define FSP_ENTER_BOOL(...)             \ | ||||
|     BOOLEAN Result = TRUE; FSP_ENTER_(__VA_ARGS__) | ||||
|   | ||||
| @@ -23,8 +23,6 @@ FspQueryEa( | ||||
|  | ||||
|     ASSERT(IRP_MJ_QUERY_EA == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
| @@ -39,8 +37,6 @@ FspSetEa( | ||||
|  | ||||
|     ASSERT(IRP_MJ_SET_EA == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -23,8 +23,6 @@ FspQueryInformation( | ||||
|  | ||||
|     ASSERT(IRP_MJ_QUERY_INFORMATION == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
| @@ -39,8 +37,6 @@ FspSetInformation( | ||||
|  | ||||
|     ASSERT(IRP_MJ_SET_INFORMATION == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspFlushBuffers( | ||||
|  | ||||
|     ASSERT(IRP_MJ_FLUSH_BUFFERS == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspFileSystemControl( | ||||
|  | ||||
|     ASSERT(IRP_MJ_FILE_SYSTEM_CONTROL == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspLockControl( | ||||
|  | ||||
|     ASSERT(IRP_MJ_LOCK_CONTROL == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspRead( | ||||
|  | ||||
|     ASSERT(IRP_MJ_READ == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -23,8 +23,6 @@ FspQuerySecurity( | ||||
|  | ||||
|     ASSERT(IRP_MJ_QUERY_SECURITY == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
| @@ -39,8 +37,6 @@ FspSetSecurity( | ||||
|  | ||||
|     ASSERT(IRP_MJ_SET_SECURITY == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspShutdown( | ||||
|  | ||||
|     ASSERT(IRP_MJ_SHUTDOWN == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -23,8 +23,6 @@ FspQueryVolumeInformation( | ||||
|  | ||||
|     ASSERT(IRP_MJ_QUERY_VOLUME_INFORMATION == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
| @@ -39,8 +37,6 @@ FspSetVolumeInformation( | ||||
|  | ||||
|     ASSERT(IRP_MJ_SET_VOLUME_INFORMATION == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
| @@ -21,8 +21,6 @@ FspWrite( | ||||
|  | ||||
|     ASSERT(IRP_MJ_WRITE == IrpSp->MajorFunction); | ||||
|  | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE_MJ("", 0); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user