sys: FSP_ENTER_MJ, FSP_LEAVE_MJ overhaul

This commit is contained in:
Bill Zissimopoulos 2015-11-19 21:27:40 -08:00
parent 63ed307fe5
commit bde11ce1ad
16 changed files with 18 additions and 68 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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(

View File

@ -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);

View File

@ -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);

View File

@ -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__)

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);