mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-29 11:08:37 -05:00 
			
		
		
		
	sys: HasDbgBreakPoint and flesh out IRP handlers (to return STATUS_INVALID_REQUEST)
This commit is contained in:
		| @@ -19,7 +19,9 @@ FspCleanup( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspClose( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspCreate( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -7,6 +7,17 @@ | ||||
| #include <sys/driver.h> | ||||
|  | ||||
| #if DBG | ||||
| static ANSI_STRING DbgBreakPointInc = RTL_CONSTANT_STRING("Fsp*"); | ||||
| BOOLEAN HasDbgBreakPoint(const char *Function) | ||||
| { | ||||
|     /* poor man's breakpoints; work around 32 breakpoints kernel limit */ | ||||
|     if (KeGetCurrentIrql() > APC_LEVEL) | ||||
|         return TRUE; | ||||
|     ANSI_STRING Name; | ||||
|     RtlInitAnsiString(&Name, Function); | ||||
|     return FsRtlIsDbcsInExpression(&DbgBreakPointInc, &Name); | ||||
| } | ||||
|  | ||||
| const char *NtStatusSym(NTSTATUS Status) | ||||
| { | ||||
|     switch (Status) | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspDeviceControl( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspDirectoryControl( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -30,9 +30,11 @@ | ||||
| #define FSP_DEBUGLOG(rfmt, r, fmt, ...) ((void)0) | ||||
| #endif | ||||
| #if DBG | ||||
| BOOLEAN HasDbgBreakPoint(const char *Function); | ||||
| const char *NtStatusSym(NTSTATUS Status); | ||||
| #define FSP_ENTER_(...)                 \ | ||||
|     try { DbgBreakPoint(); } except(EXCEPTION_EXECUTE_HANDLER) {}\ | ||||
|     if (HasDbgBreakPoint(__FUNCTION__)) \ | ||||
|         try { DbgBreakPoint(); } except(EXCEPTION_EXECUTE_HANDLER) {}\ | ||||
|     __VA_ARGS__;                        \ | ||||
|     try                                 \ | ||||
|     { | ||||
|   | ||||
| @@ -21,7 +21,9 @@ FspQueryEa( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
| @@ -33,7 +35,9 @@ FspSetEa( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -21,7 +21,9 @@ FspQueryInformation( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
| @@ -33,7 +35,9 @@ FspSetInformation( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspFlushBuffers( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspFileSystemControl( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspLockControl( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspRead( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -21,7 +21,9 @@ FspQuerySecurity( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
| @@ -33,7 +35,9 @@ FspSetSecurity( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspShutdown( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -21,7 +21,9 @@ FspQueryVolumeInformation( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
| @@ -33,7 +35,9 @@ FspSetVolumeInformation( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
| @@ -19,7 +19,9 @@ FspWrite( | ||||
| { | ||||
|     FSP_ENTER(PAGED_CODE()); | ||||
|  | ||||
|     Result = STATUS_NOT_IMPLEMENTED; | ||||
|     Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST; | ||||
|     IoCompleteRequest(Irp, IO_NO_INCREMENT); | ||||
|     Result = STATUS_INVALID_DEVICE_REQUEST; | ||||
|  | ||||
|     FSP_LEAVE("", 0); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user